Add version

This commit is contained in:
sd
2025-11-24 13:47:23 +03:00
parent 25eeb1d78c
commit 418ec5b3af
4 changed files with 115 additions and 3 deletions

44
cmake/version.cmake Normal file
View File

@@ -0,0 +1,44 @@
# Скрипт для генерации версии на основе git
# Получаем ближайший тег
execute_process(
COMMAND git describe --tags --abbrev=0
WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE GIT_TAG
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(NOT GIT_TAG)
set(GIT_TAG "none")
endif()
# Получаем текущую ветку
execute_process(
COMMAND git branch --show-current
WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE GIT_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# Получаем короткий хеш коммита
execute_process(
COMMAND git show -s --format=%h
WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE GIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# Формируем строку версии
if(GIT_BRANCH STREQUAL "main")
set(VERSION_STRING "${GIT_TAG} ${GIT_HASH}")
else()
set(VERSION_STRING "${GIT_TAG}-${GIT_BRANCH} ${GIT_HASH}")
endif()
# Генерируем заголовочный файл
configure_file(
${SOURCE_DIR}/inc/jlv135_cli/version.h.in
${BINARY_DIR}/inc/jlv135_cli/version.h
@ONLY
)