From 9de0cf688c7efc203b444283f4ab135efdaba161 Mon Sep 17 00:00:00 2001 From: Kyle Schwarz Date: Thu, 14 May 2026 23:16:20 -0400 Subject: [PATCH] Build: Parse CMake version from git --- CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 320e1499..43fb9791 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,41 @@ cmake_minimum_required(VERSION 3.16) -project(libicsneo VERSION 1.0.0) + +function(git_tag_version VERSION_RESULT) + set(${VERSION_RESULT} "0.0.0.0" PARENT_SCOPE) + find_package(Git) + if(NOT Git_FOUND) + return() + endif() + execute_process( + COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=0 + OUTPUT_VARIABLE LAST_TAG + RESULT_VARIABLE RESULT + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if(NOT RESULT EQUAL 0) + return() + endif() + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-list ${LAST_TAG}..HEAD --count + OUTPUT_VARIABLE COMMIT_COUNT_SINCE_TAG + RESULT_VARIABLE RESULT + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if(NOT RESULT EQUAL 0) + return() + endif() + set(${VERSION_RESULT} "${LAST_TAG}.${COMMIT_COUNT_SINCE_TAG}" PARENT_SCOPE) +endfunction() + +git_tag_version(LIBICSNEO_VERSION) + +if(LIBICSNEO_VERSION STREQUAL "0.0.0.0") + message(WARNING "Unable to parse version from git history") +endif() + +project(libicsneo VERSION ${LIBICSNEO_VERSION}) cmake_policy(SET CMP0074 NEW) if(POLICY CMP0135)