summaryrefslogtreecommitdiffstats
path: root/Modules/BasicConfigVersion-ExactVersion.cmake.in
diff options
context:
space:
mode:
authorRobert Maynard <rmaynard@nvidia.com>2021-05-27 18:14:49 (GMT)
committerRobert Maynard <rmaynard@nvidia.com>2021-05-27 19:18:37 (GMT)
commite609afeb5f4385755a6d0f2fdb45fcdfb0a01b7a (patch)
tree375cfa4058b154ec4f5673310e460aa728e1175f /Modules/BasicConfigVersion-ExactVersion.cmake.in
parentc5657a2fe42a0de7a5724507888f9f6f1afff8ea (diff)
downloadCMake-e609afeb5f4385755a6d0f2fdb45fcdfb0a01b7a.zip
CMake-e609afeb5f4385755a6d0f2fdb45fcdfb0a01b7a.tar.gz
CMake-e609afeb5f4385755a6d0f2fdb45fcdfb0a01b7a.tar.bz2
WriteBasicConfigVersion supports version strings such as 21.07.04
Fixes #22207
Diffstat (limited to 'Modules/BasicConfigVersion-ExactVersion.cmake.in')
-rw-r--r--Modules/BasicConfigVersion-ExactVersion.cmake.in37
1 files changed, 33 insertions, 4 deletions
diff --git a/Modules/BasicConfigVersion-ExactVersion.cmake.in b/Modules/BasicConfigVersion-ExactVersion.cmake.in
index 3507a22..c8d2695 100644
--- a/Modules/BasicConfigVersion-ExactVersion.cmake.in
+++ b/Modules/BasicConfigVersion-ExactVersion.cmake.in
@@ -18,14 +18,43 @@ endif()
set(PACKAGE_VERSION "@CVF_VERSION@")
-if("@CVF_VERSION@" MATCHES "^([0-9]+\\.[0-9]+\\.[0-9]+)\\.") # strip the tweak version
- set(CVF_VERSION_NO_TWEAK "${CMAKE_MATCH_1}")
+if("@CVF_VERSION@" MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)") # strip the tweak version
+ set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ set(CVF_VERSION_MINOR "${CMAKE_MATCH_2}")
+ set(CVF_VERSION_PATCH "${CMAKE_MATCH_3}")
+
+ if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
+ string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
+ endif()
+ if(NOT CVF_VERSION_MINOR VERSION_EQUAL 0)
+ string(REGEX REPLACE "^0+" "" CVF_VERSION_MINOR "${CVF_VERSION_MINOR}")
+ endif()
+ if(NOT CVF_VERSION_PATCH VERSION_EQUAL 0)
+ string(REGEX REPLACE "^0+" "" CVF_VERSION_PATCH "${CVF_VERSION_PATCH}")
+ endif()
+
+ set(CVF_VERSION_NO_TWEAK "${CVF_VERSION_MAJOR}.${CVF_VERSION_MINOR}.${CVF_VERSION_PATCH}")
else()
set(CVF_VERSION_NO_TWEAK "@CVF_VERSION@")
endif()
-if(PACKAGE_FIND_VERSION MATCHES "^([0-9]+\\.[0-9]+\\.[0-9]+)\\.") # strip the tweak version
- set(REQUESTED_VERSION_NO_TWEAK "${CMAKE_MATCH_1}")
+if(PACKAGE_FIND_VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)") # strip the tweak version
+ set(REQUESTED_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ set(REQUESTED_VERSION_MINOR "${CMAKE_MATCH_2}")
+ set(REQUESTED_VERSION_PATCH "${CMAKE_MATCH_3}")
+
+ if(NOT REQUESTED_VERSION_MAJOR VERSION_EQUAL 0)
+ string(REGEX REPLACE "^0+" "" REQUESTED_VERSION_MAJOR "${REQUESTED_VERSION_MAJOR}")
+ endif()
+ if(NOT REQUESTED_VERSION_MINOR VERSION_EQUAL 0)
+ string(REGEX REPLACE "^0+" "" REQUESTED_VERSION_MINOR "${REQUESTED_VERSION_MINOR}")
+ endif()
+ if(NOT REQUESTED_VERSION_PATCH VERSION_EQUAL 0)
+ string(REGEX REPLACE "^0+" "" REQUESTED_VERSION_PATCH "${REQUESTED_VERSION_PATCH}")
+ endif()
+
+ set(REQUESTED_VERSION_NO_TWEAK
+ "${REQUESTED_VERSION_MAJOR}.${REQUESTED_VERSION_MINOR}.${REQUESTED_VERSION_PATCH}")
else()
set(REQUESTED_VERSION_NO_TWEAK "${PACKAGE_FIND_VERSION}")
endif()