CMake: optional date/time overrides for reproducible builds
This commit is contained in:
@@ -218,6 +218,10 @@ if(${CMAKE_VERSION} VERSION_LESS 2.8.8)
|
|||||||
# add_library OBJECT arg unsupported
|
# add_library OBJECT arg unsupported
|
||||||
set(WITH_BUILDINFO OFF)
|
set(WITH_BUILDINFO OFF)
|
||||||
endif()
|
endif()
|
||||||
|
set(BUILDINFO_OVERRIDE_DATE "" CACHE STRING "Use instead of the current date for reproducable builds (empty string disables this option)")
|
||||||
|
set(BUILDINFO_OVERRIDE_TIME "" CACHE STRING "Use instead of the current time for reproducable builds (empty string disables this option)")
|
||||||
|
mark_as_advanced(BUILDINFO_OVERRIDE_DATE)
|
||||||
|
mark_as_advanced(BUILDINFO_OVERRIDE_TIME)
|
||||||
|
|
||||||
option(WITH_IK_ITASC "Enable ITASC IK solver (only disable for development & for incompatible C++ compilers)" ON)
|
option(WITH_IK_ITASC "Enable ITASC IK solver (only disable for development & for incompatible C++ compilers)" ON)
|
||||||
option(WITH_IK_SOLVER "Enable Legacy IK solver (only disable for development)" ON)
|
option(WITH_IK_SOLVER "Enable Legacy IK solver (only disable for development)" ON)
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
# This is called by cmake as an extermal process from
|
# This is called by cmake as an external process from
|
||||||
# ./source/creator/CMakeLists.txt to write ./source/creator/buildinfo.h
|
# ./source/creator/CMakeLists.txt to write ./source/creator/buildinfo.h
|
||||||
|
# Caller must define:
|
||||||
|
# SOURCE_DIR
|
||||||
|
# Optional overrides:
|
||||||
|
# BUILD_DATE
|
||||||
|
# BUILD_TIME
|
||||||
|
|
||||||
# Extract working copy information for SOURCE_DIR into MY_XXX variables
|
# Extract working copy information for SOURCE_DIR into MY_XXX variables
|
||||||
# with a default in case anything fails, for example when using git-svn
|
# with a default in case anything fails, for example when using git-svn
|
||||||
@@ -128,12 +133,19 @@ endif()
|
|||||||
# BUILD_PLATFORM and BUILD_PLATFORM are taken from CMake
|
# BUILD_PLATFORM and BUILD_PLATFORM are taken from CMake
|
||||||
# but BUILD_DATE and BUILD_TIME are platform dependent
|
# but BUILD_DATE and BUILD_TIME are platform dependent
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
|
if(NOT BUILD_DATE)
|
||||||
execute_process(COMMAND date "+%Y-%m-%d" OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
execute_process(COMMAND date "+%Y-%m-%d" OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
endif()
|
||||||
|
if(NOT BUILD_TIME)
|
||||||
execute_process(COMMAND date "+%H:%M:%S" OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
|
execute_process(COMMAND date "+%H:%M:%S" OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
endif()
|
endif()
|
||||||
if(WIN32)
|
elseif(WIN32)
|
||||||
|
if(NOT BUILD_DATE)
|
||||||
execute_process(COMMAND cmd /c date /t OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
execute_process(COMMAND cmd /c date /t OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
endif()
|
||||||
|
if(NOT BUILD_TIME)
|
||||||
execute_process(COMMAND cmd /c time /t OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
|
execute_process(COMMAND cmd /c time /t OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Write a file with the BUILD_HASH define
|
# Write a file with the BUILD_HASH define
|
||||||
|
|||||||
@@ -186,6 +186,9 @@ if(WITH_BUILDINFO)
|
|||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/_buildinfo.h
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/_buildinfo.h
|
||||||
COMMAND ${CMAKE_COMMAND}
|
COMMAND ${CMAKE_COMMAND}
|
||||||
-DSOURCE_DIR=${CMAKE_SOURCE_DIR}
|
-DSOURCE_DIR=${CMAKE_SOURCE_DIR}
|
||||||
|
# overrides only used when non-empty strings
|
||||||
|
-DBUILD_DATE=${BUILDINFO_OVERRIDE_DATE}
|
||||||
|
-DBUILD_TIME=${BUILDINFO_OVERRIDE_TIME}
|
||||||
-P ${CMAKE_SOURCE_DIR}/build_files/cmake/buildinfo.cmake)
|
-P ${CMAKE_SOURCE_DIR}/build_files/cmake/buildinfo.cmake)
|
||||||
|
|
||||||
# buildinfo.h is a generated file
|
# buildinfo.h is a generated file
|
||||||
|
|||||||
Reference in New Issue
Block a user