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} -DINVOCATION_DIR=${CMAKE_CURRENT_SOURCE_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/git_revision.cmake COMMENT "Check pastis git status" VERBATIM ) list( APPEND SOURCES ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp) include_directories(${CMAKE_CURRENT_BINARY_DIR}) # Additional dependencies add_dependencies( PastisUtils PastisGitRevison)