minetest/cmake/Modules/GenerateVersion.cmake

28 lines
920 B
CMake

# Always run during 'make'
if(VERSION_EXTRA)
set(VERSION_GITHASH "${VERSION_STRING}")
else(VERSION_EXTRA)
execute_process(COMMAND git rev-list ${LAST_RELEASE_COMMIT}..HEAD --count
WORKING_DIRECTORY "${GENERATE_VERSION_SOURCE_DIR}"
OUTPUT_VARIABLE VERSION_COMMITNUM OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)
execute_process(COMMAND git rev-parse --short HEAD --count
WORKING_DIRECTORY "${GENERATE_VERSION_SOURCE_DIR}"
OUTPUT_VARIABLE VERSION_COMMITID OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)
if(VERSION_COMMITNUM AND VERSION_COMMITID)
set(VERSION_GITHASH "${VERSION_STRING_BASE}-${VERSION_COMMITNUM}-g${VERSION_COMMITID}")
message(STATUS "*** Detected git version ${VERSION_GITHASH} ***")
else()
set(VERSION_GITHASH "${VERSION_STRING}")
endif()
endif()
configure_file(
${GENERATE_VERSION_SOURCE_DIR}/cmake_config_githash.h.in
${GENERATE_VERSION_BINARY_DIR}/cmake_config_githash.h)