set git version

This commit is contained in:
2025-12-15 20:55:54 +03:00
parent 4b4af0f8fe
commit 8a2b224fd3
4 changed files with 25 additions and 8 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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