Skip to content
Snippets Groups Projects
CMakeLists.txt 4.97 KiB
set(INCLUDE_DIRECTORIES
  ${CMAKE_CURRENT_SOURCE_DIR}
  ${CMAKE_CURRENT_SOURCE_DIR}/utils
  ${CMAKE_CURRENT_SOURCE_DIR}/pars
  ${CMAKE_CURRENT_SOURCE_DIR}/qa
  ${CMAKE_CURRENT_SOURCE_DIR}/data
  ${CMAKE_CURRENT_SOURCE_DIR}/tracking
)

set(SRCS
  ${CMAKE_CURRENT_SOURCE_DIR}/data/CaDataManager.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/data/CaInputData.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/data/CaTrack.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/data/CaGrid.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/data/CaHit.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/data/CaTriplet.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/data/CaWindowData.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/data/CaTimesliceHeader.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaConfigReader.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaInitManager.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaIteration.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaParameters.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaSearchWindow.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaStation.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaStationInitializer.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/utils/CaUtils.cxx  
  ${CMAKE_CURRENT_SOURCE_DIR}/tracking/CaCloneMerger.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/tracking/CaFramework.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/tracking/CaTrackExtender.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/tracking/CaTrackFinder.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/tracking/CaTrackFinderWindow.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/tracking/CaTrackFitter.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/tracking/CaTripletConstructor.cxx
)

SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS "-O3")


If(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  ADD_DEFINITIONS(-Wall -Wextra -Wsign-promo -Wctor-dtor-privacy -Wreorder -Wno-deprecated -Wno-parentheses) # -Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast : wait for other parts of cbmroot\root.
Else()
  ADD_DEFINITIONS(-Wall -Wextra -Wsign-promo -Wno-pmf-conversions -Wctor-dtor-privacy -Wreorder -Wno-deprecated -Wstrict-null-sentinel -Wno-non-template-friend -Wno-parentheses -Wmissing-field-initializers) # -Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast : wait for other parts of cbmroot\root.
EndIf()

add_library(CaCore SHARED ${SRCS})

list(APPEND HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/utils/CaSimd.h)

target_include_directories(CaCore
  PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/data
         ${CMAKE_CURRENT_SOURCE_DIR}/utils
         ${CMAKE_CURRENT_SOURCE_DIR}/pars
         ${CMAKE_CURRENT_SOURCE_DIR}/qa
         ${CMAKE_CURRENT_SOURCE_DIR}/tracking
)

target_compile_definitions(CaCore PUBLIC NO_ROOT)
target_link_libraries(CaCore
              PUBLIC  KfCore
                      Boost::serialization
                      OnlineDataLog          # needed for the logger
                      external::fles_logging # needed for the logger
                      external::fles_ipc     # needed for the logger
                      external::yaml-cpp
                     )

##### Offline version without the NO_ROOT in order to get standard logger! #############################################
if (NOT CBM_ONLINE_STANDALONE)
  add_library(CaCoreOffline SHARED ${SRCS})
  target_include_directories(CaCoreOffline
    PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/data
           ${CMAKE_CURRENT_SOURCE_DIR}/utils
           ${CMAKE_CURRENT_SOURCE_DIR}/pars
           ${CMAKE_CURRENT_SOURCE_DIR}/qa
           ${CMAKE_CURRENT_SOURCE_DIR}/tracking
           ${CMAKE_CURRENT_SOURCE_DIR}
  )

  target_link_libraries(CaCoreOffline
                 PUBLIC KfCoreOffline
                        Boost::serialization
                        external::yaml-cpp
                       )
  install(TARGETS CaCoreOffline DESTINATION lib)
endif()
########################################################################################################################

install(TARGETS CaCore DESTINATION lib)
install(DIRECTORY utils TYPE INCLUDE FILES_MATCHING PATTERN "*.h")
install(DIRECTORY data TYPE INCLUDE FILES_MATCHING PATTERN "*.h")
install(DIRECTORY tracking TYPE INCLUDE FILES_MATCHING PATTERN "*.h")
install(DIRECTORY pars TYPE INCLUDE FILES_MATCHING PATTERN "*.h")

install(
  FILES
    data/CaDataManager.h
    data/CaGridEntry.h
    data/CaHit.h
    data/CaInputData.h
    data/CaTrack.h
    data/CaWindowData.h
    pars/CaConfigReader.h
    data/CaGridEntry.h
    data/CaGrid.h
    data/CaGridArea.h
    data/CaTriplet.h
    data/CaBranch.h
    data/CaWindowData.h
    data/CaTimesliceHeader.h
    pars/CaDefs.h
    pars/CaInitManager.h
    pars/CaIteration.h
    pars/CaParameters.h
    pars/CaSearchWindow.h
    pars/CaStation.h
    pars/CaStationInitializer.h

    utils/CaTrackingMonitor.h
    utils/CaEnumArray.h
    utils/CaMonitor.h
    utils/CaMonitorData.h
    utils/CaObjectInitController.h
    utils/CaSimd.h
    utils/CaTimer.h
    utils/CaVector.h
    utils/CaDefines.h
    utils/CaUtils.h

    tracking/CaCloneMerger.h
    tracking/CaFramework.h
    tracking/CaTrackExtender.h
    tracking/CaTrackFinder.h
    tracking/CaTrackFinderWindow.h
    tracking/CaTrackFitter.h
    tracking/CaTripletConstructor.h

    DESTINATION
    include/
)