Skip to content
Snippets Groups Projects
CMakeLists.txt 4.74 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/CaTrackParam.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/CaMeasurementU.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/data/CaMeasurementXy.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/data/CaMeasurementTime.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/CaField.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaInitManager.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaIteration.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaMaterialMap.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/pars/CaMaterialMonitor.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}/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/CaTrackFit.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/tracking/CaTrackFitter.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/tracking/CaTripletConstructor.cxx
  ${CMAKE_CURRENT_SOURCE_DIR}/utils/CaUtils.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})

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
         ${CMAKE_CURRENT_SOURCE_DIR}
)

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

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 pars TYPE INCLUDE FILES_MATCHING PATTERN "*.h")

install(
  FILES
    data/CaDataManager.h
    data/CaGridEntry.h
    data/CaHit.h
    data/CaInputData.h
    data/CaTrackParam.h
    data/CaTrack.h
    data/CaMeasurementU.h
    data/CaMeasurementXy.h
    data/CaMeasurementTime.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/CaConstants.h
    pars/CaField.h
    pars/CaInitManager.h
    pars/CaIteration.h
    pars/CaMaterialMap.h
    pars/CaMaterialMonitor.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/CaSimdVc.h
    utils/CaSimdPseudo.h
    utils/CaTimer.h
    utils/CaVector.h
    utils/CaUtils.h
    utils/CaDefines.h
    tracking/CaCloneMerger.h
    tracking/CaFramework.h
    tracking/CaTrackExtender.h
    tracking/CaTrackFinder.h
    tracking/CaTrackFinderWindow.h
    tracking/CaTrackFit.h
    tracking/CaTrackFitter.h
    tracking/CaTripletConstructor.h   
  DESTINATION
    include/
)