Skip to content
Snippets Groups Projects
Commit bbae0cfd authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Fixed get git revision on build

parent a8f54b53
Branches
Tags
No related merge requests found
# --------------- get git revision info ---------------
# quite hugly but seems necessary
set(CMAKE_CURRENT_SOURCE_DIR ${INVOCATION_DIR})
list(APPEND CMAKE_MODULE_PATH "${INVOCATION_DIR}/../cmake/cmake-modules")
include(GetGitRevisionDescription)
git_describe(PASTIS_VERSION "--abbrev=0")
get_git_head_revision(PASTIS_HEAD PASTIS_HASH)
git_local_changes(PASTIS_HAS_LOCAL_CHANGES)
if(${PASTIS_HAS_LOCAL_CHANGES} STREQUAL "CLEAN")
set(PASTIS_IS_CLEAN true)
else()
set(PASTIS_IS_CLEAN false)
endif()
# Generates revision header file candidate
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pastis_git_revision.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision" @ONLY)
......@@ -9,24 +9,12 @@ add_library(
# --------------- get git revision info ---------------
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/cmake-modules")
include(GetGitRevisionDescription)
git_describe(PASTIS_VERSION "--abbrev=0")
get_git_head_revision(PASTIS_HEAD PASTIS_HASH)
git_local_changes(PASTIS_HAS_LOCAL_CHANGES)
if(${PASTIS_HAS_LOCAL_CHANGES} STREQUAL "CLEAN")
set(PASTIS_IS_CLEAN true)
else()
set(PASTIS_IS_CLEAN false)
endif()
# Generates revision header file
add_custom_target(
git_revision
PastisGitRevison
ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp)
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp
)
set_source_files_properties(
${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp
......@@ -35,7 +23,31 @@ set_source_files_properties(
HEADER_FILE_ONLY TRUE
)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pastis_git_revision.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp" @ONLY)
# --------- 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
......@@ -47,4 +59,4 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
# Additional dependencies
add_dependencies(
PastisUtils
git_revision)
PastisGitRevison)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment