Автоматизирован процесс получения версии программы из исходнго файла при сборке в пакет:

- Копирование source/snag/version_.d в source/snag/version_.d.bak и каждый раз восстанавливается оригинальный файл при сборке через CMake
- Добавлена параметризорванная возможность включения hash в версионирование по флагу GIT_HASH_VERSION
This commit is contained in:
Alexander Zhirov 2025-06-02 11:08:50 +03:00
parent 4474cc5b7c
commit d58ab81fd8
Signed by: alexander
GPG key ID: C8D8BE544A27C511
6 changed files with 53 additions and 32 deletions

View file

@ -1,18 +1,15 @@
cmake_minimum_required(VERSION 3.14)
project(snag)
set(PROJECT_VERSION_MAJOR 0)
set(PROJECT_VERSION_MINOR 1)
set(PROJECT_VERSION_PATCH 0)
string(TIMESTAMP PROJECT_VERSION_BUILD "%y%j.%H%M")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
include(snag_git)
include(snag_version)
string(TIMESTAMP PROJECT_VERSION_BUILD "%y%j.%H%M")
if(GIT_HASH_VERSION)
message(STATUS "GIT_HASH_VERSION is set")
include(snag_git)
endif()
include(snag_platforms)
set(PROJECT_VERSION_SUFFIX "-${GIT_VERSION_SUFFIX}")
# Overwrite suffix for Release or Release Candidate builds
set(PROJECT_VERSION_SUFFIX "-alpha.1")
set(CMAKE_BUILD_TYPE "Release")
if(CMAKE_BUILD_TYPE)
set(BUILD_TYPE ${CMAKE_BUILD_TYPE})
@ -27,7 +24,7 @@ message(STATUS "PROJECT_VERSION_DISPLAY: ${PROJECT_VERSION_DISPLAY}")
message(STATUS "")
# Deb package
set(DEB_PACKAGE_VERSION "${PROJECT_VERSION_DISPLAY}${PROJECT_VERSION_SUFFIX}")
set(DEB_PACKAGE_VERSION "${PROJECT_VERSION_DISPLAY}${PROJECT_VERSION_SUFFIX}${GIT_VERSION_SUFFIX}")
if(PROJECT_VERSION_CODENAME)
set(DEB_PACKAGE_VERSION "${DEB_PACKAGE_VERSION}-${PROJECT_VERSION_CODENAME}")
endif()