Buildsystem/Genrev: Fixed revision generator not reading existing cmake cache variables
This commit is contained in:
1 parent
2502c383ef
commit
869bc4e0f7
2 files changed
+9
-11
No files matched your search
+7
-9
@@ -12,21 +12,19 @@
|
|||||||
# This is done EACH compile so they can be alerted about the consequences.
|
# This is done EACH compile so they can be alerted about the consequences.
|
||||||
|
|
||||||
if(NOT BUILDDIR)
|
if(NOT BUILDDIR)
|
||||||
# Workaround for funny MSVC behaviour - this segment only run during compile
|
# Workaround for funny MSVC behaviour - this segment is only used when using cmake gui
|
||||||
set(NO_GIT ${WITHOUT_GIT})
|
|
||||||
set(GIT_EXEC ${GIT_EXECUTABLE})
|
|
||||||
set(BUILDDIR ${CMAKE_BINARY_DIR})
|
set(BUILDDIR ${CMAKE_BINARY_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NO_GIT)
|
if(WITHOUT_GIT)
|
||||||
set(rev_date "1970-01-01 00:00:00 +0000")
|
set(rev_date "1970-01-01 00:00:00 +0000")
|
||||||
set(rev_hash "unknown")
|
set(rev_hash "unknown")
|
||||||
set(rev_branch "Archived")
|
set(rev_branch "Archived")
|
||||||
else()
|
else()
|
||||||
if(GIT_EXEC)
|
if(GIT_EXECUTABLE)
|
||||||
# Create a revision-string that we can use
|
# Create a revision-string that we can use
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND "${GIT_EXEC}" describe --match init --dirty=+ --abbrev=12
|
COMMAND "${GIT_EXECUTABLE}" describe --match init --dirty=+ --abbrev=12
|
||||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||||
OUTPUT_VARIABLE rev_info
|
OUTPUT_VARIABLE rev_info
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
@@ -35,7 +33,7 @@ else()
|
|||||||
|
|
||||||
# And grab the commits timestamp
|
# And grab the commits timestamp
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND "${GIT_EXEC}" show -s --format=%ci
|
COMMAND "${GIT_EXECUTABLE}" show -s --format=%ci
|
||||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||||
OUTPUT_VARIABLE rev_date
|
OUTPUT_VARIABLE rev_date
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
@@ -44,7 +42,7 @@ else()
|
|||||||
|
|
||||||
# Also retrieve branch name
|
# Also retrieve branch name
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND "${GIT_EXEC}" rev-parse --abbrev-ref HEAD
|
COMMAND "${GIT_EXECUTABLE}" rev-parse --abbrev-ref HEAD
|
||||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||||
OUTPUT_VARIABLE rev_branch
|
OUTPUT_VARIABLE rev_branch
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
@@ -69,7 +67,7 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Create the actual revision.h file from the above params
|
# Create the actual revision.h file from the above params
|
||||||
if(NOT "${rev_hash_cached}" MATCHES "${rev_hash}" OR NOT "${rev_branch_cached}" MATCHES "${rev_branch}")
|
if(NOT "${rev_hash_cached}" MATCHES "${rev_hash}" OR NOT "${rev_branch_cached}" MATCHES "${rev_branch}" OR NOT EXISTS "${BUILDDIR}/revision.h")
|
||||||
configure_file(
|
configure_file(
|
||||||
"${CMAKE_SOURCE_DIR}/revision.h.in.cmake"
|
"${CMAKE_SOURCE_DIR}/revision.h.in.cmake"
|
||||||
"${BUILDDIR}/revision.h"
|
"${BUILDDIR}/revision.h"
|
||||||
|
|||||||
@@ -10,6 +10,6 @@
|
|||||||
|
|
||||||
# Need to pass old ${CMAKE_BINARY_DIR} as param because its different at build stage
|
# Need to pass old ${CMAKE_BINARY_DIR} as param because its different at build stage
|
||||||
add_custom_target(revision.h ALL
|
add_custom_target(revision.h ALL
|
||||||
COMMAND ${CMAKE_COMMAND} -DNO_GIT=${WITHOUT_GIT} -DGIT_EXEC=${GIT_EXECUTABLE} -DBUILDDIR=${CMAKE_BINARY_DIR} -P ${CMAKE_SOURCE_DIR}/cmake/genrev.cmake
|
COMMAND "${CMAKE_COMMAND}" -DBUILDDIR="${CMAKE_BINARY_DIR}" -P "${CMAKE_SOURCE_DIR}/cmake/genrev.cmake" "${CMAKE_BINARY_DIR}"
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||||
)
|
)
|
||||||
Reference in new issue
Block a user