Skip to content
Snippets Groups Projects
InstallKFParticle.cmake 2.98 KiB
Newer Older
set(KFPARTICLE_LIBNAME "${CMAKE_SHARED_LIBRARY_PREFIX}KFParticle${CMAKE_SHARED_LIBRARY_SUFFIX}")

set(KFPARTICLE_SRC_URL "https://github.com/cbmsw/KFParticle.git")
set(KFPARTICLE_DESTDIR "${CMAKE_BINARY_DIR}/external/KFPARTICLE-prefix")

# GIT_TAG is a hash for KFParticle tag cbm/v1.1-1 
download_project_if_needed(PROJECT         kfparticle_source
                           GIT_REPOSITORY  ${KFPARTICLE_SRC_URL}
                           GIT_TAG         "1eddb796b01d91ac7faf020e3b616556c28da4d0"
                           SOURCE_DIR      ${CMAKE_CURRENT_SOURCE_DIR}/KFParticle
                           TEST_FILE       CMakeLists.txt
                          )

If(ProjectUpdated)
  File(REMOVE_RECURSE ${CMAKE_BINARY_DIR}/external/KFPARTICLE-prefix)
  Message("KFParticle source directory was changed so build directory was deleted")  
EndIf()

ExternalProject_Add(KFPARTICLE
  DEPENDS Vc
  BUILD_IN_SOURCE 0
  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/KFParticle
  BUILD_BYPRODUCTS ${KFPARTICLE_LIBRARY}
  LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1
  CMAKE_ARGS -G ${CMAKE_GENERATOR}
             -DCMAKE_BUILD_TYPE=RELWITHDEBINFO
             -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
             -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
             -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
             -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
             -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
             -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}
             -DVc_INCLUDE_DIR=${Vc_INCLUDE_DIR}
             -DVc_LIBRARIES=${Vc_LIBRARY}
             -DFIXTARGET=TRUE
             -DROOTSYS=${SIMPATH}
             -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
  INSTALL_COMMAND  ${CMAKE_COMMAND} --build . --target install
)

add_library(KFParticle SHARED IMPORTED)
set_target_properties(KFParticle PROPERTIES IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/lib)
add_dependencies(KFParticle KFPARTICLE)

set(KFParticle_LIB_DIR ${CMAKE_BINARY_DIR}/lib PARENT_SCOPE)
set(KFParticle_LIBRARIES KFParticle PARENT_SCOPE)
set(KFParticle_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include" PARENT_SCOPE)
set(KFParticle_FOUND TRUE PARENT_SCOPE)

Install(FILES ${CMAKE_BINARY_DIR}/lib/${KFPARTICLE_LIBNAME} 
              ${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}KFParticle.rootmap
              ${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}KFParticle_rdict.pcm
        DESTINATION lib
       )

Install(FILES ${CMAKE_BINARY_DIR}/include/KFParticleBase.h 
              ${CMAKE_BINARY_DIR}/include/KFParticle.h
              ${CMAKE_BINARY_DIR}/include/KFVertex.h
        DESTINATION include/KFParticle
       )
Install(FILES ${CMAKE_BINARY_DIR}/include/KFMCParticle.h
              ${CMAKE_BINARY_DIR}/include/KFPartEfficiencies.h
        DESTINATION include/KFParticlePerformance
       )
Install(FILES ${CMAKE_BINARY_DIR}/include/KFParticleTest.h
        DESTINATION include/KFParticleTest
       )
Install(FILES ${CMAKE_BINARY_DIR}/include/KFPVertex.h
              ${CMAKE_BINARY_DIR}/include/KFMCCounter.h
        DESTINATION include
       )