58 lines
2.0 KiB
CMake
58 lines
2.0 KiB
CMake
# simple check for a git repo
|
|
if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
|
find_package(Git)
|
|
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE GIT_BRANCH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} log -1 --format=%h
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} log -1 --format=%ci
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE GIT_COMMIT_TIME
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} describe --long --match "[0-9]*" HEAD
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE GIT_VERSION_NUMBER
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
string(REGEX REPLACE "^([0-9]+)\\..*" "\\1" VERSION_YEAR "${GIT_VERSION_NUMBER}")
|
|
string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${GIT_VERSION_NUMBER}")
|
|
string(REGEX REPLACE "^[0-9]+\\.[0-9]+-([0-9]+).*" "\\1" VERSION_COMMIT "${GIT_VERSION_NUMBER}")
|
|
|
|
else(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
|
set(GIT_BRANCH "")
|
|
set(GIT_COMMIT_HASH "")
|
|
set(GIT_VERSION_NUMBER "")
|
|
set(VERSION_YEAR "0")
|
|
set(VERSION_MINOR "0")
|
|
set(VERSION_COMMIT "0")
|
|
set(BUILD_TYPE "")
|
|
|
|
endif(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
|
|
|
set(VERSION_STRING "${VERSION_YEAR}.${VERSION_MINOR}.${VERSION_COMMIT}")
|
|
|
|
message(STATUS "Version: ${VERSION_STRING}")
|
|
|
|
# message(STATUS "Git current branch: ${GIT_BRANCH}")
|
|
# message(STATUS "Git version number: " ${GIT_VERSION_NUMBER} )
|
|
# message(STATUS "Git commit hash: ${GIT_COMMIT_HASH}")
|
|
# message(STATUS "Git commit time: ${GIT_COMMIT_TIME}")
|
|
# message(STATUS "Version year: ${VERSION_YEAR}")
|
|
# message(STATUS "Version minor: ${VERSION_MINOR}")
|
|
# message(STATUS "Version commit: ${VERSION_COMMIT}")
|