summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'Modules')
-rw-r--r--Modules/VersionTag.cmake13
-rwxr-xr-xModules/describe.sh17
2 files changed, 30 insertions, 0 deletions
diff --git a/Modules/VersionTag.cmake b/Modules/VersionTag.cmake
new file mode 100644
index 0000000..682ab3e
--- /dev/null
+++ b/Modules/VersionTag.cmake
@@ -0,0 +1,13 @@
+execute_process(
+ COMMAND "sh" "${CMAKE_SOURCE_DIR}/Modules/describe.sh"
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+ OUTPUT_VARIABLE DESCRIBE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+
+if(DESCRIBE STREQUAL "")
+ set (VERSION_TAG "UNKNOWN")
+else()
+ string(REGEX REPLACE "^v" "" VERSION_TAG "${DESCRIBE}")
+endif()
+
diff --git a/Modules/describe.sh b/Modules/describe.sh
new file mode 100755
index 0000000..91730b8
--- /dev/null
+++ b/Modules/describe.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# Check for git and a git repo.
+if head=`git rev-parse --verify HEAD 2>/dev/null`; then
+ echo -n `git describe`
+
+ # Are there uncommitted changes?
+ git update-index --refresh --unmerged > /dev/null
+ git diff-index --quiet HEAD || echo -n -dirty
+else
+# Check for version tag
+ if [ -e version.tag ]; then
+ echo -n `cat version.tag`
+ fi
+fi
+
+echo