Skip to content
Snippets Groups Projects
  • Administrator's avatar
    8d92203a
    Fix AnalysisTree and AnalysisTreeQA installation · 8d92203a
    Administrator authored
    Use commit hash of a tag instead of tag name to define the needed git version.
    The hash is needed to check the already downloaded and build version.
    Without the hash after each run of CMake the libraries are rebuild.
    Using the hash only rebuild the libraries if there is a change of the hash.
    8d92203a
    History
    Fix AnalysisTree and AnalysisTreeQA installation
    Administrator authored
    Use commit hash of a tag instead of tag name to define the needed git version.
    The hash is needed to check the already downloaded and build version.
    Without the hash after each run of CMake the libraries are rebuild.
    Using the hash only rebuild the libraries if there is a change of the hash.
InstallAnalysisTreeQA.cmake 2.25 KiB
set(ANALYSISTREEQA_VERSION 634a0200ba4110eb31328c327a462d11f96f7e14)

set(ANALYSISTREEQA_SRC_URL "https://github.com/HeavyIonAnalysis/AnalysisTreeQA.git")
set(ANALYSISTREEQA_DESTDIR "${CMAKE_BINARY_DIR}/external/ANALYSISTREEQA-prefix")
set(ANALYSISTREEQA_LIBNAME "${CMAKE_SHARED_LIBRARY_PREFIX}AnalysisTreeQA${CMAKE_STATIC_LIBRARY_SUFFIX}")

download_project_if_needed(PROJECT         AnalysisTreeQA_source
        GIT_REPOSITORY  ${ANALYSISTREEQA_SRC_URL}
        GIT_TAG         ${ANALYSISTREEQA_VERSION}
        SOURCE_DIR      ${CMAKE_CURRENT_SOURCE_DIR}/AnalysisTreeQA
        TEST_FILE       CMakeLists.txt
        )

If(ProjectUpdated)
    File(REMOVE_RECURSE ${ANALYSISTREEQA_DESTDIR})
    Message("AnalysisTreeQA source directory was changed so build directory was deleted")
EndIf()

ExternalProject_Add(ANALYSISTREEQA
        DEPENDS AnalysisTreeBase
        BUILD_IN_SOURCE 0
        SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/AnalysisTreeQA
        BUILD_BYPRODUCTS ${ANALYSISTREEQA_LIBRARY}
        LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1
        CMAKE_ARGS -G ${CMAKE_GENERATOR}
        -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
        -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_INSTALL_PREFIX=${CMAKE_BINARY_DIR}
        -DCMAKE_CXX_STANDARD=11
        -DROOTSYS=${SIMPATH}
        -DUSEBOOST=TRUE
        -DBOOST_ROOT=${SIMPATH}
        -DBoost_NO_BOOST_CMAKE=ON
        -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
        INSTALL_COMMAND  ${CMAKE_COMMAND} --build . --target install
        )

add_library(AnalysisTreeQA SHARED IMPORTED)
set_target_properties(AnalysisTreeQA PROPERTIES IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/lib)
add_dependencies(AnalysisTreeQA ANALYSISTREE)

set(AnalysisTreeQA_LIB_DIR ${CMAKE_BINARY_DIR}/lib)
set(AnalysisTreeQA_LIBRARIES AnalysisTreeQA)
set(AnalysisTreeQA_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include")
set(AnalysisTreeQA_FOUND TRUE)

Install(FILES ${CMAKE_BINARY_DIR}/lib/${ANALYSISTREEQA_LIBNAME}
        ${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}AnalysisTreeQA.rootmap
        ${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}AnalysisTreeQA_rdict.pcm
        DESTINATION lib
        )