Add version
This commit is contained in:
@@ -17,6 +17,51 @@ else()
|
||||
add_compile_definitions(JL_CONFIG_USE_FILE)
|
||||
endif()
|
||||
|
||||
# Генерация версии из git
|
||||
execute_process(
|
||||
COMMAND git describe --tags --abbrev=0
|
||||
WORKING_DIRECTORY ${CMAKE_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 ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_BRANCH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND git show -s --format=%h
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
# Получаем дату и время сборки
|
||||
string(TIMESTAMP BUILD_DATE "%Y-%m-%d %H:%M:%S" UTC)
|
||||
|
||||
# Формируем короткую версию (без хеша и даты)
|
||||
if(GIT_BRANCH STREQUAL "main")
|
||||
set(VERSION_SHORT "${GIT_TAG}")
|
||||
set(VERSION_STRING "${GIT_TAG} ${GIT_HASH} (${BUILD_DATE})")
|
||||
else()
|
||||
set(VERSION_SHORT "${GIT_TAG}-${GIT_BRANCH}")
|
||||
set(VERSION_STRING "${GIT_TAG}-${GIT_BRANCH} ${GIT_HASH} (${BUILD_DATE})")
|
||||
endif()
|
||||
|
||||
configure_file(
|
||||
${CMAKE_SOURCE_DIR}/inc/jlv135_cli/version.h.in
|
||||
${CMAKE_BINARY_DIR}/inc/jlv135_cli/version.h
|
||||
@ONLY
|
||||
)
|
||||
|
||||
# Создание исполняемого файла
|
||||
add_executable(${PROJECT_NAME}
|
||||
src/jl_modbus/jl_modbus_config.c
|
||||
@@ -36,8 +81,9 @@ add_executable(${PROJECT_NAME}
|
||||
target_link_libraries(${CMAKE_PROJECT_NAME} pthread)
|
||||
|
||||
# Добавление каталогов для поиска заголовков
|
||||
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
|
||||
inc)
|
||||
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
|
||||
inc
|
||||
${CMAKE_BINARY_DIR}/inc)
|
||||
|
||||
if (BUILD_FOR_JLV135)
|
||||
# Опция strip
|
||||
|
||||
Reference in New Issue
Block a user