Skip to content
Snippets Groups Projects
CMakeLists.txt 4.97 KiB
Newer Older
Sergei Zharko's avatar
Sergei Zharko committed
set(INCLUDE_DIRECTORIES
  ${CMAKE_CURRENT_SOURCE_DIR}
  ${CMAKE_CURRENT_SOURCE_DIR}/utils
Sergei Zharko's avatar
Sergei Zharko committed
  ${CMAKE_CURRENT_SOURCE_DIR}/pars
  ${CMAKE_CURRENT_SOURCE_DIR}/qa
Sergei Zharko's avatar
Sergei Zharko committed
  ${CMAKE_CURRENT_SOURCE_DIR}/data
  ${CMAKE_CURRENT_SOURCE_DIR}/tracking
Sergei Zharko's avatar
Sergei Zharko committed
)

set(SRCS
  ${CMAKE_CURRENT_SOURCE_DIR}/data/CaDataManager.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/data/CaInputData.cxx
Sergei Zharko's avatar
Sergei Zharko committed
  ${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
Sergei Zharko's avatar
Sergei Zharko committed
)

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()

Sergei Zharko's avatar
Sergei Zharko committed
add_library(CaCore SHARED ${SRCS})

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

Sergei Zharko's avatar
Sergei Zharko committed
target_include_directories(CaCore
  PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/data
         ${CMAKE_CURRENT_SOURCE_DIR}/utils
Sergei Zharko's avatar
Sergei Zharko committed
         ${CMAKE_CURRENT_SOURCE_DIR}/pars
         ${CMAKE_CURRENT_SOURCE_DIR}/qa
         ${CMAKE_CURRENT_SOURCE_DIR}/tracking
Sergei Zharko's avatar
Sergei Zharko committed
)

target_compile_definitions(CaCore PUBLIC NO_ROOT)
target_link_libraries(CaCore
              PUBLIC  KfCore
Sergei Zharko's avatar
Sergei Zharko committed
                      Boost::serialization
                      OnlineDataLog          # needed for the logger
                      external::fles_logging # needed for the logger
                      external::fles_ipc     # needed for the logger
Sergei Zharko's avatar
Sergei Zharko committed
                     )

##### 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()
########################################################################################################################

Sergei Zharko's avatar
Sergei Zharko committed
install(TARGETS CaCore DESTINATION lib)
install(DIRECTORY utils TYPE INCLUDE FILES_MATCHING PATTERN "*.h")
Sergei Zharko's avatar
Sergei Zharko committed
install(DIRECTORY data TYPE INCLUDE FILES_MATCHING PATTERN "*.h")
install(DIRECTORY tracking TYPE INCLUDE FILES_MATCHING PATTERN "*.h")
Sergei Zharko's avatar
Sergei Zharko committed
install(DIRECTORY pars TYPE INCLUDE FILES_MATCHING PATTERN "*.h")
Sergei Zharko's avatar
Sergei Zharko committed

install(
  FILES
Sergei Zharko's avatar
Sergei Zharko committed
    data/CaDataManager.h
    data/CaGridEntry.h
    data/CaHit.h
    data/CaInputData.h
    data/CaTrack.h
    data/CaWindowData.h
Sergei Zharko's avatar
Sergei Zharko committed
    pars/CaConfigReader.h
    data/CaGridEntry.h
    data/CaGrid.h
    data/CaGridArea.h
    data/CaTriplet.h
    data/CaBranch.h
    data/CaWindowData.h
    data/CaTimesliceHeader.h
Sergey Gorbunov's avatar
Sergey Gorbunov committed
    pars/CaDefs.h
    pars/CaInitManager.h
    pars/CaIteration.h
    pars/CaParameters.h
    pars/CaSearchWindow.h
    pars/CaStation.h
Sergei Zharko's avatar
Sergei Zharko committed
    pars/CaStationInitializer.h
    utils/CaTrackingMonitor.h
    utils/CaEnumArray.h
    utils/CaMonitor.h
    utils/CaMonitorData.h
Sergei Zharko's avatar
Sergei Zharko committed
    utils/CaObjectInitController.h
Sergei Zharko's avatar
Sergei Zharko committed
    utils/CaSimd.h
Sergei Zharko's avatar
Sergei Zharko committed
    utils/CaTimer.h
    utils/CaVector.h
    utils/CaDefines.h
Sergei Zharko's avatar
Sergei Zharko committed
    tracking/CaCloneMerger.h
    tracking/CaFramework.h
    tracking/CaTrackExtender.h
    tracking/CaTrackFinder.h
    tracking/CaTrackFinderWindow.h

    DESTINATION
Sergei Zharko's avatar
Sergei Zharko committed
    include/
)