diff --git a/bin/build_detector.sh b/bin/build_detector.sh index aab1ed0079d62f3e91bef37d6da0585353814db8..20b863002d839084df3ec42eb2920208d672684b 100755 --- a/bin/build_detector.sh +++ b/bin/build_detector.sh @@ -5,8 +5,8 @@ ## ============================================================================= ## make sure we launch this script from the project root directory -PROJECT_ROOT="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"/.. -pushd ${PROJECT_ROOT} +#PROJECT_ROOT="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"/.. +#pushd ${PROJECT_ROOT} ## ============================================================================= ## Load the environment variables. To build the detector we need the following @@ -14,13 +14,14 @@ pushd ${PROJECT_ROOT} ## ## - JUGGLER_DETECTOR: the detector package we want to use for this benchmark ## - LOCAL_PREFIX: location where local packages should be installed +## - LOCAL_DATA_PATH: local storage for pipeline jobs ## - DETECTOR_PREFIX: prefix for the detector definitions ## - DETECTOR_PATH: full path for the detector definitions ## this is the same as ${DETECTOR_PREFIX}/${JUGGLER_DETECTOR} ## ## You can read options/env.sh for more in-depth explanations of the variables ## and how they can be controlled. -source options/env.sh +source $(dirname "$0")/env.sh ## ============================================================================= ## Step 1: download/update the detector definitions (if needed) @@ -28,44 +29,63 @@ pushd ${DETECTOR_PREFIX} ## We need an up-to-date copy of the detector ## start clean to avoid issues... -if [ -d ${JUGGLER_DETECTOR} ]; then +if [ -d "${JUGGLER_DETECTOR}" ]; then echo "cleaning up ${JUGGLER_DETECTOR}" - rm -rf ${JUGGLER_DETECTOR} + mv "${JUGGLER_DETECTOR}" /tmp/. fi echo "Fetching ${JUGGLER_DETECTOR}" -git clone -b ${JUGGLER_DETECTOR_VERSION} https://eicweb.phy.anl.gov/EIC/detectors/${JUGGLER_DETECTOR}.git -#else - #echo "Updating ${JUGGLER_DETECTOR}" - #pushd ${JUGGLER_DETECTOR} - #git pull --ff-only - #popd -#fi +git clone -b ${JUGGLER_DETECTOR_VERSION} --depth 1 https://eicweb.phy.anl.gov/EIC/detectors/${JUGGLER_DETECTOR}.git +[[ -n "$?" ]] || exit 1 +rm -rf "${JUGGLER_DETECTOR}/.git" + +## We need an up-to-date copy of the detector +## start clean to avoid issues... +if [ -d "${BEAMLINE_CONFIG}" ]; then + echo "cleaning up ${BEAMLINE_CONFIG}" + mv "${BEAMLINE_CONFIG}" /tmp/. +fi +echo "Fetching ${BEAMLINE_CONFIG}" +echo "git clone -b ${BEAMLINE_CONFIG_VERSION} --depth 1 https://eicweb.phy.anl.gov/EIC/detectors/${BEAMLINE_CONFIG}.git" +git clone -b ${BEAMLINE_CONFIG_VERSION} --depth 1 https://eicweb.phy.anl.gov/EIC/detectors/${BEAMLINE_CONFIG}.git +[[ -n "$?" ]] || exit 1 +rm -rf "${BEAMLINE_CONFIG}/.git" + ## We also need an up-to-date copy of the accelerator. For now this is done ## manually. Down the road we could maybe automize this with cmake if [ -d accelerator ]; then echo "cleaning up accelerator" - rm -rf accelerator + mv accelerator /tmp/. fi echo "Fetching accelerator" -git clone https://eicweb.phy.anl.gov/EIC/detectors/accelerator.git -#else -# echo "Updating accelerator" -# pushd accelerator -# git pull --ff-only -# popd -#fi +git clone --depth 1 https://eicweb.phy.anl.gov/EIC/detectors/accelerator.git +[[ -n "$?" ]] || exit 1 +rm -rf "accelerator/.git" + ## Now symlink the accelerator definition into the detector definition echo "Linking accelerator definition into detector definition" ln -s -f ${DETECTOR_PREFIX}/accelerator/eic ${DETECTOR_PATH}/eic +[[ -n "$?" ]] || exit 1 +ln -s -f ${DETECTOR_PREFIX}/${BEAMLINE_CONFIG}/${BEAMLINE_CONFIG} ${DETECTOR_PATH}/${BEAMLINE_CONFIG} +[[ -n "$?" ]] || exit 1 +popd ## ============================================================================= ## Step 2: Compile and install the detector definition echo "Building and installing the ${JUGGLER_DETECTOR} package" -mkdir -p ${DETECTOR_PREFIX}/build -pushd ${DETECTOR_PREFIX}/build -cmake ${DETECTOR_PATH} -DCMAKE_INSTALL_PREFIX=${LOCAL_PREFIX} -DCMAKE_CXX_STANDARD=17 && - make -j30 install || exit 1 +mkdir -p ${DETECTOR_PREFIX}/${JUGGLER_DETECTOR}_build +pushd ${DETECTOR_PREFIX}/${JUGGLER_DETECTOR}_build +cmake ${DETECTOR_PATH} -DCMAKE_INSTALL_PREFIX=${LOCAL_PREFIX} -DCMAKE_CXX_STANDARD=17 && make -j30 install || exit 1 +popd +rm -rf ${DETECTOR_PREFIX}/${JUGGLER_DETECTOR}_build + +mkdir -p ${DETECTOR_PREFIX}/${BEAMLINE_CONFIG}_build +pushd ${DETECTOR_PREFIX}/${BEAMLINE_CONFIG}_build +cmake ${DETECTOR_PREFIX}/${BEAMLINE_CONFIG} -DCMAKE_INSTALL_PREFIX=${LOCAL_PREFIX} -DCMAKE_CXX_STANDARD=17 && make -j30 install || exit 1 +popd +rm -rf ${DETECTOR_PREFIX}/${BEAMLINE_CONFIG}_build + + ## ============================================================================= ## Step 3: That's all! diff --git a/bin/print_env.sh b/bin/print_env.sh index 431ab79f09acf50d57854a46b976c5ac990da218..d8b19f517d873525029b474c9ff8bab0011bc687 100755 --- a/bin/print_env.sh +++ b/bin/print_env.sh @@ -8,6 +8,8 @@ echo "JUGGLER_N_THREADS: ${JUGGLER_N_THREADS}" echo "JUGGLER_RNG_SEED: ${JUGGLER_RNG_SEED}" echo "JUGGLER_INSTALL_PREFIX: ${JUGGLER_INSTALL_PREFIX}" echo "LOCAL_PREFIX: ${LOCAL_PREFIX}" +echo "LOCAL_DATA_PATH: ${LOCAL_DATA_PATH}" echo "DETECTOR_PREFIX: ${DETECTOR_PREFIX}" echo "DETECTOR_PATH: ${DETECTOR_PATH}" -echo "EIC_DATA_MODEL_VERSION: ${EIC_DATA_MODEL_VERSION}" +echo "BEAMLINE_CONFIG: ${BEAMLINE_CONFIG}" +echo "BEAMLINE_CONFIG_VERSION: ${BEAMLINE_CONFIG_VERSION}"