summaryrefslogtreecommitdiffstats
path: root/cmake/GitVersion.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/GitVersion.cmake')
-rw-r--r--cmake/GitVersion.cmake18
1 files changed, 12 insertions, 6 deletions
diff --git a/cmake/GitVersion.cmake b/cmake/GitVersion.cmake
index 7044aaffc..386ca309c 100644
--- a/cmake/GitVersion.cmake
+++ b/cmake/GitVersion.cmake
@@ -1,16 +1,16 @@
find_package(Git)
# Extract a version from the latest tag matching something like v1.2.3.4
-function(get_git_version var dir)
+function(get_git_version var_numeric var dir)
if(NOT DEFINED ${var})
- set(version "0.0")
+ set(version_numeric "0.0.0")
+ set(version "0.0.0-unknown")
if(GIT_EXECUTABLE)
set(command
"${GIT_EXECUTABLE}"
-C
"${dir}"
describe
- --abbrev=0
--tags
--match
v*
@@ -19,19 +19,20 @@ function(get_git_version var dir)
COMMAND ${command}
RESULT_VARIABLE result
OUTPUT_STRIP_TRAILING_WHITESPACE
- OUTPUT_VARIABLE version
+ OUTPUT_VARIABLE version_out
)
if(NOT result EQUAL 0)
message(
WARNING
"Getting ${var} failed: ${command} returned ${result}"
)
- elseif("${version}" MATCHES "^v([0-9]+(\.[0-9]+)*).*")
+ elseif("${version_out}" MATCHES "^v(([0-9]+(\\.[0-9]+)*).*)")
set(version "${CMAKE_MATCH_1}")
+ set(version_numeric "${CMAKE_MATCH_2}")
else()
message(
WARNING
- "Couldn't parse numeric version (like v1.2.3) from ${version}"
+ "Couldn't parse version (like v1.2.3 or v1.2.3-foo) from ${version_out}"
)
endif()
else()
@@ -42,6 +43,11 @@ function(get_git_version var dir)
endif()
endif()
+ set(${var_numeric}
+ ${version_numeric}
+ CACHE STRING
+ "The project version numeric part, detected using git if available"
+ )
set(${var}
${version}
CACHE STRING