build: versioning
versioning via git tags, commits after tags are displayed in the versionnumber
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# simple check for a git repo
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||
|
||||
execute_process(
|
||||
COMMAND git rev-parse --abbrev-ref HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_BRANCH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND git log -1 --format=%h
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND git log -1 --format=%ci
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_COMMIT_TIME
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND git describe --match "[0-9]*" --abbrev=7 HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_VERSION_NUMBER
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
else(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||
set(GIT_BRANCH "")
|
||||
set(GIT_COMMIT_HASH "")
|
||||
set(GIT_VERSION_NUMBER "")
|
||||
set(BUILD_TYPE "")
|
||||
|
||||
endif(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||
|
||||
message(STATUS "Git current branch: ${GIT_BRANCH}")
|
||||
message(STATUS "Git commit hash: ${GIT_COMMIT_HASH}")
|
||||
message(STATUS "Git commit time: ${GIT_COMMIT_TIME}")
|
||||
message(STATUS "Git version number:" ${GIT_VERSION_NUMBER} )
|
||||
|
||||
configure_file(
|
||||
${CMAKE_SOURCE_DIR}/src/app/version.h.in
|
||||
${CMAKE_SOURCE_DIR}/build/src/app/version.h
|
||||
)
|
||||
@@ -0,0 +1,7 @@
|
||||
# # build type needs to be in added as definition because of visual studio
|
||||
message(STATUS "setting up the buildtype for versioning")
|
||||
if(MSVC)
|
||||
add_definitions(-DBUILD_TYPE="${ConfigurationName}")
|
||||
else(MSVC)
|
||||
add_definitions(-DBUILD_TYPE="${CMAKE_BUILD_TYPE}")
|
||||
endif(MSVC)
|
||||
Reference in New Issue
Block a user