Select Git revision
CMakeLists.txt
-
Stéphane Del Pino authored
- added pastis version - compilation checks compatibility of version and git revision info - separates git info and version info for git-less compilation
Stéphane Del Pino authored- added pastis version - compilation checks compatibility of version and git revision info - separates git info and version info for git-less compilation
CMakeLists.txt 1.85 KiB
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)