mirror of
https://github.com/XRPLF/clio.git
synced 2026-04-29 15:37:53 +00:00
60 lines
1.9 KiB
CMake
60 lines
1.9 KiB
CMake
find_package(Git REQUIRED)
|
|
|
|
if (DEFINED ENV{GITHUB_BRANCH_NAME})
|
|
set(GIT_BUILD_BRANCH $ENV{GITHUB_BRANCH_NAME})
|
|
set(GIT_COMMIT_HASH $ENV{GITHUB_HEAD_SHA})
|
|
else ()
|
|
set(GIT_COMMAND branch --show-current)
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} ${GIT_COMMAND} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE GIT_BUILD_BRANCH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY
|
|
)
|
|
|
|
set(GIT_COMMAND rev-parse HEAD)
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} ${GIT_COMMAND} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE GIT_COMMIT_HASH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY
|
|
)
|
|
endif ()
|
|
|
|
set(GIT_COMMAND show -s --date=format:%Y%m%d%H%M%S --format=%cd)
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} ${GIT_COMMAND} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE BUILD_DATE
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY
|
|
)
|
|
|
|
message(STATUS "Git branch: ${GIT_BUILD_BRANCH}")
|
|
message(STATUS "Git commit hash: ${GIT_COMMIT_HASH}")
|
|
message(STATUS "Build date: ${BUILD_DATE}")
|
|
|
|
set(GIT_COMMAND describe --tags --exact-match)
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} ${GIT_COMMAND}
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE TAG
|
|
RESULT_VARIABLE RC
|
|
ERROR_VARIABLE ERR
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
if (RC EQUAL 0)
|
|
message(STATUS "Found tag '${TAG}' in git. Will use it as Clio version")
|
|
|
|
set(CLIO_VERSION "${TAG}")
|
|
set(DOC_CLIO_VERSION "${TAG}")
|
|
else ()
|
|
message(STATUS "Error finding tag in git: ${ERR}")
|
|
message(STATUS "Will use 'YYYYMMDDHMS-<branch>-<git short rev>' as Clio version")
|
|
|
|
string(SUBSTRING ${GIT_COMMIT_HASH} 0 7 GIT_COMMIT_HASH_SHORT)
|
|
|
|
set(CLIO_VERSION "${BUILD_DATE}-${GIT_BUILD_BRANCH}-${GIT_COMMIT_HASH_SHORT}")
|
|
set(DOC_CLIO_VERSION "develop")
|
|
endif ()
|
|
|
|
if (CMAKE_BUILD_TYPE MATCHES Debug)
|
|
set(CLIO_VERSION "${CLIO_VERSION}+DEBUG")
|
|
endif ()
|
|
|
|
message(STATUS "Build version: ${CLIO_VERSION}")
|