snag/cmake/snag_git.cmake
Alexander Zhirov d58ab81fd8
Автоматизирован процесс получения версии программы из исходнго файла при сборке в пакет:
- Копирование source/snag/version_.d в source/snag/version_.d.bak и каждый раз восстанавливается оригинальный файл при сборке через CMake
- Добавлена параметризорванная возможность включения hash в версионирование по флагу GIT_HASH_VERSION
2025-06-02 11:08:50 +03:00

20 lines
675 B
CMake

cmake_minimum_required(VERSION 3.6)
find_package(Git)
if(GIT_FOUND)
# Получаем короткий хэш текущего коммита
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_SHORT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# Проверяем, успешно ли получен хэш
if(GIT_SHORT_HASH)
message(STATUS "Git short hash: ${GIT_SHORT_HASH}")
set(GIT_VERSION_SUFFIX "-${GIT_SHORT_HASH}")
else()
message(WARNING "Failed to retrieve Git short hash")
endif()
endif()