diff --git a/Projects/AthGeneration/CMakeLists.txt b/Projects/AthGeneration/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..5543ccfd8c25f982a6700639be74426d913f0c5b --- /dev/null +++ b/Projects/AthGeneration/CMakeLists.txt @@ -0,0 +1,105 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +# Set up the project. +cmake_minimum_required( VERSION 3.6 ) +file( READ ${CMAKE_SOURCE_DIR}/version.txt _version ) +string( STRIP ${_version} _version ) +project( Athena VERSION ${_version} LANGUAGES C CXX Fortran ) +unset( _version ) + +# Set the versions of the TDAQ externals to pick up for the build. +set( TDAQ-COMMON_VERSION "03-04-01" CACHE STRING + "The version of tdaq-common to use for the build" ) +set( TDAQ_VERSION "08-03-01" CACHE STRING + "The version of tdaq to use for the build" ) +set( TDAQ-COMMON_ATROOT + "$ENV{TDAQ_RELEASE_BASE}/tdaq-common/tdaq-common-${TDAQ-COMMON_VERSION}" + CACHE PATH "The directory to pick up tdaq-common from" ) +mark_as_advanced( TDAQ-COMMON_ATROOT ) + +# Configure flake8: +set( ATLAS_FLAKE8 "flake8_atlas --select ATL,F,E7,E9,W6 --enable-extension ATL902 --extend-ignore E701,E702,E741" + CACHE STRING "Default flake8 command" ) + +set( ATLAS_PYTHON_CHECKER "${ATLAS_FLAKE8} --filterFiles AthenaConfiguration" + CACHE STRING "Python checker command to run during Python module compilation" ) + +# Find the ATLAS CMake code: +find_package( AtlasCMake QUIET ) + +# Find the base project(s): +find_package( AthGenerationExternals REQUIRED ) +find_package( Gaudi REQUIRED ) + +# Additional externals needed for the build/runtime: +find_package( Xrootd ) +find_package( GSL ) +find_package( Davix ) +find_package( PNG ) +find_package( BLAS ) +find_package( AIDA ) + +# Set up the compilation option(s) for AthGeneration. +add_definitions( -DGENERATIONBASE ) +set( GENERATIONBASE TRUE CACHE BOOL + "Flag specifying that this is a simulation release build" ) + +# Load all the files from the externals/ subdirectory: +file( GLOB _externals "${CMAKE_CURRENT_SOURCE_DIR}/externals/*.cmake" ) +foreach( _external ${_externals} ) + include( ${_external} ) + get_filename_component( _extName ${_external} NAME_WE ) + string( TOUPPER ${_extName} _extNameUpper ) + message( STATUS "Taking ${_extName} from: ${${_extNameUpper}_LCGROOT}" ) + unset( _extName ) + unset( _extNameUpper ) +endforeach() +unset( _external ) +unset( _externals ) + +# Disable the usage of the --no-undefined linker flag: +atlas_disable_no_undefined() + +# Set up CTest: +atlas_ctest_setup() + +# Set up the "ATLAS project". +atlas_project( USE AthGenerationExternals ${AthGenerationExternals_VERSION} + PROJECT_ROOT ${CMAKE_SOURCE_DIR}/../../ ) + +# Install the external configurations: +install( DIRECTORY ${CMAKE_SOURCE_DIR}/externals + DESTINATION ${CMAKE_INSTALL_CMAKEDIR} USE_SOURCE_PERMISSIONS ) + +# Generate the environment setup for the externals, to be used during the build: +lcg_generate_env( SH_FILE ${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}/env_setup.sh ) + +# Generate replacement rules for the installed paths: +set( _replacements ) +if( NOT "$ENV{NICOS_PROJECT_HOME}" STREQUAL "" ) + get_filename_component( _buildDir $ENV{NICOS_PROJECT_HOME} PATH ) + list( APPEND _replacements ${_buildDir} "\${AthGeneration_DIR}/../../../.." ) +endif() +if( NOT "$ENV{TDAQ_RELEASE_BASE}" STREQUAL "" ) + list( APPEND _replacements $ENV{TDAQ_RELEASE_BASE} + "\${TDAQ_RELEASE_BASE}" ) +endif() + +# Now generate and install the installed setup files: +lcg_generate_env( SH_FILE ${CMAKE_BINARY_DIR}/env_setup_install.sh + REPLACE ${_replacements} ) +install( FILES ${CMAKE_BINARY_DIR}/env_setup_install.sh + DESTINATION . RENAME env_setup.sh ) + +# Configure and install the post-configuration file: +string( REPLACE "$ENV{TDAQ_RELEASE_BASE}" "\$ENV{TDAQ_RELEASE_BASE}" + TDAQ-COMMON_ATROOT "${TDAQ-COMMON_ATROOT}" ) +string( REPLACE "${TDAQ-COMMON_VERSION}" "\${TDAQ-COMMON_VERSION}" + TDAQ-COMMON_ATROOT "${TDAQ-COMMON_ATROOT}" ) +configure_file( ${CMAKE_SOURCE_DIR}/cmake/PostConfig.cmake.in + ${CMAKE_BINARY_DIR}/PostConfig.cmake @ONLY ) +install( FILES ${CMAKE_BINARY_DIR}/PostConfig.cmake + DESTINATION ${CMAKE_INSTALL_CMAKEDIR} ) + +# Package up the release using CPack: +atlas_cpack_setup() diff --git a/Projects/AthGeneration/README.md b/Projects/AthGeneration/README.md new file mode 100644 index 0000000000000000000000000000000000000000..bbd38eeb97cd5032f54983388e4721276fb308bf --- /dev/null +++ b/Projects/AthGeneration/README.md @@ -0,0 +1,44 @@ +The Full ATLAS Offline Software Project +======================================= + +This is the configuration for building the full offline software from the +repository. + +Build Instructions +------------------ + +To build the externals necessary for building this project itself, use the + + build_externals.sh + +script. It will build all the externals necessary for this project into a +subdirectory of the directory holding this repository, called `build`. + +The sources of the externals will be checked out under `build/src`, the +build of the projects will commence under `build/build`, and the results of +the build will be installed under `build/install`. + +RPMs created from the externals are copied under `build/` by the script. + +Once the externals have finished building, you can initiate the full build +of the project against these newly built externals by executing the + + build.sh + +script. It uses the same directory layout inside the `build` directory as +was used for the externals. + +Custom Builds +------------- + +Of course it is perfectly allowed to set up a build by hand, not using the +`build.sh` script as well. In that case you have to make sure to have a +functional version of AthGenerationExternals set up in your environment, and point +the `GAUDI_ROOT` environment variable against the Gaudi version that you +want to use for the build. + +You will also need to set the `TDAQ_RELEASE_BASE` environment variable for +the build to be successful. The simplest way of doing this is to use the +helper script: + + Build/AtlasBuildScripts/TDAQ_RELEASE_BASE.sh diff --git a/Projects/AthGeneration/build.sh b/Projects/AthGeneration/build.sh new file mode 100755 index 0000000000000000000000000000000000000000..e793b9959e7618dfb8b0a8e569d448d117bef7aa --- /dev/null +++ b/Projects/AthGeneration/build.sh @@ -0,0 +1,203 @@ +#!/bin/bash +# +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# +# Script for building the release on top of externals built using one of the +# scripts in this directory. +# +_time_() { local c="time -p " ; while test "X$1" != "X" ; do c+=" \"$1\"" ; shift; done; ( eval "$c" ) 2>&1 | sed "s,^real[[:space:]],time::${c}:: real ," ; } + +# Function printing the usage information for the script +usage() { + echo "Usage: build.sh [-t build type] [-b build dir] [-c] [-m] [-i] [-p] [-a] [-x opt] [-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 " -x: Extra configuration argument(s) for CMake" + echo " -N: Use Ninja" + + echo "If none of the c, m, i or p options are set then the script will do" + echo "*all* steps. Otherwise only the enabled steps are run - it's your" + echo "reponsibility to ensure that precusors are in good shape" +} + +# Parse the command line arguments: +BUILDDIR="" +BUILDTYPE="RelWithDebInfo" +EXE_CMAKE="" +EXE_MAKE="" +EXE_INSTALL="" +EXE_CPACK="" +NIGHTLY=true +EXTRACMAKE=() +BUILDTOOLTYPE="" +BUILDTOOL="make -k" +INSTALLRULE="install/fast" +while getopts ":t:b:hcmipax:N" opt; do + case $opt in + t) + BUILDTYPE=$OPTARG + ;; + b) + BUILDDIR=$OPTARG + ;; + c) + EXE_CMAKE="1" + ;; + m) + EXE_MAKE="1" + ;; + i) + EXE_INSTALL="1" + ;; + p) + EXE_CPACK="1" + ;; + a) + NIGHTLY=false + ;; + x) + EXTRACMAKE+=($OPTARG) + ;; + N) + BUILDTOOL="ninja -k 0" + BUILDTOOLTYPE="-GNinja" + INSTALLRULE="install" + ;; + h) + usage + exit 0 + ;; + :) + echo "Argument -$OPTARG requires a parameter!" + usage + exit 1 + ;; + ?) + echo "Unknown argument: -$OPTARG" + usage + exit 1 + ;; + esac +done + +# If no step was explicitly specified, turn them all on: +if [ -z "$EXE_CMAKE" -a -z "$EXE_MAKE" -a -z "$EXE_INSTALL" -a -z "$EXE_CPACK" ]; then + EXE_CMAKE="1" + EXE_MAKE="1" + EXE_INSTALL="1" + EXE_CPACK="1" +fi + +# Stop on errors from here on out: +set -e +# consider a pipe failed if ANY of the commands fails +set -o pipefail + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + scriptsdir_nightly_status=${NIGHTLY_STATUS_SCRIPTS} + test "X$scriptsdir_nightly_status" = "X" && scriptsdir_nightly_status=${scriptsdir}/nightly_status + test -x $scriptsdir_nightly_status/status_on_exit.sh && trap $scriptsdir_nightly_status/status_on_exit.sh EXIT + } +} + +# Source in our environment +AthGenerationSrcDir=$(dirname ${BASH_SOURCE[0]}) + +# The directory holding the helper scripts: +scriptsdir=${AthGenerationSrcDir}/../../Build/AtlasBuildScripts +scriptsdir=$(cd ${scriptsdir}; pwd) + +if [ -z "$BUILDDIR" ]; then + BUILDDIR=${AthGenerationSrcDir}/../../../build +fi +mkdir -p ${BUILDDIR} +BUILDDIR=$(cd ${BUILDDIR} && pwd) +source $AthGenerationSrcDir/build_env.sh -b $BUILDDIR >& ${BUILDDIR}/build_env.log +cat ${BUILDDIR}/build_env.log + +# create the actual build directory +mkdir -p ${BUILDDIR}/build/AthGeneration +cd ${BUILDDIR}/build/AthGeneration + +# CMake: +if [ -n "$EXE_CMAKE" ]; then + # Remove the CMakeCache.txt file, to force CMake to find externals + # from scratch in an incremental build. + rm -f CMakeCache.txt + # Now run the actual CMake configuration: + { _time_ cmake ${BUILDTOOLTYPE} -DCMAKE_BUILD_TYPE:STRING=${BUILDTYPE} \ + ${EXTRACMAKE[@]} \ + -DCTEST_USE_LAUNCHERS:BOOL=TRUE \ + ${AthGenerationSrcDir}; } 2>&1 | tee cmake_config.log +fi + +#log analyzer never affects return status in the parent shell: +{ + test "X${NIGHTLY_STATUS}" != "X" && { + branch=$(basename $(cd ${BUILDDIR}/.. ; pwd)) #FIXME: should be taken from env. + timestamp_tmp=` basename ${BUILDDIR}/../.@@__* 2>/dev/null | sed 's,^\.,,' ` + test "X$timestamp_tmp" != "X" || { + timestamp_tmp=@@__`date "+%Y-%m-%dT%H%M"`__@@ #to be used until the final stamp from ReleaseData is available + touch ${BUILDDIR}/../.${timestamp_tmp} + } + (set +e + ${scriptsdir_nightly_status}/cmake_config_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" AthGeneration ${BUILDDIR}/build/AthGeneration/cmake_config.log + ) + } || true +} + +# for nightly builds we want to get as far as we can +if [ "$NIGHTLY" = true ]; then + # At this point stop worrying about errors: + set +e +fi + +# make: +if [ -n "$EXE_MAKE" ]; then + # Forcibly remove the merged CLID file from the previous build, to + # avoid issues with some library possibly changing the name/CLID + # of something during the build. Note that ${platform} is coming from + # the build_env.sh script. + rm -f ${platform}/share/clid.db + # Build the project. + { _time_ ${BUILDTOOL}; } 2>&1 | tee cmake_build.log +fi + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + (set +e + ${scriptsdir_nightly_status}/cmake_build_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" AthGeneration ${BUILDDIR}/build/AthGeneration/cmake_build.log + ) + } || true +} + +# Install the results: +if [ -n "$EXE_INSTALL" ]; then + { DESTDIR=${BUILDDIR}/install _time_ ${BUILDTOOL} ${INSTALLRULE}; } \ + 2>&1 | tee cmake_install.log +fi +#^^^ do we need to analyze local install logs? + +# Build an RPM for the release: +if [ -n "$EXE_CPACK" ]; then + { _time_ cpack; } 2>&1 | tee cmake_cpack.log + if [ "$BUILDTYPE" = "RelWithDebInfo" ]; then + { _time_ cpack --config CPackDbgRPMConfig.cmake; } 2>&1 | tee -a cmake_cpack.log + fi + cp AthGeneration*.rpm ${BUILDDIR}/ +fi + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + (set +e + for project in `ls ${BUILDDIR}/build 2>/dev/null` ; do + ${scriptsdir_nightly_status}/cmake_cpack_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" "${project}" ${BUILDDIR}/build/${project}/cmake_cpack.log + done + ${scriptsdir_nightly_status}/collect_nightly_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" "$BUILDDIR" + ) + } || true +} diff --git a/Projects/AthGeneration/build_env.sh b/Projects/AthGeneration/build_env.sh new file mode 100644 index 0000000000000000000000000000000000000000..76999aef832e912ea8d1aa42ae3963d9c89a1bb0 --- /dev/null +++ b/Projects/AthGeneration/build_env.sh @@ -0,0 +1,109 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# +# This script sets up the build enironment for an AthGeneration +# build, on top of a built set of externals (including Gaudi) +# +# This script is kept separate from the build.sh +# wrapper so it can be sourced separately from it when +# clients want to manage their own build and just want +# to setup the build environment + +env_usage() { + echo "Usage: build_env.sh [-b build dir]" +} + +# This function actually sets up the environment for us +# (factorise it here in case it needs skipped) +env_setup() { + startdir=$(pwd) + # As this script can be sourced we need to support zsh and + # possibly other Bourne shells + if [ "x${BASH_SOURCE[0]}" = "x" ]; then + # This trick should do the right thing under ZSH: + thisdir=$(dirname `print -P %x`) + if [ $? != 0 ]; then + echo "ERROR: This script must be sourced from BASH or ZSH" + return 1 + fi + else + # The BASH solution is a bit more straight forward: + thisdir=$(dirname ${BASH_SOURCE[0]}) + fi + AthGenerationSrcDir=$(cd ${thisdir};pwd) + + # The directory holding the helper scripts: + scriptsdir=${AthGenerationSrcDir}/../../Build/AtlasBuildScripts + + # Go to the main directory of the repository: + cd ${AthGenerationSrcDir}/../.. + + # Check if the user specified any source/build directories: + if [ "$BUILDDIR" = "" ]; then + BUILDDIR=${AthGenerationSrcDir}/../../../build + fi + + # Get the version of AthGeneration for the build. + version=`cat ${AthGenerationSrcDir}/version.txt` + + # Set up the environment for the build: + export NICOS_PROJECT_HOME=$(cd ${BUILDDIR}/install;pwd)/AthGeneration + + # Set up the environment variables for finding LCG and the TDAQ externals: + source ${scriptsdir}/LCG_RELEASE_BASE.sh + source ${scriptsdir}/TDAQ_RELEASE_BASE.sh + + # Set up the AthGenerationExternals project: + extDir=${BUILDDIR}/install/AthGenerationExternals/${version}/InstallArea + if [ ! -d ${extDir} ]; then + echo "Didn't find the AthGenerationExternals project under ${extDir}" + echo "(Hopefully this is intentional and you have done e.g. asetup AthGenerationExternals,master,latest)" + else + echo "Setting up AthGenerationExternals from: ${extDir}" + source ${extDir}/*/setup.sh + fi + + # Point to Gaudi: + # Get platform from the GAUDI build - we're assuming here that there's only one platform installed. + if [ -z "${GAUDI_ROOT+1}" ]; then + platform=$(cd ${BUILDDIR}/install/GAUDI/${version}/InstallArea/;ls) + export GAUDI_ROOT=${BUILDDIR}/install/GAUDI/${version}/InstallArea/${platform} + fi + echo "Taking Gaudi from: ${GAUDI_ROOT}" + + cd $startdir +} + +# we need to reset the option index as we are sourcing this script +# http://stackoverflow.com/questions/23581368/bug-in-parsing-args-with-getopts-in-bash +OPTIND=1 + +# Parse the command line arguments: +BUILDDIR="" +while getopts "b:h" opt; do + case $opt in + b) + BUILDDIR=$OPTARG + ;; + h) + env_usage + ABORT=1 + ;; + :) + echo "Argument -$OPTARG requires a parameter!" + env_usage + ABORT=1 + ;; + ?) + echo "Unknown argument: -$OPTARG" + env_usage + ABORT=1 + ;; + esac +done + +# Put a big wrapper around bad argument case, because +# a sourced script should not call "exit". This is quite +# annoying... +if [ -z "$ABORT" ]; then + env_setup +fi diff --git a/Projects/AthGeneration/build_externals.sh b/Projects/AthGeneration/build_externals.sh new file mode 100755 index 0000000000000000000000000000000000000000..99cf4d58cf4f15fd2faa785bb4275514c850e745 --- /dev/null +++ b/Projects/AthGeneration/build_externals.sh @@ -0,0 +1,202 @@ +#!/bin/bash +# +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# +# Script building all the externals necessary for the nightly build. +# + +# Function printing the usage information for the script +usage() { + echo "Usage: build_externals.sh [-t build_type] [-b build_dir] [-f] [-c] [-x]" + 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 " -x: Extra cmake argument(s) to provide for the build(configuration)" + echo " of all externals needed by AthGeneration." + echo "If a build_dir is not given the default is '../build'" + echo "relative to the athena checkout" +} + +# Parse the command line arguments: +BUILDDIR="" +BUILDTYPE="RelWithDebInfo" +FORCE="" +CI="" +EXTRACMAKE=(-DLCG_VERSION_NUMBER=96 -DLCG_VERSION_POSTFIX="") +while getopts ":t:b:x:fch" opt; do + case $opt in + t) + BUILDTYPE=$OPTARG + ;; + b) + BUILDDIR=$OPTARG + ;; + f) + FORCE="1" + ;; + c) + CI="1" + ;; + x) + EXTRACMAKE+=($OPTARG) + ;; + h) + usage + exit 0 + ;; + :) + echo "Argument -$OPTARG requires a parameter!" + usage + exit 1 + ;; + ?) + echo "Unknown argument: -$OPTARG" + usage + exit 1 + ;; + esac +done + +# Only stop on errors if we are in the CI. Otherwise just count them. +if [ "$CI" = "1" ]; then + set -e + set -o pipefail +fi +ERROR_COUNT=0 + +# We are in BASH, get the path of this script in a simple way: +thisdir=$(dirname ${BASH_SOURCE[0]}) +thisdir=$(cd ${thisdir};pwd) + +# Go to the main directory of the repository: +cd ${thisdir}/../.. + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + scriptsdir_nightly_status=${NIGHTLY_STATUS_SCRIPTS} + test "X$scriptsdir_nightly_status" = "X" && scriptsdir_nightly_status=${scriptsdir}/nightly_status + test -x $scriptsdir_nightly_status/externals_status_on_exit.sh && trap $scriptsdir_nightly_status/externals_status_on_exit.sh EXIT + } +} + +# Check if the user specified any source/build directories: +if [ "$BUILDDIR" = "" ]; then + BUILDDIR=${thisdir}/../../../build +fi +mkdir -p ${BUILDDIR} +BUILDDIR=$(cd $BUILDDIR; pwd) + +if [ "$FORCE" = "1" ]; then + echo "Force deleting existing build area..." + rm -fr ${BUILDDIR}/install/AthGenerationExternals ${BUILDDIR}/install/GAUDI + rm -fr ${BUILDDIR}/src/AthGenerationExternals ${BUILDDIR}/src/GAUDI + rm -fr ${BUILDDIR}/build/AthGenerationExternals ${BUILDDIR}/build/GAUDI +fi + +# Create some directories: +mkdir -p ${BUILDDIR}/{src,install} + +# Get the version of AthGeneration for the build. +version=`cat ${thisdir}/version.txt` + +# The directory holding the helper scripts: +scriptsdir=${thisdir}/../../Build/AtlasBuildScripts +scriptsdir=$(cd ${scriptsdir}; pwd) + +# Set the environment variable for finding LCG releases: +source ${scriptsdir}/LCG_RELEASE_BASE.sh + +# Flag for triggering the build of RPMs for the externals: +RPMOPTIONS="-r ${BUILDDIR}" +if [ "$CI" = "1" ]; then + RPMOPTIONS= +fi + +# Read in the tag/branch to use for AthGenerationExternals: +AthGenerationExternalsVersion=$(awk '/^AthGenerationExternalsVersion/{print $3}' ${thisdir}/externals.txt) + +# Check out AthGenerationExternals from the right branch/tag: +${scriptsdir}/checkout_atlasexternals.sh \ + -t ${AthGenerationExternalsVersion} \ + -s ${BUILDDIR}/src/AthGenerationExternals 2>&1 | \ + tee ${BUILDDIR}/src/checkout.AthGenerationExternals.log + +# log analyzer never affects return status in the parent shell: +{ + test "X${NIGHTLY_STATUS}" != "X" && { + branch=$(basename $(cd .. ; pwd)) #FIXME: should be taken from env. + timestamp_tmp=` basename ${BUILDDIR}/../.@@__* 2>/dev/null | sed 's,^\.,,' ` #to be used until the final stamp from ReleaseData is available + test "X$timestamp_tmp" != "X" || { + timestamp_tmp=@@__`date "+%Y-%m-%dT%H%M"`__@@ + touch ${BUILDDIR}/../.${timestamp_tmp} + } + (set +e + ${scriptsdir_nightly_status}/checkout_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" AthGenerationExternals ${BUILDDIR}/src/checkout.AthGenerationExternals.log + ) + } || true +} + +## Build AthGenerationExternals: +${scriptsdir}/build_atlasexternals.sh \ + -s ${BUILDDIR}/src/AthGenerationExternals \ + -b ${BUILDDIR}/build/AthGenerationExternals \ + -i ${BUILDDIR}/install \ + -p AthGenerationExternals ${RPMOPTIONS} -t ${BUILDTYPE} \ + -v ${version} \ + ${EXTRACMAKE[@]/#/-x } || ((ERROR_COUNT++)) + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + (set +e + ${scriptsdir_nightly_status}/cmake_config_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" AthGenerationExternals ${BUILDDIR}/build/AthGenerationExternals/cmake_config.log + ${scriptsdir_nightly_status}/cmake_build_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" AthGenerationExternals ${BUILDDIR}/build/AthGenerationExternals/cmake_build.log + ) + } || true +} + +# Get the "platform name" from the directory created by the AthGenerationExternals +# build: +platform=$(cd ${BUILDDIR}/install/AthGenerationExternals/${version}/InstallArea;ls) + +# Read in the tag/branch to use for Gaudi: +GaudiVersion=$(awk '/^GaudiVersion/{print $3}' ${thisdir}/externals.txt) + +# Check out Gaudi from the right branch/tag: +${scriptsdir}/checkout_Gaudi.sh \ + -t ${GaudiVersion} \ + -s ${BUILDDIR}/src/GAUDI 2>&1 | tee ${BUILDDIR}/src/checkout.GAUDI.log + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + (set +e + ${scriptsdir_nightly_status}/checkout_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" GAUDI ${BUILDDIR}/src/checkout.GAUDI.log + ) + } || true +} + +# Build Gaudi: +${scriptsdir}/build_Gaudi.sh \ + -s ${BUILDDIR}/src/GAUDI \ + -b ${BUILDDIR}/build/GAUDI \ + -i ${BUILDDIR}/install \ + -e ${BUILDDIR}/install/AthGenerationExternals/${version}/InstallArea/${platform} \ + -v ${version} \ + -p AthGenerationExternals -f ${platform} ${RPMOPTIONS} -t ${BUILDTYPE} \ + ${EXTRACMAKE[@]/#/-x } || ((ERROR_COUNT++)) + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + (set +e + ${scriptsdir_nightly_status}/cmake_config_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" GAUDI ${BUILDDIR}/build/GAUDI/cmake_config.log + ${scriptsdir_nightly_status}/cmake_build_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" GAUDI ${BUILDDIR}/build/GAUDI/cmake_build.log + ) + } || true +} + +# Exit with the error count taken into account. +if [ ${ERROR_COUNT} -ne 0 ]; then + echo "AthGeneration externals build encountered ${ERROR_COUNT} error(s)" +fi +exit ${ERROR_COUNT} diff --git a/Projects/AthGeneration/cmake/PostConfig.cmake.in b/Projects/AthGeneration/cmake/PostConfig.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..da30d473118a5ba9bf544811822541117bd97193 --- /dev/null +++ b/Projects/AthGeneration/cmake/PostConfig.cmake.in @@ -0,0 +1,33 @@ +# +# File taking care of pointing the downstream projects at the right +# version of the externals. +# + +# Set the versions of the TDAQ projects: +set( TDAQ-COMMON_VERSION "@TDAQ-COMMON_VERSION@" ) +set( TDAQ-COMMON_ATROOT "@TDAQ-COMMON_ATROOT@" ) + +# Find Gaudi: +find_package( Gaudi REQUIRED ) + +# Set up the compilation option(s) for AthGeneration. +add_definitions( -DGENERATIONBASE ) +set( GENERATIONBASE TRUE CACHE BOOL + "Flag specifying that this is a generation release build" ) + +# Load all the files from the externals/ subdirectory: +get_filename_component( _thisdir ${CMAKE_CURRENT_LIST_FILE} PATH ) +file( GLOB _externals "${_thisdir}/externals/*.cmake" ) +unset( _thisdir ) +foreach( _external ${_externals} ) + include( ${_external} ) + get_filename_component( _extName ${_external} NAME_WE ) + string( TOUPPER ${_extName} _extNameUpper ) + if( NOT AtlasExternals_FIND_QUIETLY ) + message( STATUS "Taking ${_extName} from: ${${_extNameUpper}_LCGROOT}" ) + endif() + unset( _extName ) + unset( _extNameUpper ) +endforeach() +unset( _external ) +unset( _externals ) diff --git a/Projects/AthGeneration/cmake/README.txt.in b/Projects/AthGeneration/cmake/README.txt.in new file mode 100644 index 0000000000000000000000000000000000000000..d1a2ff448e2478f1cd157ebff952dc6d26318634 --- /dev/null +++ b/Projects/AthGeneration/cmake/README.txt.in @@ -0,0 +1,5 @@ + + AthGeneration - @CMAKE_PROJECT_VERSION@ + +This package provides version @CMAKE_PROJECT_VERSION@ of the ATLAS +event generation software. diff --git a/Projects/AthGeneration/externals.txt b/Projects/AthGeneration/externals.txt new file mode 100644 index 0000000000000000000000000000000000000000..28700356a343e87284c4705be1b2092107c80aa6 --- /dev/null +++ b/Projects/AthGeneration/externals.txt @@ -0,0 +1,12 @@ +# Versions of the various externals to build before starting the build of +# this project, when doing a full stack nightly build. +# +# Remember that when specifying the name of a branch, you *must* put +# an "origin/" prefix before it. For tags however this is explicitly +# forbidden. + +# The version of atlas/atlasexternals to use: +AthGenerationExternalsVersion = origin/2.0.56 + +# The version of atlas/Gaudi to use: +GaudiVersion = v33r0.003 diff --git a/Projects/AthGeneration/externals/Crmc.cmake b/Projects/AthGeneration/externals/Crmc.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b1a4276e809b45a7bf67c442c6ef82822e361ef3 --- /dev/null +++ b/Projects/AthGeneration/externals/Crmc.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Crmc to use. +# + +set( CRMC_VERSION 1.5.6 ) +set( CRMC_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/crmc/${CRMC_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/EvtGen.cmake b/Projects/AthGeneration/externals/EvtGen.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5d729fa4457dd559530cf6c20db62a6974763059 --- /dev/null +++ b/Projects/AthGeneration/externals/EvtGen.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of EvtGen to use. +# + +set( EVTGEN_LCGVERSION 1.7.0 ) +set( EVTGEN_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/evtgen/${EVTGEN_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/FJContrib.cmake b/Projects/AthGeneration/externals/FJContrib.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fe7873d126d03a3022a7319467800c24042224e7 --- /dev/null +++ b/Projects/AthGeneration/externals/FJContrib.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of FJContrib to use. +# + +set( FJCONTRIB_LCGVERSION 1.041 ) +set( FJCONTRIB_LCGROOT + ${LCG_RELEASE_DIR}/fjcontrib/${FJCONTRIB_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/HEPUtils.cmake b/Projects/AthGeneration/externals/HEPUtils.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8344158ac506661512518cc490a53e012719bfd0 --- /dev/null +++ b/Projects/AthGeneration/externals/HEPUtils.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of HEPUtils to use. +# + +set( HEPUTILS_LCGVERSION 1.3.2 ) +set( HEPUTILS_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/heputils/${HEPUTILS_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Herwig.cmake b/Projects/AthGeneration/externals/Herwig.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b0df2d6dd7de4363b5fc6a5538ac9becea9f78ef --- /dev/null +++ b/Projects/AthGeneration/externals/Herwig.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Herwig to use. +# + +set( HERWIG_LCGVERSION 6.521.2 ) +set( HERWIG_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/herwig/${HERWIG_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Herwig3.cmake b/Projects/AthGeneration/externals/Herwig3.cmake new file mode 100644 index 0000000000000000000000000000000000000000..70a428981e758362c6aad7a1f495bfb4050e899b --- /dev/null +++ b/Projects/AthGeneration/externals/Herwig3.cmake @@ -0,0 +1,9 @@ +# +# File specifying the location of Herwig3 to use. +# + +set( HERWIG3_LCGVERSION 7.2.0 ) +# Comment the following line for H7 versions <7.2 +set( HW3_VER_IS_72 1 ) +set( HERWIG3_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/herwig++/${HERWIG3_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Hydjet.cmake b/Projects/AthGeneration/externals/Hydjet.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1eede1364e82dd905ae8546a36ffba6acfe11849 --- /dev/null +++ b/Projects/AthGeneration/externals/Hydjet.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Hydjet to use. +# + +set( HYDJET_LCGVERSION 1.8 ) +set( HYDJET_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/hydjet/${HYDJET_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Lhapdf.cmake b/Projects/AthGeneration/externals/Lhapdf.cmake new file mode 100644 index 0000000000000000000000000000000000000000..03c1e85b5a88e746d9a03c918df24ae9b84b6faa --- /dev/null +++ b/Projects/AthGeneration/externals/Lhapdf.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Lhapdf to use. +# + +set( LHAPDF_LCGVERSION 6.2.3 ) +set( LHAPDF_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/lhapdf/${LHAPDF_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/MCUtils.cmake b/Projects/AthGeneration/externals/MCUtils.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f7ebb4984d7dde06c3c0be84b212779a3cf45bc4 --- /dev/null +++ b/Projects/AthGeneration/externals/MCUtils.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of MCUtils to use. +# + +set( MCUTILS_LCGVERSION 1.3.3 ) +set( MCUTILS_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/mcutils/${MCUTILS_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/MadGraph5Amc.cmake b/Projects/AthGeneration/externals/MadGraph5Amc.cmake new file mode 100644 index 0000000000000000000000000000000000000000..741f63cf942e814843d29e662f38f8a96ab607ba --- /dev/null +++ b/Projects/AthGeneration/externals/MadGraph5Amc.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of MadGraph to use. +# + +set( MADGRAPH5AMC_LCGVERSION 2.6.7.atlas3 ) +set( MADGRAPH5AMC_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/madgraph5amc/${MADGRAPH5AMC_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/OpenLoops.cmake b/Projects/AthGeneration/externals/OpenLoops.cmake new file mode 100644 index 0000000000000000000000000000000000000000..087811c9d70c055a7419707b2358156a3e43c4e4 --- /dev/null +++ b/Projects/AthGeneration/externals/OpenLoops.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of OpenLoops to use. +# + +set( OPENLOOPS_LCGVERSION "2.0.0" ) +set( OPENLOOPS_LCGROOT + "${LCG_RELEASE_DIR}/MCGenerators/openloops/${OPENLOOPS_LCGVERSION}/${LCG_PLATFORM}" ) \ No newline at end of file diff --git a/Projects/AthGeneration/externals/Photospp.cmake b/Projects/AthGeneration/externals/Photospp.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8e0b8c2deae56c516c33438e44d0ce2257191861 --- /dev/null +++ b/Projects/AthGeneration/externals/Photospp.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Photos++ to use. +# + +set( PHOTOSPP_LCGVERSION 3.61 ) +set( PHOTOSPP_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/photos++/${PHOTOSPP_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Pythia6.cmake b/Projects/AthGeneration/externals/Pythia6.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b8810cd5b852142988e8bb706b07cfcafa1a29ca --- /dev/null +++ b/Projects/AthGeneration/externals/Pythia6.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Pythia 6 to use. +# + +set( PYTHIA6_LCGVERSION 429.2 ) +set( PYTHIA6_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/pythia6/${PYTHIA6_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Pythia8.cmake b/Projects/AthGeneration/externals/Pythia8.cmake new file mode 100644 index 0000000000000000000000000000000000000000..378c1efff99649120c024d7951be38ff50c97979 --- /dev/null +++ b/Projects/AthGeneration/externals/Pythia8.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Pythia 8 to use. +# + +set( PYTHIA8_LCGVERSION 244 ) +set( PYTHIA8_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/pythia8/${PYTHIA8_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/README.md b/Projects/AthGeneration/externals/README.md new file mode 100644 index 0000000000000000000000000000000000000000..a0b5ddb141d9662009c64e2664c9d3d704c9ab2c --- /dev/null +++ b/Projects/AthGeneration/externals/README.md @@ -0,0 +1,20 @@ +Directory collecting external package declarations +================================================== + +This directory is used to collect simple CMake files that get included by +the CMake configuration to set up the locations of all the externals used +for the offline release build. + +Each external should be defined by its own CMake file. The files should +have a name <Bla> corresponding to the Find<Bla> module name used to find +the external in question. + +The files should define all the variables expected by the Find<Bla> modules, +which normally boil down to variables: + +`EXTNAME_LCGROOT` +`EXTNAME_LCGVERSION` + +But some modules may require other variables. In which case the `_LCGROOT` +variable should still be set, to get a nice printout from the AtlasExternals +code during the build about the location of the used external. diff --git a/Projects/AthGeneration/externals/Rivet.cmake b/Projects/AthGeneration/externals/Rivet.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a2852f07772f2f45aa720a81c0049208bfbd0bab --- /dev/null +++ b/Projects/AthGeneration/externals/Rivet.cmake @@ -0,0 +1,6 @@ +# +# File specifying the location of Rivet to use. +# +set( RIVET_LCGVERSION 3.1.0 ) +set( RIVET_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/rivet/${RIVET_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Sherpa.cmake b/Projects/AthGeneration/externals/Sherpa.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ba9b3421a933a8273427d55da9c62bfd131d3aab --- /dev/null +++ b/Projects/AthGeneration/externals/Sherpa.cmake @@ -0,0 +1,6 @@ +# +# File specifying the location of Sherpa to use. +# +set( SHERPA_LCGVERSION 2.2.8 ) +set( SHERPA_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/sherpa/${SHERPA_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Starlight.cmake b/Projects/AthGeneration/externals/Starlight.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4e0548db7bff885d4230a5cc5749fa806ded1b08 --- /dev/null +++ b/Projects/AthGeneration/externals/Starlight.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Starlight to use. +# + +set( STARLIGHT_LCGVERSION r313 ) +set( STARLIGHT_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/starlight/${STARLIGHT_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Superchic.cmake b/Projects/AthGeneration/externals/Superchic.cmake new file mode 100644 index 0000000000000000000000000000000000000000..eae6f9b47adef44b2cc964e4e127ef803de49bab --- /dev/null +++ b/Projects/AthGeneration/externals/Superchic.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Superchic 3.0 to use. +# + +set( SUPERCHIC_LCGVERSION 3.06 ) +set( SUPERCHIC_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/superchic/${SUPERCHIC_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Tauolapp.cmake b/Projects/AthGeneration/externals/Tauolapp.cmake new file mode 100644 index 0000000000000000000000000000000000000000..375c6944f2a508160192f49f9f816570e11746cf --- /dev/null +++ b/Projects/AthGeneration/externals/Tauolapp.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Tauola++ to use. +# + +set( TAUOLAPP_LCGVERSION 1.1.6 ) +set( TAUOLAPP_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/tauola++/${TAUOLAPP_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/ThePEG.cmake b/Projects/AthGeneration/externals/ThePEG.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cf5c807c4582efe4b7084e3add47f9910fed7e3e --- /dev/null +++ b/Projects/AthGeneration/externals/ThePEG.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of ThePEG to use. +# + +set( THEPEG_LCGVERSION 2.2.0 ) +set( THEPEG_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/thepeg/${THEPEG_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/VBFNLO.cmake b/Projects/AthGeneration/externals/VBFNLO.cmake new file mode 100644 index 0000000000000000000000000000000000000000..74e301bb25f7a2d90b5d5bbad9381a0df5b658da --- /dev/null +++ b/Projects/AthGeneration/externals/VBFNLO.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of VBFNLO to use. +# + +set( VBFNLO_LCGVERSION "3.0.0beta2p3" ) +set( VBFNLO_LCGROOT + "${LCG_RELEASE_DIR}/MCGenerators/vbfnlo/${VBFNLO_LCGVERSION}/${LCG_PLATFORM}" ) \ No newline at end of file diff --git a/Projects/AthGeneration/externals/YODA.cmake b/Projects/AthGeneration/externals/YODA.cmake new file mode 100644 index 0000000000000000000000000000000000000000..388f4c1e158db5510a576ca7146da09bd374e22c --- /dev/null +++ b/Projects/AthGeneration/externals/YODA.cmake @@ -0,0 +1,6 @@ +# +# File specifying the location of YODA to use. +# +set( YODA_LCGVERSION 1.8.0 ) +set( YODA_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/yoda/${YODA_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/package_filters.txt b/Projects/AthGeneration/package_filters.txt new file mode 100644 index 0000000000000000000000000000000000000000..85fd11c0ba723d11d7f3d5ebc307c3e83fed1187 --- /dev/null +++ b/Projects/AthGeneration/package_filters.txt @@ -0,0 +1,184 @@ +# +# Package filtering rules for the AthGeneration project build. +# ++ AtlasTest/TestTools ++ Calorimeter/CaloConditions ++ Calorimeter/CaloGeoHelpers ++ Calorimeter/CaloDetDescr ++ Calorimeter/CaloEvent ++ Calorimeter/CaloIdentifier ++ Control/AthAllocators ++ Control/AthAnalysisBaseComps ++ Control/AthContainers ++ Control/AthContainersInterfaces ++ Control/AthContainersRoot ++ Control/AthLinks ++ Control/AthToolSupport/AsgMessaging ++ Control/AthToolSupport/AsgTools ++ Control/AthenaBaseComps ++ Control/AthenaCommon ++ Control/AthenaInterprocess ++ Control/AthenaKernel ++ Control/AthenaMP ++ Control/AthenaMPTools ++ Control/AthenaPython ++ Control/AthenaServices ++ Control/CLIDComps ++ Control/CxxUtils ++ Control/DataModelAthenaPool ++ Control/DataModelRoot ++ Control/GaudiSequencer ++ Control/IOVSvc ++ Control/Navigation ++ Control/PerformanceMonitoring/PerfMonAna ++ Control/PerformanceMonitoring/PerfMonComps ++ Control/PerformanceMonitoring/PerfMonEvent ++ Control/PerformanceMonitoring/PerfMonKernel ++ Control/PyKernel ++ Control/RngComps ++ Control/RootUtils ++ Control/SGComps ++ Control/SGMon/SGAudCore ++ Control/SGMon/SGAudSvc ++ Control/SGTools ++ Control/StoreGate ++ Control/StoreGateBindings ++ Control/xAODRootAccess ++ Control/xAODRootAccessInterfaces ++ Database/APR/CollectionBase ++ Database/APR/CollectionUtilities ++ Database/APR/FileCatalog ++ Database/APR/ImplicitCollection ++ Database/APR/POOLCore ++ Database/APR/PersistencySvc ++ Database/APR/RootStorageSvc ++ Database/APR/StorageSvc ++ Database/AthenaPOOL/AthenaPoolCnvSvc ++ Database/AthenaPOOL/AthenaPoolServices ++ Database/AthenaPOOL/AthenaPoolUtilities ++ Database/AthenaPOOL/DBDataModel ++ Database/AthenaPOOL/EventSelectorAthenaPool ++ Database/AthenaPOOL/OutputStreamAthenaPool ++ Database/AthenaPOOL/PoolSvc ++ Database/AthenaPOOL/RootConversions ++ Database/AtlasSealCLHEP ++ Database/ConnectionManagement/AtlasAuthentication ++ Database/ConnectionManagement/DBReplicaSvc ++ Database/CoraCool ++ Database/IOVDbAthenaPool ++ Database/IOVDbDataModel ++ Database/IOVDbMetaDataTools ++ Database/IOVDbSvc ++ Database/IOVDbTPCnv ++ Database/PersistentDataModel ++ Database/PersistentDataModelAthenaPool ++ Database/PersistentDataModelTPCnv ++ Database/TPTools ++ DetectorDescription/AtlasDetDescr ++ DetectorDescription/GeoModel/GeoModelInterfaces ++ DetectorDescription/GeoModel/GeoModelUtilities ++ DetectorDescription/GeoPrimitives ++ DetectorDescription/IdDict ++ DetectorDescription/IdDictParser ++ DetectorDescription/Identifier ++ Event/EventAthenaPool ++ Event/EventBookkeeperAthenaPool ++ Event/EventBookkeeperMetaData ++ Event/EventBookkeeperTPCnv ++ Event/EventBookkeeperTools ++ Event/EventContainers ++ Event/EventInfo ++ Event/EventInfoMgt ++ Event/EventKernel ++ Event/EventPTCnv ++ Event/EventPrimitives ++ Event/EventTPCnv ++ Event/FourMom ++ Event/NavFourMom ++ Event/PyDumper ++ Event/xAOD/xAODBase ++ Event/xAOD/xAODCaloEvent ++ Event/xAOD/xAODCore ++ Event/xAOD/xAODCoreAthenaPool ++ Event/xAOD/xAODCoreCnv ++ Event/xAOD/xAODCutFlow ++ Event/xAOD/xAODEventFormat ++ Event/xAOD/xAODEventInfo ++ Event/xAOD/xAODEventShape ++ Event/xAOD/xAODJet ++ Event/xAOD/xAODJetAthenaPool ++ Event/xAOD/xAODMuon ++ Event/xAOD/xAODPrimitives ++ Event/xAOD/xAODTracking ++ Event/xAOD/xAODTruth ++ Event/xAOD/xAODTruthAthenaPool ++ Event/xAOD/xAODTruthCnv ++ External/AtlasDataArea ++ External/Pythia8 ++ External/pyAMI ++ Generators/Charybdis_i +- Generators/EmbeddedTrackGenerator +- Generators/ExoGraviton_i +- Generators/GravADD_i +- Generators/Horace_i +- Generators/HvGen_i +- Generators/MadCUP_i +- Generators/Matchig_i +- Generators/Protos_i +- Generators/Pyquench_i +- Generators/PythiaB +- Generators/PythiaExo_i +- Generators/Reldis_i +- Generators/VBFNLOControl +- Generators/TrackRecordGenerator ++ Generators/.* ++ InnerDetector/InDetExample/InDetRecExample ++ LArCalorimeter/LArCabling ++ LArCalorimeter/LArGeoModel/LArHV ++ LArCalorimeter/LArGeoModel/LArReadoutGeometry ++ LArCalorimeter/LArIdentifier ++ MuonSpectrometer/MuonIdHelpers ++ PhysicsAnalysis/AnalysisCommon/ParticleEvent ++ PhysicsAnalysis/AnalysisCommon/ParticleJetTools ++ PhysicsAnalysis/PATJobTransforms ++ PhysicsAnalysis/TruthParticleID/McParticleEvent ++ PhysicsAnalysis/TruthParticleID/McParticleKernel ++ Reconstruction/EventShapes/EventShapeInterface ++ Reconstruction/Jet/JetEDM ++ Reconstruction/Jet/JetEvent ++ Reconstruction/Jet/JetInterface ++ Reconstruction/Jet/JetRec ++ Reconstruction/MissingETEvent ++ Reconstruction/Particle ++ Reconstruction/RecExample/RecExCommon ++ Reconstruction/RecExample/RecExConfig ++ Simulation/Tools/AtlasCLHEP_RandomGenerators ++ Tools/ART ++ Tools/JobTransforms ++ Tools/KitValidation ++ Tools/PathResolver ++ Tools/PmbCxxUtils ++ Tools/PyJobTransforms ++ Tools/PyJobTransformsCore ++ Tools/PyUtils ++ Tools/Scripts ++ Tools/XMLCoreParser ++ Tracking/TrkDetDescr/TrkDetDescrUtils ++ Tracking/TrkDetDescr/TrkDetElementBase ++ Tracking/TrkDetDescr/TrkSurfaces ++ Tracking/TrkEvent/TrkEventPrimitives ++ Tracking/TrkEvent/TrkMaterialOnTrack ++ Tracking/TrkEvent/TrkMeasurementBase ++ Tracking/TrkEvent/TrkNeutralParameters ++ Tracking/TrkEvent/TrkParameters ++ Tracking/TrkEvent/TrkParametersBase ++ Tracking/TrkEvent/TrkParticleBase ++ Tracking/TrkEvent/TrkSegment ++ Tracking/TrkEvent/TrkTrack ++ Tracking/TrkEvent/TrkTrackLink ++ Tracking/TrkEvent/TrkTrackSummary ++ Tracking/TrkEvent/VxVertex ++ PhysicsAnalysis/MCTruthClassifier +# Ignore everything else +- .* + diff --git a/Projects/AthGeneration/version.txt b/Projects/AthGeneration/version.txt new file mode 100644 index 0000000000000000000000000000000000000000..f7fbce293b61ab52ce2049b102d5403190a3ad5c --- /dev/null +++ b/Projects/AthGeneration/version.txt @@ -0,0 +1 @@ +22.0.10