From 8a2b224fd39379006f379420dedc517e699bacf0 Mon Sep 17 00:00:00 2001 From: Daniel Dada Date: Mon, 15 Dec 2025 20:55:54 +0300 Subject: [PATCH] set git version --- CMakeLists.txt | 22 ++++++++++++++++++++++ src/core/version.cpp | 3 +-- src/core/version.hpp | 4 +--- src/core/version.hpp.in | 4 +--- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ce3a6d..89eb743 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,6 +26,28 @@ set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) set(CMAKE_INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}") +find_package(Git) + +execute_process( + COMMAND git describe --tags --long --always + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_DESCRIBE + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET +) + +if(GIT_DESCRIBE MATCHES "^[vV]?[0-9]+\\.[0-9]+\\.[0-9]+-[0-9]+-g[0-9a-f]+") + string(REGEX REPLACE + "^[vV]?([0-9]+\\.[0-9]+\\.[0-9]+)-([0-9]+)-g([0-9a-f]+)" + "\\1+\\2.git.g\\3" + SEMVER "${GIT_DESCRIBE}" + ) +elseif(GIT_DESCRIBE) + set(SEMVER "${PROJECT_VERSION}+0.git.${GIT_DESCRIBE}") +else() + set(SEMVER "${PROJECT_VERSION}") +endif() + configure_file( ${CMAKE_SOURCE_DIR}/src/core/version.hpp.in ${CMAKE_SOURCE_DIR}/src/core/version.hpp diff --git a/src/core/version.cpp b/src/core/version.cpp index dbab9fd..db88d4b 100644 --- a/src/core/version.cpp +++ b/src/core/version.cpp @@ -4,7 +4,6 @@ namespace clrsync::core { const std::string version_string() { - return "v" + std::to_string(VERSION_MAJOR) + "." + std::to_string(VERSION_MINOR) + "." + - std::to_string(VERSION_PATCH); + return GIT_SEMVER; } } // namespace clrsync::core diff --git a/src/core/version.hpp b/src/core/version.hpp index 2a64884..3800931 100644 --- a/src/core/version.hpp +++ b/src/core/version.hpp @@ -7,9 +7,7 @@ namespace clrsync::core { -constexpr uint8_t VERSION_MAJOR = 0; -constexpr uint8_t VERSION_MINOR = 1; -constexpr uint8_t VERSION_PATCH = 4; +const std::string GIT_SEMVER = "0.1.4+2.git.g4b4af0f"; const std::string version_string(); } // namespace clrsync::core diff --git a/src/core/version.hpp.in b/src/core/version.hpp.in index d9ac624..7caf9ed 100644 --- a/src/core/version.hpp.in +++ b/src/core/version.hpp.in @@ -7,9 +7,7 @@ namespace clrsync::core { -constexpr uint8_t VERSION_MAJOR = @PROJECT_VERSION_MAJOR@; -constexpr uint8_t VERSION_MINOR = @PROJECT_VERSION_MINOR@; -constexpr uint8_t VERSION_PATCH = @PROJECT_VERSION_PATCH@; +const std::string GIT_SEMVER = "@SEMVER@"; const std::string version_string(); } // namespace clrsync::core