include_directories(${CMAKE_CURRENT_SOURCE_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR}) # ------------------- Source files -------------------- add_library( PastisUtils RevisionInfo.cpp) # --------------- get git revision info --------------- # Generates revision header file add_custom_target( PastisGitRevison ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp ) set_source_files_properties( ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp PROPERTIES GENERATED TRUE HEADER_FILE_ONLY TRUE ) # --------- check git revision info at build ---------- add_custom_command(TARGET PastisGitRevison COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp COMMENT "" ) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp COMMENT "" DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision VERBATIM ) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision PRE_BUILD COMMAND ${CMAKE_COMMAND} -DCMAKE_PASTIS_VERSION=${Pastis_VERSION} -DPASTIS_SOURCE_DIR=${PASTIS_SOURCE_DIR} -P ${PASTIS_SOURCE_DIR}/cmake/GetPastisGitRevision.cmake COMMENT "Check pastis git status" VERBATIM ) # --------- check git revision info at build ---------- configure_file("${PASTIS_SOURCE_DIR}/utils/pastis_version.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/pastis_version.hpp" @ONLY) list( APPEND SOURCES ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp ${CMAKE_CURRENT_BINARY_DIR}/pastis_version.hpp ) include_directories(${CMAKE_CURRENT_BINARY_DIR}) # Additional dependencies add_dependencies( PastisUtils PastisGitRevison)