beamgrid/cmake/generate_version.cmake

28 lines
820 B
CMake
Raw Permalink Normal View History

# Generates Source/GitVersion.h from Source/GitVersion.h.in using the current
# Git state and a fresh build timestamp. Invoked via `cmake -P` at build time.
execute_process(COMMAND git rev-parse HEAD
WORKING_DIRECTORY ${SRC_DIR}
OUTPUT_VARIABLE GIT_COMMIT
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)
if(NOT GIT_COMMIT)
set(GIT_COMMIT "unknown")
endif()
execute_process(COMMAND git status --porcelain
WORKING_DIRECTORY ${SRC_DIR}
OUTPUT_VARIABLE GIT_STATUS
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)
if(GIT_STATUS STREQUAL "")
set(GIT_DIRTY 0)
else()
set(GIT_DIRTY 1)
endif()
string(TIMESTAMP BUILD_DATE "%Y-%m-%d__%H-%M-%S")
configure_file(${TEMPLATE} ${OUTPUT} @ONLY)