set version in flake

This commit is contained in:
2025-12-15 21:10:23 +03:00
parent 8a2b224fd3
commit a5d6503305
3 changed files with 37 additions and 21 deletions

View File

@@ -26,28 +26,36 @@ 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}")
if(DEFINED CLRSYNC_SEMVER)
set(SEMVER "${CLRSYNC_SEMVER}")
else()
set(SEMVER "${PROJECT_VERSION}")
find_package(Git QUIET)
if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
execute_process(
COMMAND git describe --tags --long --always
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_DESCRIBE
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
endif()
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()
endif()
message(STATUS "clrsync version: ${SEMVER}")
configure_file(
${CMAKE_SOURCE_DIR}/src/core/version.hpp.in
${CMAKE_SOURCE_DIR}/src/core/version.hpp

View File

@@ -20,7 +20,14 @@
stdenv.mkDerivation rec {
pname = "clrsync";
version = "unstable-2024-12-15";
baseVersion = "0.1.4";
version =
if src ? rev then
"${baseVersion}+${toString src.revCount}.git.${lib.substring 0 7 src.rev}"
else
baseVersion;
src = lib.cleanSourceWith {
src = ./.;
@@ -70,6 +77,7 @@ stdenv.mkDerivation rec {
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DUSE_SYSTEM_GLFW=ON"
"-DCLRSYNC_SEMVER=${version}"
];
installPhase = ''

View File

@@ -7,7 +7,7 @@
namespace clrsync::core
{
const std::string GIT_SEMVER = "0.1.4+2.git.g4b4af0f";
const std::string GIT_SEMVER = "0.1.4+3.git.g8a2b224";
const std::string version_string();
} // namespace clrsync::core