Add version
This commit is contained in:
44
cmake/version.cmake
Normal file
44
cmake/version.cmake
Normal 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
|
||||
)
|
||||
Reference in New Issue
Block a user