Allow specifying build version using cmake

master
Jan200101 2020-10-04 13:41:05 +02:00 committed by Andrew Kelley
parent 65991092f7
commit d0a4110d34
1 changed files with 18 additions and 15 deletions

View File

@ -27,23 +27,26 @@ set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
set(ZIG_VERSION_MAJOR 0) set(ZIG_VERSION_MAJOR 0)
set(ZIG_VERSION_MINOR 6) set(ZIG_VERSION_MINOR 6)
set(ZIG_VERSION_PATCH 0) set(ZIG_VERSION_PATCH 0)
set(ZIG_VERSION "${ZIG_VERSION_MAJOR}.${ZIG_VERSION_MINOR}.${ZIG_VERSION_PATCH}") set(ZIG_VERSION "" CACHE STRING "Override Zig version string. Default is to find out with git.")
find_program(GIT_EXE NAMES git) if("${ZIG_VERSION}" STREQUAL "")
if(GIT_EXE) set(ZIG_VERSION "${ZIG_VERSION_MAJOR}.${ZIG_VERSION_MINOR}.${ZIG_VERSION_PATCH}")
execute_process( find_program(GIT_EXE NAMES git)
COMMAND ${GIT_EXE} -C ${CMAKE_SOURCE_DIR} name-rev HEAD --tags --name-only --no-undefined --always if(GIT_EXE)
RESULT_VARIABLE EXIT_STATUS execute_process(
OUTPUT_VARIABLE ZIG_GIT_REV COMMAND ${GIT_EXE} -C ${CMAKE_SOURCE_DIR} name-rev HEAD --tags --name-only --no-undefined --always
OUTPUT_STRIP_TRAILING_WHITESPACE RESULT_VARIABLE EXIT_STATUS
ERROR_QUIET) OUTPUT_VARIABLE ZIG_GIT_REV
if(EXIT_STATUS EQUAL "0") OUTPUT_STRIP_TRAILING_WHITESPACE
if(ZIG_GIT_REV MATCHES "\\^0$") ERROR_QUIET)
if(NOT("${ZIG_GIT_REV}" STREQUAL "${ZIG_VERSION}^0")) if(EXIT_STATUS EQUAL "0")
message("WARNING: Tag does not match configured Zig version") if(ZIG_GIT_REV MATCHES "\\^0$")
if(NOT("${ZIG_GIT_REV}" STREQUAL "${ZIG_VERSION}^0"))
message("WARNING: Tag does not match configured Zig version")
endif()
else()
set(ZIG_VERSION "${ZIG_VERSION}+${ZIG_GIT_REV}")
endif() endif()
else()
set(ZIG_VERSION "${ZIG_VERSION}+${ZIG_GIT_REV}")
endif() endif()
endif() endif()
endif() endif()