aboutsummaryrefslogtreecommitdiff
path: root/src/version.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'src/version.cmake')
-rw-r--r--src/version.cmake26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/version.cmake b/src/version.cmake
index 880224dc6..40243c018 100644
--- a/src/version.cmake
+++ b/src/version.cmake
@@ -1,11 +1,25 @@
-execute_process(COMMAND "${GIT}" describe --dirty --match "v${VERSION}" RESULT_VARIABLE RET OUTPUT_VARIABLE DESCRIPTION OUTPUT_STRIP_TRAILING_WHITESPACE)
+execute_process(COMMAND "${GIT}" rev-parse --short HEAD RESULT_VARIABLE RET OUTPUT_VARIABLE COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE)
+
if(RET)
- message(WARNING "Cannot determine current revision. Make sure that you are building either from a Git working tree or from a source archive.")
- set(VERSION "${COMMIT}")
+ message(WARNING "Cannot determine current commit. Make sure that you are building either from a Git working tree or from a source archive.")
+ set(VERSIONTAG "unknown")
configure_file("src/version.h.in" "${TO}")
else()
- string(REGEX MATCH "([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f])?(-dirty)? $" COMMIT "${DESCRIPTION} ")
- string(STRIP "${COMMIT}" COMMIT)
- set(VERSION "${COMMIT}")
+ message(STATUS "You are currently on commit ${COMMIT}")
+ execute_process(COMMAND "${GIT}" show-ref --tags -d --abbrev COMMAND awk "END{print $1}" RESULT_VARIABLE RET OUTPUT_VARIABLE TAGGEDCOMMIT OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(RET)
+ message(WARNING "Cannot determine most recent tag. Make sure that you are building either from a Git working tree or from a source archive.")
+ set(VERSIONTAG "${COMMIT}")
+ else()
+ message(STATUS "The most recent tag was at ${TAGGEDCOMMIT}")
+ if(COMMIT MATCHES TAGGEDCOMMIT)
+ message(STATUS "You are building a tagged release")
+ set(VERSIONTAG "release")
+ else()
+ message(STATUS "You are ahead or behind of a tagged release")
+ set(VERSIONTAG "${COMMIT}")
+ endif()
+ endif()
+
configure_file("src/version.h.in" "${TO}")
endif() \ No newline at end of file