diff --git a/.gitlab-ci.d/init_x86_64.sh b/.gitlab-ci.d/init_x86_64.sh index 8b79f8ef2d6f0bff98a94e908687d0cfe74e0428..ac0d3e0ad40b488cb12f0b27e4b28690c88f8765 100644 --- a/.gitlab-ci.d/init_x86_64.sh +++ b/.gitlab-ci.d/init_x86_64.sh @@ -54,18 +54,6 @@ export PYTHONPATH="$ROOTSYS/lib:$PYTHONPATH" export PATH="$ROOTSYS/bin:$PATH" export LD_LIBRARY_PATH="$ROOTSYS/lib:$LD_LIBRARY_PATH" - -#-------------------------------------------------------------------------------- -# CLHEP -#-------------------------------------------------------------------------------- - -export CLHEP=${CLICREPO}/software/CLHEP/2.3.1.1/${BUILD_FLAVOUR} -export CLHEP_BASE_DIR="$CLHEP" -export CLHEP_INCLUDE_DIR="$CLHEP/include" -export PATH="$CLHEP_BASE_DIR/bin:$PATH" -export LD_LIBRARY_PATH="$CLHEP_BASE_DIR/lib:$LD_LIBRARY_PATH" - - #-------------------------------------------------------------------------------- # XercesC #-------------------------------------------------------------------------------- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e6dcdd76cbb31718292afe2f339477977fec5fef..93139c57f79afdb89980cda4b52a3149df96fd7c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,7 +8,7 @@ slc6-gcc48: - source .gitlab-ci.d/init_x86_64.sh - mkdir build - cd build - - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -DCLHEP_DIR=$CLHEP -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.2.2 -D DD4HEP_USE_CXX11=ON .. + - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.2.2 -D DD4HEP_USE_CXX11=ON .. - ninja - ninja install - . ../bin/thisdd4hep.sh @@ -34,7 +34,7 @@ slc6-gcc49: - source .gitlab-ci.d/init_x86_64.sh - mkdir build - cd build - - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -DCLHEP_DIR=$CLHEP -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.2.2 -D DD4HEP_USE_CXX11=ON .. + - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.2.2 -D DD4HEP_USE_CXX11=ON .. - ninja - ninja install - . ../bin/thisdd4hep.sh @@ -60,7 +60,7 @@ centos7-gcc49: - source .gitlab-ci.d/init_x86_64.sh - mkdir build - cd build - - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -DCLHEP_DIR=$CLHEP -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.2.2 -D DD4HEP_USE_CXX11=ON .. + - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.2.2 -D DD4HEP_USE_CXX11=ON .. - ninja - ninja install - . ../bin/thisdd4hep.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 34998f3679773fec8735de658b93978f0ee9a7de..a2924913b9e901944e22569b94b70ef123596b38 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,38 +68,42 @@ add_subdirectory(DDRec) add_subdirectory(DDDetectors) if(DD4HEP_USE_GEANT4) - set ( DD4HEP_USE_CLHEP "OFF" ) + #--- create a geant4 variables for the thisdd4hep.sh script find_package( Geant4 9.6 REQUIRED gdml ui_all vis_all) - include(${Geant4_USE_FILE}) # this also takes care of geant 4 definitions and include dirs - - #----- if geant4 is build with external CLHEP we also need to export this fact - - string(FIND "${Geant4_THIRD_PARTY_INCLUDE_DIRS}" "CLHEP" CLHEP_POS ) + include(${Geant4_USE_FILE} ) # this also takes care of geant 4 definitions and include dirs - if( (NOT "${CLHEP_POS}" STREQUAL "-1") OR (NOT Geant4_builtin_clhep_FOUND) ) - set( GEANT4_USE_CLHEP 1 ) - get_filename_component(Geant4_ROOT "${Geant4_INCLUDE_DIR}/../../" ABSOLUTE) - #---- use FindCLHEP shipped with geant4 ----------- - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${Geant4_ROOT}/cmake/Modules ) + #----- Treatment for Geant4 10.2.1 or before this is obsolete only for backwards compatibility + if(${Geant4_VERSION} VERSION_LESS 10.2.2) + message( STATUS "!!! TREATING CLEHP IN LEGACY MODE !!!") + set ( DD4HEP_USE_CLHEP "OFF" ) + string(FIND "${Geant4_THIRD_PARTY_INCLUDE_DIRS}" "CLHEP" CLHEP_POS ) - if( CLHEP_DIR ) #---- use 'canonical' name ----- - set( CLHEP_ROOT_DIR ${CLHEP_DIR} ) + if( (NOT "${CLHEP_POS}" STREQUAL "-1") OR (NOT Geant4_builtin_clhep_FOUND) ) + set( GEANT4_USE_CLHEP 1 ) + get_filename_component(Geant4_ROOT "${Geant4_INCLUDE_DIR}/../../" ABSOLUTE) + #---- use FindCLHEP shipped with geant4 ----------- + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${Geant4_ROOT}/cmake/Modules ) + + if( CLHEP_DIR ) #---- use 'canonical' name ----- + set( CLHEP_ROOT_DIR ${CLHEP_DIR} ) + endif() + + find_package( CLHEP REQUIRED ) + include_directories( SYSTEM ${CLHEP_INCLUDE_DIRS} ) + set ( DD4HEP_USE_CLHEP ON ) + + get_filename_component(CLHEP_LIBRARY_PATH "${CLHEP_LIBRARIES}" PATH) + message( STATUS " *** geant4 was build with external CLHEP *** CLHEP_LIBRARY_PATH = ${CLHEP_LIBRARY_PATH}" ) + else() + set( GEANT4_USE_CLHEP 0 ) endif() - find_package( CLHEP REQUIRED ) - include_directories( SYSTEM ${CLHEP_INCLUDE_DIRS} ) - set ( DD4HEP_USE_CLHEP ON ) - - get_filename_component(CLHEP_LIBRARY_PATH "${CLHEP_LIBRARIES}" PATH) - message( STATUS " *** geant4 was build with external CLHEP *** CLHEP_LIBRARY_PATH = ${CLHEP_LIBRARY_PATH}" ) - else() - set( GEANT4_USE_CLHEP 0 ) + set(Geant4_INCLUDE_DIRS ${Geant4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}) + set(Geant4_LIBRARIES ${Geant4_LIBRARIES} ${CLHEP_LIBRARIES}) endif() - - set(Geant4_INCLUDE_DIRS ${Geant4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}) - set(Geant4_LIBRARIES ${Geant4_LIBRARIES} ${CLHEP_LIBRARIES}) + #----- End of treatment for Geant4 10.2.1 or before endif() #------- now configure DDG4 -------