mirror of
https://github.com/XRPLF/clio.git
synced 2025-11-04 20:05:51 +00:00
…s to set version Advantages: - not modifying src dir in build time (`git clean` will also remove less) - simpler codecov (if we decide to move it to separate stage in the future) - The cpp file is perfectly valid, so it will be treated as a C++ files by all the tooling - No need to use CMAKE_PROJECT_INCLUDE_BEFORE, should work fine without it - Instead of generating + recompiling, we will just be doing recompilation of 1 file
46 lines
1.4 KiB
CMake
46 lines
1.4 KiB
CMake
find_package(Git REQUIRED)
|
|
|
|
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
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
if (RC EQUAL 0)
|
|
# if we are on a tag, use the tag name
|
|
set(CLIO_VERSION "${TAG}")
|
|
set(DOC_CLIO_VERSION "${TAG}")
|
|
else ()
|
|
# if not, use YYYYMMDDHMS-<branch>-<git-rev>
|
|
|
|
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 DATE
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY
|
|
)
|
|
|
|
set(GIT_COMMAND branch --show-current)
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} ${GIT_COMMAND} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE BRANCH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY
|
|
)
|
|
|
|
set(GIT_COMMAND rev-parse --short HEAD)
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} ${GIT_COMMAND} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE REV
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY
|
|
)
|
|
|
|
set(CLIO_VERSION "${DATE}-${BRANCH}-${REV}")
|
|
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}")
|