diff --git a/Build/AtlasBuildScripts/build_Gaudi.sh b/Build/AtlasBuildScripts/build_Gaudi.sh index 6576d026f2359db391c82488b4db2e76df4f1c4e..36a2a613b57d996dd239aa1ac93775a9a1a8daab 100755 --- a/Build/AtlasBuildScripts/build_Gaudi.sh +++ b/Build/AtlasBuildScripts/build_Gaudi.sh @@ -14,7 +14,7 @@ set -o pipefail usage() { echo "Usage: build_Gaudi.sh <-s source dir> <-b build dir> " \ "<-i install dir> <-e externals dir> <-p externals project name> " \ - "<-f platform name> [-r RPM dir] [-t build type]" + "<-f platform name> [-r RPM dir] [-t build type] [-x extra CMake arguments]" } # Parse the command line arguments: @@ -26,7 +26,8 @@ EXTPROJECT="" PLATFORM="" RPMDIR="" BUILDTYPE="Release" -while getopts ":s:b:i:e:p:f:r:t:h" opt; do +EXTRACMAKE="" +while getopts ":s:b:i:e:p:f:r:t:x:h" opt; do case $opt in s) SOURCEDIR=$OPTARG @@ -52,6 +53,9 @@ while getopts ":s:b:i:e:p:f:r:t:h" opt; do t) BUILDTYPE=$OPTARG ;; + x) + EXTRACMAKE=$OPTARG + ;; h) usage exit 0 @@ -94,7 +98,7 @@ rm -f CMakeCache.txt rm -rf * # Remove the full build temporarily, to fix GAUDI-1315 cmake -DCMAKE_BUILD_TYPE:STRING=${BUILDTYPE} -DCTEST_USE_LAUNCHERS:BOOL=TRUE \ -DGAUDI_ATLAS:BOOL=TRUE -DGAUDI_ATLAS_BASE_PROJECT:STRING=${EXTPROJECT} \ - -DCMAKE_INSTALL_PREFIX:PATH=/InstallArea/${PLATFORM} \ + -DCMAKE_INSTALL_PREFIX:PATH=/InstallArea/${PLATFORM} ${EXTRACMAKE} \ ${SOURCEDIR} || touch $error_stamp } 2>&1 | tee cmake_config.log test -f $error_stamp && ((ERROR_COUNT++)) diff --git a/Build/AtlasBuildScripts/build_atlasexternals.sh b/Build/AtlasBuildScripts/build_atlasexternals.sh index db38b481339c306f47dc668bafb072140a91465d..903cc6deb4bf43d26e39db70450ddd8081017267 100755 --- a/Build/AtlasBuildScripts/build_atlasexternals.sh +++ b/Build/AtlasBuildScripts/build_atlasexternals.sh @@ -14,7 +14,8 @@ set -o pipefail # Function printing the usage information for the script usage() { echo "Usage: build_atlasexternals.sh <-s source dir> <-b build dir> " \ - "<-i install dir> [-p project] [-r RPM dir] [-t build type] [-d (debug output)]" + "<-i install dir> [-p project] [-r RPM dir] [-t build type] [-d (debug output)]" \ + "[-e extra CMake arguments]" } # Parse the command line arguments: @@ -26,7 +27,8 @@ RPMDIR="" BUILDTYPE="Release" PROJECTVERSION="" DEBUGCMAKE="" -while getopts ":s:b:i:p:r:t:v:h:d" opt; do +EXTRACMAKE="" +while getopts ":s:b:i:p:r:t:v:h:x:d" opt; do case $opt in s) SOURCEDIR=$OPTARG @@ -46,6 +48,9 @@ while getopts ":s:b:i:p:r:t:v:h:d" opt; do t) BUILDTYPE=$OPTARG ;; + x) + EXTRACMAKE=$OPTARG + ;; d) DEBUGCMAKE="--trace" echo "Using the '--trace' option to debug the CMake configuration --> Verbose output!" @@ -93,6 +98,7 @@ error_stamp=`mktemp .tmp.error.XXXXX` ; rm -f $error_stamp rm -f CMakeCache.txt cmake ${DEBUGCMAKE} -DCMAKE_BUILD_TYPE:STRING=${BUILDTYPE} -DCTEST_USE_LAUNCHERS:BOOL=TRUE \ ${EXTRACONF} \ + ${EXTRACMAKE} \ ${SOURCEDIR}/Projects/${PROJECT}/ || touch $error_stamp } 2>&1 | tee cmake_config.log test -f $error_stamp && ((ERROR_COUNT++)) diff --git a/Projects/Athena/build.sh b/Projects/Athena/build.sh index 71fad29f7daa20cabfc864925a4ee5fca7237958..3333b297778c3eebed7f54fbc9a67bf826312e4d 100755 --- a/Projects/Athena/build.sh +++ b/Projects/Athena/build.sh @@ -6,12 +6,13 @@ # Function printing the usage information for the script usage() { - echo "Usage: build.sh [-t build type] [-b build dir] [-c] [-m] [-i] [-p] [-a]" + echo "Usage: build.sh [-t build type] [-b build dir] [-c] [-m] [-i] [-p] [-a] [-e] [-N]" echo " -c: Execute CMake step" echo " -m: Execute make step" echo " -i: Execute install step" echo " -p: Execute CPack step" echo " -a: Abort on error" + echo " -e: Add extra CMake argument" echo " -N: Use Ninja" echo "If none of the c, m, i or p options are set then the script will do" @@ -30,7 +31,7 @@ NIGHTLY=true BUILDTOOLTYPE="" BUILDTOOL="make -k" INSTALLRULE="install/fast" -while getopts ":t:b:hcmipaN" opt; do +while getopts ":t:b:hcmipax:N" opt; do case $opt in t) BUILDTYPE=$OPTARG @@ -53,6 +54,9 @@ while getopts ":t:b:hcmipaN" opt; do a) NIGHTLY=false ;; + x) + EXTRACMAKE=$OPTARG + ;; N) BUILDTOOL="ninja -k 0" BUILDTOOLTYPE="-GNinja" @@ -124,6 +128,7 @@ if [ -n "$EXE_CMAKE" ]; then rm -f CMakeCache.txt # Now run the actual CMake configuration: { time cmake ${BUILDTOOLTYPE} -DCMAKE_BUILD_TYPE:STRING=${BUILDTYPE} \ + ${EXTRACMAKE} \ -DCTEST_USE_LAUNCHERS:BOOL=TRUE \ ${AthenaSrcDir}; } 2>&1 | tee cmake_config.log fi diff --git a/Projects/Athena/build_externals.sh b/Projects/Athena/build_externals.sh index b8e1dffea02b28f185598278a955a9157c78ba7f..f215020ad5fdeb069f2b99b8e5ecc768cfb9fca6 100755 --- a/Projects/Athena/build_externals.sh +++ b/Projects/Athena/build_externals.sh @@ -5,13 +5,14 @@ # Function printing the usage information for the script usage() { - echo "Usage: build_externals.sh [-t build_type] [-b build_dir] [-f] [-c] [-d]" + echo "Usage: build_externals.sh [-t build_type] [-b build_dir] [-f] [-c] [-d] [-e]" echo " -f: Force rebuild of externals from scratch, otherwise if script" echo " finds an external build present it will only do an incremental" echo " build" echo " -c: Build the externals for the continuous integration (CI) system," echo " skipping the build of the externals RPMs." echo " -d: For debugging the CMake configuration: run 'cmake' with the '--trace' option (very verbose output!)" + echo " -e: To pass arbitrary extra arguments to the CMake configuration" echo "If a build_dir is not given the default is '../build'" echo "relative to the athena checkout" } @@ -22,7 +23,8 @@ BUILDTYPE="RelWithDebInfo" FORCE="" CI="" DEBUG_CMAKE_CONFIG="" -while getopts ":t:b:fchd" opt; do +EXTRACMAKE="" +while getopts ":t:b:fchdx:" opt; do case $opt in t) BUILDTYPE=$OPTARG @@ -39,6 +41,9 @@ while getopts ":t:b:fchd" opt; do d) DEBUG_CMAKE_CONFIG="-d" ;; + x) + EXTRACMAKE="-x $OPTARG" + ;; h) usage exit 0 @@ -153,7 +158,8 @@ ${scriptsdir}/checkout_atlasexternals.sh \ } || true } -# Build AthenaExternals: + +## Build AthenaExternals: export NICOS_PROJECT_HOME=$(cd ${BUILDDIR}/install;pwd)/AthenaExternals ${scriptsdir}/build_atlasexternals.sh \ -s ${BUILDDIR}/src/AthenaExternals \ @@ -161,7 +167,8 @@ ${scriptsdir}/build_atlasexternals.sh \ -i ${BUILDDIR}/install/AthenaExternals/${NICOS_PROJECT_VERSION} \ -p AthenaExternals ${RPMOPTIONS} -t ${BUILDTYPE} \ -v ${NICOS_PROJECT_VERSION} \ - ${DEBUG_CMAKE_CONFIG} + ${DEBUG_CMAKE_CONFIG} \ + ${EXTRACMAKE} { test "X${NIGHTLY_STATUS}" != "X" && { @@ -199,7 +206,7 @@ ${scriptsdir}/build_Gaudi.sh \ -b ${BUILDDIR}/build/GAUDI \ -i ${BUILDDIR}/install/GAUDI/${NICOS_PROJECT_VERSION} \ -e ${BUILDDIR}/install/AthenaExternals/${NICOS_PROJECT_VERSION}/InstallArea/${platform} \ - -p AthenaExternals -f ${platform} ${RPMOPTIONS} -t ${BUILDTYPE} + -p AthenaExternals -f ${platform} ${RPMOPTIONS} -t ${BUILDTYPE} ${EXTRACMAKE} { test "X${NIGHTLY_STATUS}" != "X" && {