diff --git a/CMakeLists.txt b/CMakeLists.txt index 36c3e49..edd8560 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,8 @@ set(VERSION_SUFFIX "") if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/.git") set(GIT_RESULT "") set(GIT_OUTPUT "") + + # Get commit index execute_process( COMMAND git rev-list --count --topo-order ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${VERSION_SUFFIX}..HEAD WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} @@ -37,6 +39,8 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/.git") if(GIT_RESULT EQUAL 0) set(VERSION_TWEAK ${GIT_OUTPUT}) endif() + + # Get commit hash execute_process( COMMAND git rev-parse --short=8 HEAD WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} @@ -45,11 +49,13 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/.git") OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) if(GIT_RESULT EQUAL 0) - set(PROJECT_COMMIT ${GIT_OUTPUT}) + set(VERSION_COMMIT ${GIT_OUTPUT}) + else() + set(VERSION_COMMIT "") endif() endif() -if(PROJECT_COMMIT) - set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_TWEAK}${VERSION_SUFFIX}-${PROJECT_COMMIT}") +if(VERSION_COMMIT) + set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_TWEAK}${VERSION_SUFFIX}-${VERSION_COMMIT}") else() set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_TWEAK}${VERSION_SUFFIX}") endif() diff --git a/templates/version.hpp.in b/templates/version.hpp.in index 7c4c7da..0622c30 100644 --- a/templates/version.hpp.in +++ b/templates/version.hpp.in @@ -30,14 +30,15 @@ #define STREAMFX_MASK_COMPAT 0xFFFFFFFF00000000ull #define STREAMFX_MASK_UPDATE 0xFFFFFFFFFFFF0000ull -#define STREAMFX_COMMIT "@PROJECT_COMMIT@" +#define STREAMFX_COMMIT "@VERSION_COMMIT@" +#define STREAMFX_VERSION \ + STREAMFX_MAKE_VERSION(STREAMFX_VERSION_MAJOR, STREAMFX_VERSION_MINOR, STREAMFX_VERSION_PATCH, \ + STREAMFX_VERSION_BUILD) #define STREAMFX_VERSION_MAJOR @PROJECT_VERSION_MAJOR@ #define STREAMFX_VERSION_MINOR @PROJECT_VERSION_MINOR@ #define STREAMFX_VERSION_PATCH @PROJECT_VERSION_PATCH@ #define STREAMFX_VERSION_BUILD @PROJECT_VERSION_TWEAK@ #define STREAMFX_VERSION_TWEAK @PROJECT_VERSION_TWEAK@ #define STREAMFX_VERSION_SUFFIX "@VERSION_SUFFIX@" -#define STREAMFX_VERSION \ - STREAMFX_MAKE_VERSION(STREAMFX_VERSION_MAJOR, STREAMFX_VERSION_MINOR, STREAMFX_VERSION_PATCH, \ - STREAMFX_VERSION_BUILD) +#define STREAMFX_VERSION_COMMIT "@VERSION_COMMIT@" #define STREAMFX_VERSION_STRING "@VERSION_STRING@"