summaryrefslogtreecommitdiff
path: root/cmake/GitVersionGen.cmake
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri.staessens@intec.ugent.be>2016-02-11 19:36:19 +0100
committerDimitri Staessens <dimitri.staessens@intec.ugent.be>2016-02-11 19:36:19 +0100
commitd85f6700de4db56341c429c0f4b5a44b72c07bb5 (patch)
treecf977578c870a60f1a1fcff81d898df6488871cc /cmake/GitVersionGen.cmake
parentcedcaee9c0074380b627b61f0591d36b54c452f4 (diff)
parentf78310f4886bad7029cc039971159ab7a97e00af (diff)
downloadouroboros-d85f6700de4db56341c429c0f4b5a44b72c07bb5.tar.gz
ouroboros-d85f6700de4db56341c429c0f4b5a44b72c07bb5.zip
Merge branch 'be' of bitbucket.org:ouroboros-rina/ouroboros into be
Diffstat (limited to 'cmake/GitVersionGen.cmake')
-rw-r--r--cmake/GitVersionGen.cmake43
1 files changed, 43 insertions, 0 deletions
diff --git a/cmake/GitVersionGen.cmake b/cmake/GitVersionGen.cmake
new file mode 100644
index 00000000..53ac166d
--- /dev/null
+++ b/cmake/GitVersionGen.cmake
@@ -0,0 +1,43 @@
+macro(GIT_VERSION_GEN)
+
+include(FindGit)
+if(NOT GIT_FOUND)
+ message(FATAL_ERROR "This is not a git repository")
+endif()
+
+find_program(SORT "sort")
+mark_as_advanced(SORT)
+if (${SORT} STREQUAL "")
+ message(FATAL_ERROR "Cannot find the sort executable")
+endif()
+
+find_program(TAIL "tail")
+mark_as_advanced(TAIL)
+if (${TAIL} STREQUAL "")
+ message(FATAL_ERROR "Cannot find the tail executable")
+endif()
+
+execute_process(
+ COMMAND ${GIT_EXECUTABLE} tag -l -n0
+ COMMAND ${SORT} -V
+ COMMAND ${TAIL} -n 1
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_VARIABLE _git_tag
+ RESULT_VARIABLE _git_result
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+if(NOT ${_git_result} EQUAL 0)
+ message(FATAL_ERROR "Cannot fetch repository tag")
+endif()
+message(STATUS "Repository tag is: ${_git_tag}")
+
+string(REGEX REPLACE
+ "[^0-9]*([0-9]+)\\.[0-9]+.*" "\\1"
+ _version_major "${_git_tag}")
+string(REGEX REPLACE
+ "[^0-9]*[0-9]+\\.([0-9]+).*" "\\1"
+ _version_minor "${_git_tag}")
+
+set(PACKAGE_VERSION_MAJOR "${_version_major}")
+set(PACKAGE_VERSION_MINOR "${_version_minor}")
+
+endmacro(GIT_VERSION_GEN)