summaryrefslogtreecommitdiff
path: root/cmake/utils/GetGitHash.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/utils/GetGitHash.cmake')
-rw-r--r--cmake/utils/GetGitHash.cmake16
1 files changed, 16 insertions, 0 deletions
diff --git a/cmake/utils/GetGitHash.cmake b/cmake/utils/GetGitHash.cmake
new file mode 100644
index 00000000..8a9be41d
--- /dev/null
+++ b/cmake/utils/GetGitHash.cmake
@@ -0,0 +1,16 @@
+function(get_git_hash WORKING_DIR VERSION_MAJ VERSION_MIN VERSION_PAT OUTPUT_VAR)
+ execute_process(
+ COMMAND git describe --always --dirty
+ WORKING_DIRECTORY ${WORKING_DIR}
+ OUTPUT_VARIABLE _hash
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET
+ )
+
+ if(NOT _hash)
+ message(WARNING "Could not determine git hash")
+ set(_hash "${VERSION_MAJ}.${VERSION_MIN}.${VERSION_PAT}-custom")
+ endif()
+
+ set(${OUTPUT_VAR} "${_hash}" PARENT_SCOPE)
+endfunction()