From 7f4918f1f17b0ddde6d1a8435e63f5f94c6dd065 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Mon, 20 Apr 2026 12:50:39 -0400 Subject: Generate version string based on repository information --- cmake/GitVersion.cmake | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 cmake/GitVersion.cmake (limited to 'cmake') diff --git a/cmake/GitVersion.cmake b/cmake/GitVersion.cmake new file mode 100644 index 0000000..7280510 --- /dev/null +++ b/cmake/GitVersion.cmake @@ -0,0 +1,43 @@ +function(get_version_from_git) + find_package(Git QUIET) + if(NOT Git_FOUND) + message(WARNING "Git not found. Setting fallback version.") + set(PROJECT_VERSION "0.0.0") + set(PROJECT_VERSION ${PROJECT_VERSION} PARENT_SCOPE) + set(PROJECT_VERSION_BRANCH "unknown") + set(PROJECT_VERSION_BRANCH ${PROJECT_VERSION_BRANCH} PARENT_SCOPE) + return() + endif() + + execute_process( + COMMAND ${GIT_EXECUTABLE} describe --first-parent --long --dirty --tags --always + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_TAG + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE GIT_RESULT + ) + if(NOT GIT_RESULT EQUAL 0) + message(WARNING "Failed to get git describe info") + return() + endif() + message(${GIT_TAG}) + + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_BRANCH + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE GIT_RESULT + ) + if(NOT GIT_RESULT EQUAL 0) + message(WARNING "Failed to get git branch") + return() + endif() + message(${GIT_BRANCH}) + + string(REGEX REPLACE "^v" "" CLEAN_TAG "${GIT_TAG}") + set(PROJECT_VERSION ${CLEAN_TAG}) + set(PROJECT_VERSION ${CLEAN_TAG} PARENT_SCOPE) + set(PROJECT_VERSION_BRANCH ${GIT_BRANCH}) + set(PROJECT_VERSION_BRANCH ${GIT_BRANCH} PARENT_SCOPE) +endfunction() \ No newline at end of file -- cgit From 1098f46052e03b057d0b0d159d2ab10b635afcec Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Tue, 21 Apr 2026 12:02:23 -0400 Subject: Remove debug print statements --- cmake/GitVersion.cmake | 2 -- 1 file changed, 2 deletions(-) (limited to 'cmake') diff --git a/cmake/GitVersion.cmake b/cmake/GitVersion.cmake index 7280510..94d6071 100644 --- a/cmake/GitVersion.cmake +++ b/cmake/GitVersion.cmake @@ -20,7 +20,6 @@ function(get_version_from_git) message(WARNING "Failed to get git describe info") return() endif() - message(${GIT_TAG}) execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD @@ -33,7 +32,6 @@ function(get_version_from_git) message(WARNING "Failed to get git branch") return() endif() - message(${GIT_BRANCH}) string(REGEX REPLACE "^v" "" CLEAN_TAG "${GIT_TAG}") set(PROJECT_VERSION ${CLEAN_TAG}) -- cgit From ee4c7beb65ddef497e9349d4ffc71d5bd58777cc Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Tue, 21 Apr 2026 13:52:30 -0400 Subject: cmake: use fallback on any error --- cmake/GitVersion.cmake | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'cmake') diff --git a/cmake/GitVersion.cmake b/cmake/GitVersion.cmake index 94d6071..c9c6159 100644 --- a/cmake/GitVersion.cmake +++ b/cmake/GitVersion.cmake @@ -1,11 +1,16 @@ +function(set_version_fallback) + message(WARNING "Version information not available. Using fallback...") + set(PROJECT_VERSION "0.0.0") + set(PROJECT_VERSION ${PROJECT_VERSION} PARENT_SCOPE) + set(PROJECT_VERSION_BRANCH "unknown") + set(PROJECT_VERSION_BRANCH ${PROJECT_VERSION_BRANCH} PARENT_SCOPE) +endfunction() + function(get_version_from_git) find_package(Git QUIET) if(NOT Git_FOUND) - message(WARNING "Git not found. Setting fallback version.") - set(PROJECT_VERSION "0.0.0") - set(PROJECT_VERSION ${PROJECT_VERSION} PARENT_SCOPE) - set(PROJECT_VERSION_BRANCH "unknown") - set(PROJECT_VERSION_BRANCH ${PROJECT_VERSION_BRANCH} PARENT_SCOPE) + message(WARNING "Git not found.") + set_version_fallback() return() endif() @@ -18,6 +23,7 @@ function(get_version_from_git) ) if(NOT GIT_RESULT EQUAL 0) message(WARNING "Failed to get git describe info") + set_version_fallback() return() endif() @@ -30,6 +36,7 @@ function(get_version_from_git) ) if(NOT GIT_RESULT EQUAL 0) message(WARNING "Failed to get git branch") + set_version_fallback() return() endif() -- cgit