diff --git a/CMakeLists.txt b/CMakeLists.txt index 74540f81d..a10e6504a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,10 +8,26 @@ endif() project(zig C CXX) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) + set(ZIG_VERSION_MAJOR 0) set(ZIG_VERSION_MINOR 0) set(ZIG_VERSION_PATCH 0) set(ZIG_VERSION "${ZIG_VERSION_MAJOR}.${ZIG_VERSION_MINOR}.${ZIG_VERSION_PATCH}") + +find_program(GIT_EXE NAMES git) +if(GIT_EXE) + execute_process( + COMMAND ${GIT_EXE} name-rev HEAD --tags --name-only --no-undefined --always + OUTPUT_VARIABLE ZIG_GIT_REV + OUTPUT_STRIP_TRAILING_WHITESPACE) + 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_MAJOR}.${ZIG_VERSION_MINOR}.${ZIG_VERSION_PATCH}.${ZIG_GIT_REV}") + endif() +endif() message("Configuring zig version ${ZIG_VERSION}") set(ZIG_LIBC_LIB_DIR "" CACHE STRING "Default native target libc directory where crt1.o can be found")