From 3fb16b11d4ab1dabd34c203dbd97873cfa244911 Mon Sep 17 00:00:00 2001 From: Florian Uhlig <f.uhlig@gsi.de> Date: Fri, 18 Nov 2022 09:52:23 +0100 Subject: [PATCH] Prepare for FairRoot v18.8 Use the same target names as provided by FairRoot with version v18.8. Add the new target FairRoot::Online which is a new library conatining the online related code which was previously part of the Base library. In case of older FairRoot versions the target is only an alias for the target FairRoot::Base such that the same dependencies already work with FairRoot v18.6 which is our current default version. Add the new target FairRoot::Online in all CMakeLists.txt where it is needed. The FindFairRoot macro is also used when compiling NicaFemto. Since there is a problem with the target definitions in NicaFemto the targets are not defined when compiling NicaFemto. --- MQ/hitbuilder/CMakeLists.txt | 1 + MQ/mcbm/CMakeLists.txt | 6 +-- MQ/source/CMakeLists.txt | 12 ++--- cmake/modules/CheckCompiler.cmake | 2 +- cmake/modules/FairRootTargets.cmake | 83 ++++++++++++++++++++--------- cmake/modules/FindFairRoot.cmake | 6 ++- fles/mcbm2018/CMakeLists.txt | 1 + fles/star2019/CMakeLists.txt | 1 + reco/base/CMakeLists.txt | 1 + reco/detectors/trd/CMakeLists.txt | 1 + reco/mq/CMakeLists.txt | 1 + reco/tasks/CMakeLists.txt | 1 + sim/response/CMakeLists.txt | 2 +- sim/transport/steer/CMakeLists.txt | 4 +- 14 files changed, 83 insertions(+), 39 deletions(-) diff --git a/MQ/hitbuilder/CMakeLists.txt b/MQ/hitbuilder/CMakeLists.txt index 9010a72074..147e90be15 100644 --- a/MQ/hitbuilder/CMakeLists.txt +++ b/MQ/hitbuilder/CMakeLists.txt @@ -32,6 +32,7 @@ set(PRIVATE_DEPENDENCIES CbmTofReco FairMQ::Tools FairRoot::ParBase + FairRoot::Online ROOT::Core ROOT::Graf ROOT::Hist diff --git a/MQ/mcbm/CMakeLists.txt b/MQ/mcbm/CMakeLists.txt index 75a34bbe58..25e526bf5b 100644 --- a/MQ/mcbm/CMakeLists.txt +++ b/MQ/mcbm/CMakeLists.txt @@ -84,7 +84,7 @@ set(EXE_NAME McbmEventBuilderWin) set(SRCS CbmDeviceMcbmEventBuilderWin.cxx runMcbmEvtBuilderWin.cxx) set(PUBLIC_DEPENDENCIES ${PUBLIC_DEPS}) -set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPS}) +set(PRIVATE_DEPENDENCIES "${PRIVATE_DEPS};FairRoot::Online") set(INTERFACE_DEPENDENCIES ${INTERFACE_DEPS}) generate_cbm_executable() @@ -93,7 +93,7 @@ set(EXE_NAME McbmEventSink) set(SRCS CbmDeviceMcbmEventSink.cxx runMcbmEventSink.cxx) set(PUBLIC_DEPENDENCIES ${PUBLIC_DEPS}) -set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPS}) +set(PRIVATE_DEPENDENCIES "${PRIVATE_DEPS};FairRoot::Online") set(INTERFACE_DEPENDENCIES ${INTERFACE_DEPS}) generate_cbm_executable() @@ -121,7 +121,7 @@ set(EXE_NAME DigiEventSink) set(SRCS CbmDeviceDigiEventSink.cxx runDigiEventSink.cxx) set(PUBLIC_DEPENDENCIES ${PUBLIC_DEPS}) -set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPS}) +set(PRIVATE_DEPENDENCIES "${PRIVATE_DEPS};FairRoot::Online") set(INTERFACE_DEPENDENCIES ${INTERFACE_DEPS}) generate_cbm_executable() diff --git a/MQ/source/CMakeLists.txt b/MQ/source/CMakeLists.txt index 5bf553df75..8b0186d0f5 100644 --- a/MQ/source/CMakeLists.txt +++ b/MQ/source/CMakeLists.txt @@ -92,13 +92,13 @@ set(INTERFACE_DEPENDENCIES ${INTERFACE_DEPS}) generate_cbm_executable() -set(EXE_NAME MCPointSource) -set(SRCS CbmMCPointSource.cxx runMCPointSource.cxx) -set(PUBLIC_DEPENDENCIES ${PUBLIC_DEPS}) -set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPS}) -set(INTERFACE_DEPENDENCIES ${INTERFACE_DEPS}) +#set(EXE_NAME MCPointSource) +#set(SRCS CbmMCPointSource.cxx runMCPointSource.cxx) +#set(PUBLIC_DEPENDENCIES ${PUBLIC_DEPS}) +#set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPS}) +#set(INTERFACE_DEPENDENCIES ${INTERFACE_DEPS}) - generate_cbm_executable() +# generate_cbm_executable() set(EXE_NAME TsConsumerReqExample) set(SRCS CbmTsConsumerReqDevExample.cxx runTsConsumerReqExample.cxx) diff --git a/cmake/modules/CheckCompiler.cmake b/cmake/modules/CheckCompiler.cmake index 07c9c7d992..e243944398 100644 --- a/cmake/modules/CheckCompiler.cmake +++ b/cmake/modules/CheckCompiler.cmake @@ -19,7 +19,7 @@ endif (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) # the compiler and compiler flags used to install fairsoft. # Compare compiler and compiler flags used to compile fairsoft with the compiler and flags used now # In case of differences print a warning -Find_Program(FAIRSOFT_CONFIG fairsoft-config PATHS $ENV{SIMPATH}/bin $ENV{FAIRSOFT_ROOT}/bin NO_DEFAULT_PATH) +Find_Program(FAIRSOFT_CONFIG fairsoft-config PATHS ${SIMPATH}/bin NO_DEFAULT_PATH) If(FAIRSOFT_CONFIG) Message(STATUS "fairsoft-config found") diff --git a/cmake/modules/FairRootTargets.cmake b/cmake/modules/FairRootTargets.cmake index 5a4f37aaa0..91bb7bab48 100644 --- a/cmake/modules/FairRootTargets.cmake +++ b/cmake/modules/FairRootTargets.cmake @@ -1,16 +1,16 @@ macro(define_fairroot_targets) - # Define FairRoot::FairTools target - add_library(FairRoot::FairTools SHARED IMPORTED GLOBAL) - set_target_properties(FairRoot::FairTools PROPERTIES + # Define FairRoot::Tools target + add_library(FairRoot::Tools SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::Tools PROPERTIES IMPORTED_LOCATION ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}FairTools${CMAKE_SHARED_LIBRARY_SUFFIX} ) - target_include_directories(FairRoot::FairTools INTERFACE + target_include_directories(FairRoot::Tools INTERFACE ${FAIRROOT_INCLUDE_DIR} ) - target_link_libraries(FairRoot::FairTools INTERFACE + target_link_libraries(FairRoot::Tools INTERFACE FairLogger::FairLogger ROOT::Core ROOT::Graf @@ -31,7 +31,7 @@ macro(define_fairroot_targets) ) target_link_libraries(FairRoot::Alignment INTERFACE - FairRoot::FairTools + FairRoot::Tools ROOT::Geom ) @@ -47,7 +47,7 @@ macro(define_fairroot_targets) ) target_link_libraries(FairRoot::ParBase INTERFACE - FairRoot::FairTools + FairRoot::Tools ROOT::Core ROOT::RIO @@ -64,7 +64,7 @@ macro(define_fairroot_targets) ) target_link_libraries(FairRoot::ParBase INTERFACE - FairRoot::FairTools + FairRoot::Tools ROOT::Core ROOT::MathCore @@ -94,7 +94,7 @@ macro(define_fairroot_targets) target_link_libraries(FairRoot::Base INTERFACE FairRoot::Alignment - FairRoot::FairTools + FairRoot::Tools FairRoot::ParBase FairRoot::GeoBase Boost::serialization @@ -117,6 +117,41 @@ macro(define_fairroot_targets) ROOT::Gdml ) + + # The Online library was added with FairRoot v18.8.0 and contains the + # FairRunOnline class and some other online realted classes. Before this + # FairRoot version the code was contained in the Base library. + # If the FairRoot version contains the library define the target, if the + # FairRoot version doesn't contain the library create an alias to + # FairRoot::Base. This allows to already use the target FairRoot::Online + # already before + FairRootVersion() + if(${FairRoot_VERSION} VERSION_LESS 18.8) + add_library(FairRoot::Online ALIAS FairRoot::Base) + else() + # Define FairRoot::Online target + add_library(FairRoot::Online SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::Online PROPERTIES + IMPORTED_LOCATION + ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}Online${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + target_include_directories(FairRoot::Online INTERFACE + ${FAIRROOT_INCLUDE_DIR} + ) + + target_link_libraries(FairRoot::Online INTERFACE + FairRoot::Tools + FairRoot::Base + FairRoot::ParBase + FairRoot::MbsAPI + + ROOT::RHTTP # THttpServer + ROOT::Core + ROOT::Geom + ROOT::Net # TSocket + ) + endif() + # Define FairRoot::EventDisplay target add_library(FairRoot::EventDisplay SHARED IMPORTED GLOBAL) set_target_properties(FairRoot::EventDisplay PROPERTIES @@ -128,7 +163,7 @@ macro(define_fairroot_targets) ) target_link_libraries(FairRoot::EventDisplay INTERFACE - FairRoot::FairTools + FairRoot::Tools FairRoot::Base # FairRootManager, FairRunAna, FairTSBufferFunctional, FairTimeStamp, FairEventManager ROOT::Core @@ -147,19 +182,19 @@ macro(define_fairroot_targets) ROOT::XMLParser # TXMLNode, TXMLAttr, TDOMParser ) - # Define FairRoot::TrkBase target - add_library(FairRoot::TrkBase SHARED IMPORTED GLOBAL) - set_target_properties(FairRoot::TrkBase PROPERTIES + # Define FairRoot::TrackBase target + add_library(FairRoot::TrackBase SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::TrackBase PROPERTIES IMPORTED_LOCATION ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}TrkBase${CMAKE_SHARED_LIBRARY_SUFFIX} ) - target_include_directories(FairRoot::TrkBase INTERFACE + target_include_directories(FairRoot::TrackBase INTERFACE ${FAIRROOT_INCLUDE_DIR} ) - target_link_libraries(FairRoot::TrkBase INTERFACE - FairRoot::FairTools + target_link_libraries(FairRoot::TrackBase INTERFACE + FairRoot::Tools FairRoot::Base # FairRunAna, FairField ROOT::Core @@ -168,19 +203,19 @@ macro(define_fairroot_targets) ROOT::Matrix ) - # Define FairRoot::Gen target - add_library(FairRoot::Gen SHARED IMPORTED GLOBAL) - set_target_properties(FairRoot::Gen PROPERTIES + # Define FairRoot::Generators target + add_library(FairRoot::Generators SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::Generators PROPERTIES IMPORTED_LOCATION ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}Gen${CMAKE_SHARED_LIBRARY_SUFFIX} ) - target_include_directories(FairRoot::Gen INTERFACE + target_include_directories(FairRoot::Generators INTERFACE ${FAIRROOT_INCLUDE_DIR} ) - target_link_libraries(FairRoot::Gen INTERFACE + target_link_libraries(FairRoot::Generators INTERFACE FairRoot::Base # FairPrimaryGenerator, FairGenerator, FairIon, FairParticle, FairRunSim - FairRoot::FairTools + FairRoot::Tools ROOT::Core ROOT::EG @@ -202,7 +237,7 @@ macro(define_fairroot_targets) target_link_libraries(FairRoot::BaseMQ INTERFACE FairRoot::Base # FairTask, FairRunAna, FairRootFileSink, FairFileSource FairRoot::ParBase # FairParRootFileIo, FairRuntimeDb - FairRoot::FairTools + FairRoot::Tools FairRoot::MbsAPI FairMQ::FairMQ @@ -230,7 +265,7 @@ macro(define_fairroot_targets) FairRoot::Base # FairRunIdGenerator FairRoot::BaseMQ # Serialization policies FairRoot::ParBase # FairRuntimeDb, ... - FairRoot::FairTools # FairLogger + FairRoot::Tools # FairLogger FairMQ::FairMQ diff --git a/cmake/modules/FindFairRoot.cmake b/cmake/modules/FindFairRoot.cmake index d67687216a..fc7b8f3547 100644 --- a/cmake/modules/FindFairRoot.cmake +++ b/cmake/modules/FindFairRoot.cmake @@ -64,5 +64,7 @@ else(FAIRROOT_INCLUDE_DIR AND FAIRROOT_LIBRARY_DIR) MESSAGE(FATAL_ERROR "FairRoot installation not found") endif (FAIRROOT_INCLUDE_DIR AND FAIRROOT_LIBRARY_DIR) -include(FairRootTargets) -define_fairroot_targets() +if(${CMAKE_PROJECT_NAME} MATCHES CBMROOT) + include(FairRootTargets) + define_fairroot_targets() +endif() diff --git a/fles/mcbm2018/CMakeLists.txt b/fles/mcbm2018/CMakeLists.txt index 23625e64f9..4ed7d71706 100644 --- a/fles/mcbm2018/CMakeLists.txt +++ b/fles/mcbm2018/CMakeLists.txt @@ -110,6 +110,7 @@ set(PRIVATE_DEPENDENCIES CbmTofBase FairLogger::FairLogger FairRoot::ParBase + FairRoot::Online cppzmq external::fles_logging ROOT::Gpad diff --git a/fles/star2019/CMakeLists.txt b/fles/star2019/CMakeLists.txt index 1a20a9bcc7..c072d88f4d 100644 --- a/fles/star2019/CMakeLists.txt +++ b/fles/star2019/CMakeLists.txt @@ -43,6 +43,7 @@ set(PRIVATE_DEPENDENCIES CbmFlibFlesTools CbmFlibMcbm2018 FairRoot::Base + FairRoot::Online ROOT::Gpad ROOT::Graf ROOT::Hist diff --git a/reco/base/CMakeLists.txt b/reco/base/CMakeLists.txt index 7bf68d3758..3b94ac71eb 100644 --- a/reco/base/CMakeLists.txt +++ b/reco/base/CMakeLists.txt @@ -40,6 +40,7 @@ set(LINKDEF ${LIBRARY_NAME}LinkDef.h) set(PUBLIC_DEPENDENCIES CbmData FairRoot::Base + FairRoot::Online ROOT::Core ) diff --git a/reco/detectors/trd/CMakeLists.txt b/reco/detectors/trd/CMakeLists.txt index 20aeac51a2..6d3ecfd2dd 100644 --- a/reco/detectors/trd/CMakeLists.txt +++ b/reco/detectors/trd/CMakeLists.txt @@ -92,6 +92,7 @@ set(PRIVATE_DEPENDENCIES CbmTrdSim CbmRecoBase FairRoot::ParBase + FairRoot::Online L1 ROOT::EG ROOT::Geom diff --git a/reco/mq/CMakeLists.txt b/reco/mq/CMakeLists.txt index 8587f5045d..96f5138e8c 100644 --- a/reco/mq/CMakeLists.txt +++ b/reco/mq/CMakeLists.txt @@ -30,6 +30,7 @@ set(PUBLIC_DEPS set(PRIVATE_DEPS FairRoot::Base + FairRoot::Online Algo ) diff --git a/reco/tasks/CMakeLists.txt b/reco/tasks/CMakeLists.txt index 97fe8cf946..80d8698852 100644 --- a/reco/tasks/CMakeLists.txt +++ b/reco/tasks/CMakeLists.txt @@ -34,6 +34,7 @@ set(PUBLIC_DEPENDENCIES set(PRIVATE_DEPENDENCIES CbmBase FairLogger::FairLogger + FairRoot::Online external::yaml-cpp ROOT::Hist ROOT::RHTTP diff --git a/sim/response/CMakeLists.txt b/sim/response/CMakeLists.txt index 86185d5aa2..1be37594c6 100644 --- a/sim/response/CMakeLists.txt +++ b/sim/response/CMakeLists.txt @@ -30,7 +30,7 @@ set(PRIVATE_DEPENDENCIES CbmTofSim CbmTrdSim CbmTzdSim - FairRoot::FairTools + FairRoot::Tools FairRoot::ParBase ) diff --git a/sim/transport/steer/CMakeLists.txt b/sim/transport/steer/CMakeLists.txt index cf6c9e6d54..09ea11a22f 100644 --- a/sim/transport/steer/CMakeLists.txt +++ b/sim/transport/steer/CMakeLists.txt @@ -37,8 +37,8 @@ set(PRIVATE_DEPENDENCIES CbmField CbmSimGenerators FairRoot::Base - FairRoot::FairTools - FairRoot::Gen + FairRoot::Tools + FairRoot::Generators FairRoot::ParBase geant321 geant4vmc -- GitLab