Skip to content
Commits on Source (6)
......@@ -132,6 +132,8 @@ endfunction( _atlas_add_script_test )
# [INCLUDE_DIRS Dir1...]
# [LINK_LIBRARIES Library1...]
# [EXTRA_PATTERNS patterns]
# [LOG_SELECT_PATTERN patterns]
# [LOG_IGNORE_PATTERN patterns]
# [PRE_EXEC_SCRIPT script]
# [POST_EXEC_SCRIPT script]
# [ENVIRONMENT env]
......@@ -142,6 +144,8 @@ endfunction( _atlas_add_script_test )
#
# atlas_add_test( TestName SCRIPT test/script.sh [arg1...]
# [EXTRA_PATTERNS patterns]
# [LOG_SELECT_PATTERN patterns]
# [LOG_IGNORE_PATTERN patterns]
# [PRE_EXEC_SCRIPT script]
# [POST_EXEC_SCRIPT script]
# [ENVIRONMENT env]
......@@ -151,8 +155,8 @@ function( atlas_add_test testName )
# Parse the options given to the function:
set( _booleanArgs NOEXEC )
set( _singleParamArgs SCRIPT EXTRA_PATTERNS ENVIRONMENT
PRE_EXEC_SCRIPT POST_EXEC_SCRIPT )
set( _singleParamArgs SCRIPT EXTRA_PATTERNS LOG_SELECT_PATTERN
LOG_IGNORE_PATTERN ENVIRONMENT PRE_EXEC_SCRIPT POST_EXEC_SCRIPT )
set( _multiParamArgs SOURCES PROPERTIES )
cmake_parse_arguments( ARG "${_booleanArgs}" "${_singleParamArgs}"
"${_multiParamArgs}" ${ARGN} )
......@@ -220,8 +224,18 @@ function( atlas_add_test testName )
if( ARG_POST_EXEC_SCRIPT )
set( POST_EXEC_SCRIPT ${ARG_POST_EXEC_SCRIPT} )
else()
set( PARAMS )
if ( ARG_EXTRA_PATTERNS )
set( PARAMS "'${ARG_EXTRA_PATTERNS}'")
endif()
if ( ARG_LOG_SELECT_PATTERN )
set( PARAMS "${PARAMS} -s '${ARG_LOG_SELECT_PATTERN}'" )
endif()
if ( ARG_LOG_IGNORE_PATTERN )
set( PARAMS "${PARAMS} -i '${ARG_LOG_IGNORE_PATTERN}'" )
endif()
set( POST_EXEC_SCRIPT "if type post.sh >/dev/null 2>&1; then
post.sh ${testName} \"${ARG_EXTRA_PATTERNS}\"
post.sh ${testName} ${PARAMS}
fi" )
endif()
......
......@@ -26,11 +26,9 @@ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/configure.sh.in
# Set up the build of FastJetContrib for the build area:
ExternalProject_Add( FastJetContrib
PREFIX ${CMAKE_BINARY_DIR}
URL http://cern.ch/atlas-software-dist-eos/externals/FastJetContrib/fjcontrib-1.033.tar.gz
URL_MD5 1432338391fd18fdb71854073d1688a4
URL http://cern.ch/atlas-software-dist-eos/externals/FastJetContrib/fjcontrib-1.041.tar.gz
URL_MD5 b37674a8701af52b58ebced94a270877
INSTALL_DIR ${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}
PATCH_COMMAND patch -p1 <
${CMAKE_CURRENT_SOURCE_DIR}/patches/fjcontrib-1.033-clang.patch
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env
CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/atlas_build_run.sh
......
diff -ur fjcontrib-1.033-orig/RecursiveTools/RecursiveSoftDrop.cc fjcontrib-1.033-fixed/RecursiveTools/RecursiveSoftDrop.cc
--- fjcontrib-1.033-orig/RecursiveTools/RecursiveSoftDrop.cc 2018-02-15 14:30:13.000000000 +0100
+++ fjcontrib-1.033-fixed/RecursiveTools/RecursiveSoftDrop.cc 2018-04-03 15:13:21.000000000 +0200
@@ -436,11 +436,11 @@
// composite jet structure)
vector<PseudoJet> recursive_soft_drop_prongs(const PseudoJet & rsd_jet){
// make sure that the jet has the appropriate RecursiveSoftDrop structure
- if (!rsd_jet.has_structure_of<RecursiveSoftDrop::StructureType>())
+ if (!rsd_jet.has_structure_of<RecursiveSoftDrop>())
return vector<PseudoJet>();
// if this jet has no substructure, just return a 1-prong object
- if (!rsd_jet.structure_of<RecursiveSoftDrop::StructureType>().has_substructure())
+ if (!rsd_jet.structure_of<RecursiveSoftDrop>().has_substructure())
return vector<PseudoJet>(1, rsd_jet);
// otherwise fill a vector with all the prongs (no specific ordering)
diff -ur fjcontrib-1.030-orig/configure fjcontrib-1.030-new/configure
--- fjcontrib-1.030-orig/configure 2017-10-13 11:44:26.000000000 +0200
+++ fjcontrib-1.030-new/configure 2017-11-13 10:22:04.000000000 +0100
@@ -306,15 +306,15 @@
fi
# write out the Makefile
-sed -e "s/@CONTRIB_BUILD_LIST@/$escaped_built_list/g;\
- s/@FJCONFIG@/$escaped_fjconfig/g;\
- s/@PREFIX@/${escaped_prefix}/g;\
- s/template gets processed/was generated automatically/;\
- s/@contrib_commandline@/$escaped_commandline/;\
- s/@FRAGILE_SHARED_SRC_LIST@/$escaped_srclist/;\
- s/@DYNLIBOPT@/$dynlibopt/g;s/@DYNLIBEXT@/$dynlibext/g;\
- s/@DYNLIBPOSTPROC@ \(.*\)/$dynlibpostproc/g;\
- s/any edits fit with the rest of the build system/you only edit Makefile.in/" Makefile.in > Makefile
+sed -e "s/@CONTRIB_BUILD_LIST@/$escaped_built_list/g" \
+ -e "s/@FJCONFIG@/$escaped_fjconfig/g" \
+ -e "s/@PREFIX@/${escaped_prefix}/g" \
+ -e "s/template gets processed/was generated automatically/" \
+ -e "s/@contrib_commandline@/$escaped_commandline/" \
+ -e "s/@FRAGILE_SHARED_SRC_LIST@/$escaped_srclist/" \
+ -e "s/@DYNLIBOPT@/$dynlibopt/g;s/@DYNLIBEXT@/$dynlibext/g" \
+ -e "s/@DYNLIBPOSTPROC@ \(.*\)/$dynlibpostproc/g" \
+ -e "s/any edits fit with the rest of the build system/you only edit Makefile.in/" Makefile.in > Makefile
#------------------------------------------------------------------------
# write output and config.log file
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
#
# Package building GeoModel Kernel for ATLAS.
# Package building GeoModelCore Kernel for ATLAS.
#
# Set a minimum required CMake version to use.
......@@ -12,7 +12,7 @@ if( POLICY CMP0074 )
endif()
# The name of the package:
atlas_subdir( GeoModel )
atlas_subdir( GeoModelCore )
# In release recompilation mode finish here:
if( ATLAS_RELEASE_MODE )
......@@ -35,13 +35,14 @@ if( "${CMAKE_CXX_STANDARD}" GREATER_EQUAL 11 )
endif()
# Directory for the temporary build results:
set( _buildDir ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/GeoModelBuild )
set( _buildDir ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/GeoModelCoreBuild )
# Set up the build of GeoModel:
ExternalProject_Add( GeoModel
# Set up the build of GeoModelCore:
ExternalProject_Add( GeoModelCore
PREFIX ${CMAKE_BINARY_DIR}
GIT_REPOSITORY https://gitlab.cern.ch/GeoModelDev/GeoModelKernel.git
GIT_TAG 03490511
INSTALL_DIR ${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}
GIT_REPOSITORY https://gitlab.cern.ch/GeoModelDev/GeoModelCore.git
GIT_TAG 2.0.0
CMAKE_CACHE_ARGS
-DCMAKE_INSTALL_LIBDIR:PATH=${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_PREFIX:PATH=${_buildDir}
......@@ -49,17 +50,20 @@ ExternalProject_Add( GeoModel
${_extraOptions}
LOG_CONFIGURE 1
)
add_dependencies( Package_GeoModel GeoModel )
ExternalProject_Add_Step( GeoModelCore buildinstall
COMMAND ${CMAKE_COMMAND} -E copy_directory ${_buildDir}/ <INSTALL_DIR>
COMMENT "Installing GeoModelCore into the build area"
DEPENDEES install )
add_dependencies( Package_GeoModelCore GeoModelCore )
if( ATLAS_BUILD_EIGEN )
add_dependencies ( GeoModel Eigen )
add_dependencies ( GeoModelCore Eigen )
endif()
# Install GeoModel:
# Install GeoModelCore:
install( DIRECTORY ${_buildDir}/
DESTINATION . USE_SOURCE_PERMISSIONS OPTIONAL )
# Install its find-module:
install( FILES cmake/FindGeoModel.cmake
install( FILES cmake/FindGeoModelCore.cmake
DESTINATION ${CMAKE_INSTALL_CMAKEDIR}/modules )
GeoModel Kernel Library
=========================
This package builds the GeoModel Kernel library for the offline software of ATLAS.
This package builds the GeoModelCore Kernel library for the offline software of ATLAS.
The library's sources are taken from https://gitlab.cern.ch/GeoModelDev/GeoModelKernel
The library's sources are taken from https://gitlab.cern.ch/GeoModelDev/GeoModelCore
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
#
# Locate the GeoModel external package.
# Locate the GeoModelCore external package.
#
# Defines:
# GEOMODEL_FOUND
# GEOMODEL_INCLUDE_DIR
# GEOMODEL_INCLUDE_DIRS
# GEOMODEL_<component>_FOUND
# GEOMODEL_<component>_LIBRARY
# GEOMODEL_LIBRARIES
# GEOMODEL_LIBRARY_DIRS
# GEOMODELCORE_FOUND
# GEOMODELCORE_INCLUDE_DIR
# GEOMODELCORE_INCLUDE_DIRS
# GEOMODELCORE_<component>_FOUND
# GEOMODELCORE_<component>_LIBRARY
# GEOMODELCORE_LIBRARIES
# GEOMODELCORE_LIBRARY_DIRS
#
# The user can set GEOMODEL_ATROOT to guide the script.
# The user can set GEOMODELCORE_ATROOT to guide the script.
#
# Include the helper code:
include( AtlasInternals )
# Declare the module:
atlas_external_module( NAME GeoModel
atlas_external_module( NAME GeoModelCore
INCLUDE_SUFFIXES include
INCLUDE_NAMES GeoModelKernel/RCBase.h
GeoGenericFunctions/AbsFunction.h
GeoGenericFunctions/AbsFunction.h
LIBRARY_SUFFIXES lib
DEFAULT_COMPONENTS GeoModelKernel GeoGenericFunctions )
# Handle the standard find_package arguments:
include( FindPackageHandleStandardArgs )
find_package_handle_standard_args( GeoModel DEFAULT_MSG GEOMODEL_INCLUDE_DIR
GEOMODEL_INCLUDE_DIRS GEOMODEL_LIBRARIES )
mark_as_advanced( GEOMODEL_FOUND GEOMODEL_INCLUDE_DIR GEOMODEL_INCLUDE_DIRS
GEOMODEL_LIBRARIES GEOMODEL_LIBRARY_DIRS )
find_package_handle_standard_args( GeoModelCore DEFAULT_MSG GEOMODELCORE_INCLUDE_DIR
GEOMODELCORE_INCLUDE_DIRS GEOMODELCORE_LIBRARIES )
mark_as_advanced( GEOMODELCORE_FOUND GEOMODELCORE_INCLUDE_DIR GEOMODELCORE_INCLUDE_DIRS
GEOMODELCORE_LIBRARIES GEOMODELCORE_LIBRARY_DIRS )
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
#
# Package building GeoModelIO Kernel for ATLAS.
#
# Set a minimum required CMake version to use.
cmake_minimum_required( VERSION 3.7 )
# Make sure that all _ROOT variables *are* used when they are set.
if( POLICY CMP0074 )
cmake_policy( SET CMP0074 NEW )
endif()
# The name of the package:
atlas_subdir( GeoModelIO )
# In release recompilation mode finish here:
if( ATLAS_RELEASE_MODE )
return()
endif()
# External dependencies.
find_package( Qt5 COMPONENTS Core Sql REQUIRED )
# Directory for the temporary build results:
set( _buildDir ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/GeoModelIOBuild )
# Extra configuration parameters.
set( _extraOptions )
if( NOT "${CMAKE_BUILD_TYPE}" STREQUAL "" )
list( APPEND _extraOptions -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} )
endif()
if( "${CMAKE_CXX_STANDARD}" GREATER_EQUAL 11 )
list( APPEND _extraOptions -DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD} )
endif()
# List of paths given to CMAKE_PREFIX_PATH.
set( _prefixPaths ${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}
$ENV{CMAKE_PREFIX_PATH} ${QT5_LCGROOT} )
# Set up the build of GeoModelIO:
ExternalProject_Add( GeoModelIO
PREFIX ${CMAKE_BINARY_DIR}
INSTALL_DIR ${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}
GIT_REPOSITORY https://gitlab.cern.ch/GeoModelDev/GeoModelIO.git
GIT_TAG 2.0.1
CMAKE_CACHE_ARGS
-DCMAKE_PREFIX_PATH:PATH=${_prefixPaths}
-DCMAKE_INSTALL_LIBDIR:PATH=${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_PREFIX:PATH=${_buildDir}
${_extraOptions}
LOG_CONFIGURE 1
)
ExternalProject_Add_Step( GeoModelIO buildinstall
COMMAND ${CMAKE_COMMAND} -E copy_directory ${_buildDir}/ <INSTALL_DIR>
COMMENT "Installing GeoModelIO into the build area"
DEPENDEES install )
add_dependencies( GeoModelIO GeoModelCore )
add_dependencies( Package_GeoModelIO GeoModelIO )
# Install GeoModelIO:
install( DIRECTORY ${_buildDir}/
DESTINATION . USE_SOURCE_PERMISSIONS OPTIONAL )
# Install its find-module:
install( FILES cmake/FindGeoModelIO.cmake
DESTINATION ${CMAKE_INSTALL_CMAKEDIR}/modules )
GeoModel I/O Library
=========================
This package builds the GeoModel I/O library for the offline software of ATLAS.
The library's sources are taken from https://gitlab.cern.ch/GeoModelDev/GeoModelIO
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
#
# Locate the GeoModelIO external package.
#
# Defines:
# GEOMODELIO_FOUND
# GEOMODELIO_INCLUDE_DIR
# GEOMODELIO_INCLUDE_DIRS
# GEOMODELIO_<component>_FOUND
# GEOMODELIO_<component>_LIBRARY
# GEOMODELIO_LIBRARIES
# GEOMODELIO_LIBRARY_DIRS
#
# The user can set GEOMODELIO_ATROOT to guide the script.
#
# Include the helper code:
include( AtlasInternals )
# Declare the module:
atlas_external_module( NAME GeoModelIO
INCLUDE_SUFFIXES include
INCLUDE_NAMES GeoModelDBManager/GMDBManager.h
GeoModelRead/ReadGeoModel.h
GeoModelWrite/WriteGeoModel.h
TFPersistification/ACosIO.h
LIBRARY_SUFFIXES lib
DEFAULT_COMPONENTS GeoModelDBManager GeoModelRead GeoModelWrite TFPersistification )
# Handle the standard find_package arguments:
include( FindPackageHandleStandardArgs )
find_package_handle_standard_args( GeoModelIO DEFAULT_MSG GEOMODELIO_INCLUDE_DIR
GEOMODELIO_INCLUDE_DIRS GEOMODELIO_LIBRARIES )
mark_as_advanced( GEOMODELIO_FOUND GEOMODELIO_INCLUDE_DIR GEOMODELIO_INCLUDE_DIRS
GEOMODELIO_LIBRARIES GEOMODELIO_LIBRARY_DIRS )
......@@ -7,7 +7,7 @@
+ External/GPerfTools
+ External/Gdb
+ External/Geant4
+ External/GeoModel
+ External/GeoModelCore
+ External/GoogleTest
+ External/HepMCAnalysis
+ External/MKL
......
......@@ -13,7 +13,8 @@
+ External/GPerfTools
+ External/Gdb
+ External/Geant4
+ External/GeoModel
+ External/GeoModelCore
+ External/GeoModelIO
+ External/GoogleTest
+ External/HepMCAnalysis
+ External/lwtnn
......
......@@ -32,7 +32,7 @@ unset( _version )
# Find the ATLAS CMake code:
find_package( AtlasCMake REQUIRED )
# Use the LCG release if found, or only the LCG modules only if not
# Use the LCG release if found, or only the LCG modules if not
set( LCG_VERSION_POSTFIX ""
CACHE STRING "Post-fix for the LCG version number" )
set( LCG_VERSION_NUMBER 95
......
......@@ -48,6 +48,15 @@ You can now build `VP1Light`. For that, please refer to the instructions in `ath
## Appendix
### Building on Apple macOS
If you get errors from CMake concerning a "mismatch between PythonInterp and PythonLibs", it is probably caused by alternative versions of Python installed on your system (for example, through the [Homebrew package manager](http://brew.sh)). You can fix that by forcing CMake to use the system Python, by running:
```
cmake -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python ../atlasexternals/Projects/VP1LightExternals/
```
### Configuration Options
......
......@@ -7,7 +7,7 @@
# Look for appropriate externals:
find_package( PythonInterp 2.7 QUIET ) # needed by ROOT
find_package( PythonLibs 2.7 QUIET ) # needed by ROOT
find_package( Boost 1.58 QUIET ) # TODO: check if we need that
find_package( Boost 1.58 QUIET )
find_package( Eigen 3.0.5 QUIET ) # needed by VP1Base
find_package( ROOT 6.02.12 QUIET ) # for xAOD files
find_package( Xrootd 4.1 QUIET ) # needed by ROOT
......@@ -15,15 +15,11 @@ find_package( dcap QUIET ) # needed by ROOT
find_package( Davix QUIET ) # needed by ROOT
find_package( OpenSSL QUIET ) # needed by ROOT
find_package( UUID QUIET ) # needed by ROOT
find_package( TBB 2018 QUIET ) # needed by ROOT
find_package( TBB 2018 REQUIRED ) # needed by ROOT, it does not work with older versions
find_package( LibXml2 QUIET ) # needed by ROOT
find_package( Qt5 COMPONENTS Core REQUIRED ) # needed by VP1Light
find_package( Freetype QUIET ) # needed at runtime for Qt5 on SLC6
# we want to be sure to compile everything with C++14
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Get the OS name:
atlas_os_id( _os _osIsValid )
......
......@@ -7,7 +7,8 @@
+ External/Coin3D
+ External/dcap
+ External/Eigen
+ External/GeoModel
+ External/GeoModelCore
+ External/GeoModelIO
+ External/GoogleTest
+ External/HEPUtils
+ External/LibXml2
......