diff --git a/cmake/modules/FairRootTargets.cmake b/cmake/modules/FairRootTargets.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2fd7c8940daa1cc9d2b5cd9ad567af9171909510 --- /dev/null +++ b/cmake/modules/FairRootTargets.cmake @@ -0,0 +1,315 @@ +macro(define_fairroot_targets) + + # Define FairRoot::FairTools target + add_library(FairRoot::FairTools SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::FairTools PROPERTIES + IMPORTED_LOCATION + ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}FairTools${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + target_include_directories(FairRoot::FairTools INTERFACE + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} + ) + target_link_directories(FairRoot::FairTools INTERFACE + ${ROOT_LIBRARY_DIR} + ${FAIRLOGGER_LIBRARY_DIR} + ) + + target_link_libraries(FairRoot::FairTools INTERFACE + FairLogger::FairLogger + ROOT::Core + ROOT::Graf + ROOT::Hist + ROOT::Gpad + ROOT::RIO + ROOT::MathCore + ) + + # Define FairRoot::Alignment target + add_library(FairRoot::Alignment SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::Alignment PROPERTIES + IMPORTED_LOCATION + ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}Alignment${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + target_include_directories(FairRoot::Alignment INTERFACE + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} + ) + target_link_directories(FairRoot::Alignment INTERFACE + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} + ) + + target_link_libraries(FairRoot::Alignment INTERFACE + FairRoot::FairTools + + ROOT::Geom + ) + + # Define FairRoot::ParBase target + add_library(FairRoot::ParBase SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::ParBase PROPERTIES + IMPORTED_LOCATION + ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}ParBase${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + target_include_directories(FairRoot::ParBase INTERFACE + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} + ) + target_link_directories(FairRoot::ParBase INTERFACE + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} + ) + + target_link_libraries(FairRoot::ParBase INTERFACE + FairRoot::FairTools + + ROOT::Core + ROOT::RIO + ) + + # Define FairRoot::GeoBase target + add_library(FairRoot::GeoBase SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::GeoBase PROPERTIES + IMPORTED_LOCATION + ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}GeoBase${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + target_include_directories(FairRoot::GeoBase INTERFACE + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} + ) + target_link_directories(FairRoot::GeoBase INTERFACE + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} + ) + + target_link_libraries(FairRoot::ParBase INTERFACE + FairRoot::FairTools + + ROOT::Core + ROOT::MathCore + ROOT::Geom + ROOT::Graf3d # TRotMatrix + ) + + # Define FairRoot::MbsAPI target + add_library(FairRoot::MbsAPI SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::MbsAPI PROPERTIES + IMPORTED_LOCATION + ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}MbsAPI${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + target_include_directories(FairRoot::MbsAPI INTERFACE + ${FAIRROOT_INCLUDE_DIR} + ) + + # Define FairRoot::Base target + add_library(FairRoot::Base SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::Base PROPERTIES + IMPORTED_LOCATION + ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}Base${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + target_include_directories(FairRoot::Base INTERFACE + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} + ${Boost_INCLUDE_DIRS} + ) + target_link_directories(FairRoot::Base INTERFACE + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} + ) + target_link_libraries(FairRoot::Base INTERFACE + FairRoot::Alignment + FairRoot::FairTools + FairRoot::ParBase + FairRoot::GeoBase + Boost::serialization + FairRoot::MbsAPI + + ROOT::RHTTP # THttpServer + ROOT::Core + ROOT::EG + ROOT::Geom + ROOT::GeomPainter # TGeoTrack + ROOT::Hist + ROOT::MathCore + ROOT::Matrix + ROOT::Net # TSocket + ROOT::Physics + ROOT::Proof + ROOT::RIO + ROOT::Tree + ${VMCLIB} + ROOT::Gdml + ) + + # Define FairRoot::EventDisplay target + add_library(FairRoot::EventDisplay SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::EventDisplay PROPERTIES + IMPORTED_LOCATION + ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}EventDisplay${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + target_include_directories(FairRoot::EventDisplay INTERFACE + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} + ) + target_link_directories(FairRoot::EventDisplay INTERFACE + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} + ) + target_link_libraries(FairRoot::EventDisplay INTERFACE + FairRoot::FairTools + FairRoot::Base # FairRootManager, FairRunAna, FairTSBufferFunctional, FairTimeStamp, FairEventManager + + ROOT::Core + ROOT::EG # TDatabasePDG + ROOT::Eve # TEveBoxSet + ROOT::Ged # TGedFrame + ROOT::Geom # TGeoManager, TGeoNode, TGeoVolume + ROOT::GeomPainter # TGeoTrack + ROOT::Gui # TGFrame, TGNumberEntry, TGWindow + ROOT::MathCore # TMathBase + ROOT::Physics # TVector3 + ROOT::RGL # TGLViewer, TGLCameraOverlay, TGLClip, TGLLightSet + ROOT::Tree # TChain + ROOT::RIO + ROOT::XMLIO # TXMLEngine + ROOT::XMLParser # TXMLNode, TXMLAttr, TDOMParser + ) + + # Define FairRoot::TrkBase target + add_library(FairRoot::TrkBase SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::TrkBase PROPERTIES + IMPORTED_LOCATION + ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}TrkBase${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + target_include_directories(FairRoot::TrkBase INTERFACE + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} + ) + target_link_directories(FairRoot::TrkBase INTERFACE + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} + ) + target_link_libraries(FairRoot::TrkBase INTERFACE + FairRoot::FairTools + FairRoot::Base # FairRunAna, FairField + + ROOT::Core + ROOT::Physics + ROOT::MathCore + ROOT::Matrix + ) + + # Define FairRoot::Gen target + add_library(FairRoot::Gen SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::Gen PROPERTIES + IMPORTED_LOCATION + ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}Gen${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + target_include_directories(FairRoot::Gen INTERFACE + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} + ) + target_link_directories(FairRoot::Gen INTERFACE + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} + ) + target_link_libraries(FairRoot::Gen INTERFACE + FairRoot::Base # FairPrimaryGenerator, FairGenerator, FairIon, FairParticle, FairRunSim + FairRoot::FairTools + + ROOT::Core + ROOT::EG + ROOT::MathCore + ROOT::Hist + ROOT::Physics + ) + + # Define FairRoot::BaseMQ target + add_library(FairRoot::BaseMQ SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::BaseMQ PROPERTIES + IMPORTED_LOCATION + ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}BaseMQ${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + target_include_directories(FairRoot::BaseMQ INTERFACE + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} + ) + target_link_directories(FairRoot::BaseMQ INTERFACE + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} + ) + target_link_libraries(FairRoot::BaseMQ INTERFACE + FairRoot::Base # FairTask, FairRunAna, FairRootFileSink, FairFileSource + FairRoot::ParBase # FairParRootFileIo, FairRuntimeDb + FairRoot::FairTools + FairRoot::MbsAPI + + FairMQ::FairMQ + + Boost::serialization + Boost::filesystem + + ROOT::Net # TMessage + ROOT::Core # Rtypes, TClonesArray + ROOT::RIO # TFile + ROOT::Tree # TTree + ) + + # Define FairRoot::ParMQ target + add_library(FairRoot::ParMQ SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::ParMQ PROPERTIES + IMPORTED_LOCATION + ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}ParMQ${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + target_include_directories(FairRoot::ParMQ INTERFACE + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} + ) + target_link_directories(FairRoot::ParMQ INTERFACE + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} + ) + target_link_libraries(FairRoot::ParMQ INTERFACE + FairRoot::Base # FairRunIdGenerator + FairRoot::BaseMQ # Serialization policies + FairRoot::ParBase # FairRuntimeDb, ... + FairRoot::FairTools # FairLogger + + FairMQ::FairMQ + + ROOT::Core + ROOT::Geom + ) + + # Define FairRoot::Geane target + add_library(FairRoot::Geane SHARED IMPORTED GLOBAL) + set_target_properties(FairRoot::Geane PROPERTIES + IMPORTED_LOCATION + ${FAIRROOT_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}Geane${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + target_include_directories(FairRoot::Geane INTERFACE + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} + ${GEANT3_INCLUDE_DIR} + ) + target_link_directories(FairRoot::Geane INTERFACE + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} + ${GEANT3_LIBRARY_DIR} + ) + target_link_libraries(FairRoot::Geane INTERFACE + FairRoot::Base # FairField, FairTask, FairPropagator + FairRoot::TrkBase # FairTrackPar + + geant321 + + ROOT::Core + ROOT::EG + ROOT::Geom + ${VMCLIB} + ROOT::Physics + ROOT::MathCore + ) + +endmacro()