diff --git a/Detector/GeoSvc/CMakeLists.txt b/Detector/GeoSvc/CMakeLists.txt index c4b767e60920da0c3420d5a84afe58ddbf68ae2c..b0e86b467a522c2154ffd2aed8191092e57d5766 100644 --- a/Detector/GeoSvc/CMakeLists.txt +++ b/Detector/GeoSvc/CMakeLists.txt @@ -15,6 +15,8 @@ find_package(ROOT COMPONENTS MathCore GenVector Geom Tree) find_package(DD4hep COMPONENTS DDG4 DDRec REQUIRED) find_package(GEAR REQUIRED) +message("GEAR_LIBRARIES: ${GEAR_LIBRARIES}") + gaudi_add_module(GeoSvc src/GeoSvc.cpp INCLUDE_DIRS @@ -25,7 +27,8 @@ gaudi_add_module(GeoSvc LINK_LIBRARIES DD4hep ${DD4hep_COMPONENT_LIBRARIES} - GaudiKernel - $ENV{GEAR}/lib/libgear.so + GaudiKernel + ${GEAR_LIBRARIES} + ${ROOT_LIBRARIES} # ROOT ) diff --git a/Digitisers/SimpleDigi/CMakeLists.txt b/Digitisers/SimpleDigi/CMakeLists.txt index 90246e681c2ba41d66ff8c916e4a8d451a8c8503..5487682d59bb033f8b308d57a64a988255891aec 100644 --- a/Digitisers/SimpleDigi/CMakeLists.txt +++ b/Digitisers/SimpleDigi/CMakeLists.txt @@ -19,5 +19,5 @@ set(SimpleDigi_srcs src/*.cpp) # Modules gaudi_add_module(SimpleDigi ${SimpleDigi_srcs} INCLUDE_DIRS K4FWCore GaudiKernel GaudiAlgLib CLHEP gear ${GSL_INCLUDE_DIRS} ${LCIO_INCLUDE_DIRS} - LINK_LIBRARIES K4FWCore GaudiKernel GaudiAlgLib CLHEP $ENV{GEAR}/lib/libgearsurf.so ${GSL_LIBRARIES} ${LCIO_LIBRARIES} EDM4HEP::edm4hep EDM4HEP::edm4hepDict + LINK_LIBRARIES K4FWCore GaudiKernel GaudiAlgLib CLHEP ${GEAR_LIBRARIES} ${GSL_LIBRARIES} ${LCIO_LIBRARIES} EDM4HEP::edm4hep EDM4HEP::edm4hepDict ) diff --git a/Reconstruction/PFA/Pandora/GaudiPandora/CMakeLists.txt b/Reconstruction/PFA/Pandora/GaudiPandora/CMakeLists.txt index 69a1ec90837073ba19b8038a71c0a190a1884f0a..0f8625a6c08586cf2202f7694363e1ebea35a531 100644 --- a/Reconstruction/PFA/Pandora/GaudiPandora/CMakeLists.txt +++ b/Reconstruction/PFA/Pandora/GaudiPandora/CMakeLists.txt @@ -39,7 +39,7 @@ set(dir_include include) # Modules gaudi_add_module(GaudiPandora ${dir_srcs} INCLUDE_DIRS ${dir_include} GaudiKernel FWCore CLHEP ${LCIO_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} gear - LINK_LIBRARIES GaudiKernel FWCore CLHEP ROOT ${LCIO_LIBRARIES} $ENV{GEAR}/lib/libgear.so $ENV{GEAR}/lib/libgearxml.so DataHelperLib + LINK_LIBRARIES GaudiKernel FWCore CLHEP ROOT ${LCIO_LIBRARIES} ${GEAR_LIBRARIES} DataHelperLib -Wl,--no-as-needed EDM4HEP::edm4hep EDM4HEP::edm4hepDict -Wl,--as-needed diff --git a/Reconstruction/PFA/Pandora/MatrixPandora/CMakeLists.txt b/Reconstruction/PFA/Pandora/MatrixPandora/CMakeLists.txt index 84535b8eb8a3fce7d701c155d13c19520d349129..f99292cbd2294b48f7841c2524b09247f128ca75 100644 --- a/Reconstruction/PFA/Pandora/MatrixPandora/CMakeLists.txt +++ b/Reconstruction/PFA/Pandora/MatrixPandora/CMakeLists.txt @@ -38,7 +38,7 @@ set(dir_include include) # Modules gaudi_add_module(MatrixPandora ${dir_srcs} INCLUDE_DIRS ${dir_include} GaudiKernel FWCore CLHEP ${LCIO_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} gear DD4hep - LINK_LIBRARIES GaudiKernel FWCore CLHEP ROOT ${LCIO_LIBRARIES} $ENV{GEAR}/lib/libgear.so $ENV{GEAR}/lib/libgearxml.so DD4hep ${DD4hep_COMPONENT_LIBRARIES} DDRec DataHelperLib + LINK_LIBRARIES GaudiKernel FWCore CLHEP ROOT ${LCIO_LIBRARIES} ${GEAR_LIBRARIES} DD4hep ${DD4hep_COMPONENT_LIBRARIES} DDRec DataHelperLib -Wl,--no-as-needed EDM4HEP::edm4hep EDM4HEP::edm4hepDict -Wl,--as-needed diff --git a/Reconstruction/SiliconTracking/CMakeLists.txt b/Reconstruction/SiliconTracking/CMakeLists.txt index 93d860ba31a396d5797b31746788a39533698e2d..27533d0dd47b0353ce1cdc2b085177459dd57f91 100644 --- a/Reconstruction/SiliconTracking/CMakeLists.txt +++ b/Reconstruction/SiliconTracking/CMakeLists.txt @@ -17,6 +17,6 @@ set(SiliconTracking_srcs src/*.cpp) # Modules gaudi_add_module(SiliconTracking ${SiliconTracking_srcs} - INCLUDE_DIRS GaudiKernel FWCore gear ${GSLx_INCLUDE_DIRS} ${LCIOx_INCLUDE_DIRS} - LINK_LIBRARIES TrackSystemSvcLib DataHelperLib KiTrackLib GaudiKernel FWCore $ENV{GEAR}/lib/libgearsurf.so ${GSL_LIBRARIES} ${LCIO_LIBRARIES} + INCLUDE_DIRS GaudiKernel FWCore gear ${GSL_INCLUDE_DIRS} ${LCIO_INCLUDE_DIRS} + LINK_LIBRARIES TrackSystemSvcLib DataHelperLib KiTrackLib GaudiKernel FWCore ${GEAR_LIBRARIES} ${GSL_LIBRARIES} ${LCIO_LIBRARIES} ) diff --git a/Service/GearSvc/CMakeLists.txt b/Service/GearSvc/CMakeLists.txt index f78d581ad47f95e7a74ffb61883c152cceffca7e..52beee1e171a5a31071ab88efaeb241e27360d6a 100644 --- a/Service/GearSvc/CMakeLists.txt +++ b/Service/GearSvc/CMakeLists.txt @@ -10,5 +10,5 @@ gaudi_install_headers(GearSvc) gaudi_add_module(GearSvc ${GearSvc_srcs} INCLUDE_DIRS GaudiKernel gear - LINK_LIBRARIES GaudiKernel $ENV{GEAR}/lib/libgear.so $ENV{GEAR}/lib/libgearxml.so + LINK_LIBRARIES GaudiKernel ${GEAR_LIBRARIES} ) diff --git a/Service/TrackSystemSvc/CMakeLists.txt b/Service/TrackSystemSvc/CMakeLists.txt index 98f32914f19370b83261a09ff94619532c2c67d6..349b3b6b5dc1889b6ab813a635421d6c2edc6cbf 100644 --- a/Service/TrackSystemSvc/CMakeLists.txt +++ b/Service/TrackSystemSvc/CMakeLists.txt @@ -21,7 +21,7 @@ gaudi_install_headers(TrackSystemSvc) gaudi_add_library(TrackSystemSvcLib ${TrackSystemSvcLib_srcs} PUBLIC_HEADERS TrackSystemSvc INCLUDE_DIRS GaudiKernel ROOT CLHEP gear ${LCIO_INCLUDE_DIRS} ${EDM4HEP_INCLUDE_DIRS} - LINK_LIBRARIES DataHelperLib KalTestLib KalDetLib GaudiKernel ROOT CLHEP $ENV{GEAR}/lib/libgear.so $ENV{GEAR}/lib/libgearsurf.so ${LCIO_LIBRARIES} + LINK_LIBRARIES DataHelperLib KalTestLib KalDetLib GaudiKernel ROOT CLHEP ${GEAR_LIBRARIES} ${LCIO_LIBRARIES} -Wl,--no-as-needed EDM4HEP::edm4hep EDM4HEP::edm4hepDict -Wl,--as-needed @@ -29,5 +29,5 @@ gaudi_add_library(TrackSystemSvcLib ${TrackSystemSvcLib_srcs} gaudi_add_module(TrackSystemSvc ${TrackSystemSvc_srcs} INCLUDE_DIRS GaudiKernel gear - LINK_LIBRARIES TrackSystemSvcLib GaudiKernel $ENV{GEAR}/lib/libgear.so + LINK_LIBRARIES TrackSystemSvcLib GaudiKernel ${GEAR_LIBRARIES} ) diff --git a/Utilities/KalDet/CMakeLists.txt b/Utilities/KalDet/CMakeLists.txt index 5b4c1a9456ba59044d7d293cc6ceb7549687787d..147328d0ac412e26e74227b12983e9385f827374 100644 --- a/Utilities/KalDet/CMakeLists.txt +++ b/Utilities/KalDet/CMakeLists.txt @@ -76,5 +76,5 @@ set( KalDetLib_srcs ${LIB_SOURCES} ${COMMON_SOURCES} ) gaudi_add_library(KalDetLib ${KalDetLib_srcs} PUBLIC_HEADERS kaldet - LINK_LIBRARIES GaudiKernel ROOT CLHEP LCIO $ENV{GEAR}/lib/libgearsurf.so KalTestLib EDM4HEP::edm4hep EDM4HEP::edm4hepDict + LINK_LIBRARIES GaudiKernel ROOT CLHEP LCIO ${GEAR_LIBRARIES} KalTestLib EDM4HEP::edm4hep EDM4HEP::edm4hepDict ) diff --git a/build-k4.sh b/build-k4.sh new file mode 100755 index 0000000000000000000000000000000000000000..27c6f3570f934f8db68066e5553b65f010d9a68f --- /dev/null +++ b/build-k4.sh @@ -0,0 +1,107 @@ +#!/bin/bash +############################################################################## +# Setup script for CEPCSW: +# - build the cepcsw +# +# Usage: +# $ bash build.sh +# or: +# $ +# +# Author: Tao Lin <lintao@ihep.ac.cn> +############################################################################## + +function info:() { + echo "INFO: $*" 1>&2 +} + +function error:() { + echo "ERROR: $*" 1>&2 +} + +function check-cepcsw-envvar() { + source /cvmfs/sw.hsf.org/key4hep/setup.sh +} + +function build-dir() { + local blddir=build + + # If detect the extra env var, append it to the build dir + if [ -n "${k4_version}" ]; then + blddir=${blddir}.${k4_version} + fi + if [ -n "${k4_platform}" ]; then + blddir=${blddir}.${k4_platform} + fi + + echo $blddir +} + +function check-working-builddir() { + local blddir=$(build-dir) + if [ ! -d "$blddir" ]; then + mkdir $blddir || { + error: "Failed to create $blddir" + return 1 + } + fi +} + +function run-cmake() { + local blddir=$(build-dir) + + if [ ! -d "$blddir" ]; then + error: "Failed to create $blddir" + return 1 + fi + + cd $blddir + + local clhep_prefix=$(eval echo $(clhep-config --prefix)) + local clhep_include=${clhep_prefix}/include + + # locate the pandorapfa + local pandorapfa=$(echo $CMAKE_PREFIX_PATH | tr ':' '\n' | grep pandorapfa | head -n1) + info: "Find PandoraPFA: $pandorapfa" + if [ -z "$pandorapfa" ]; then + error: "Failed to find the PandoraPFA" + return 1 + fi + + local pandorapfa_cmake_modules=${pandorapfa}/cmakemodules + info: "Find PandoraPFA cmake: ${pandorapfa_cmake_modules}" + if [ ! -d "${pandorapfa_cmake_modules}" ]; then + error: "Failed to find the cmake modules for PandoraPFA: ${pandorapfa_cmake_modules}" + return 1 + fi + + local cmake_modules=${pandorapfa_cmake_modules} + + cmake .. -DHOST_BINARY_TAG=${k4_platform} \ + -DCLHEP_INCLUDE_DIR=${clhep_include} \ + -DCMAKE_MODULE_PATH=${cmake_modules} || { + error: "Failed to cmake" + return 1 + } + +} + +function run-make() { + make +} + +############################################################################## +# Parse the command line options +############################################################################## + +# The current default platform +k4_platform=x86_64-linux-gcc9-opt +k4_version=master + +check-cepcsw-envvar || exit -1 + +check-working-builddir || exit -1 + +run-cmake || exit -1 + +run-make || exit -1