summaryrefslogtreecommitdiffstats
path: root/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@gmail.com>2020-09-13 14:32:32 (GMT)
committerMarc Chevrier <marc.chevrier@gmail.com>2020-09-23 10:52:25 (GMT)
commit5b3356263cf8f00c79c25aa9e3ac71ffd8cc7e7e (patch)
treea219a6ba773248d05b8674c665addb9854593440 /Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
parent6bfc442fde18f5544d7e7333d12701050a765535 (diff)
downloadCMake-5b3356263cf8f00c79c25aa9e3ac71ffd8cc7e7e.zip
CMake-5b3356263cf8f00c79c25aa9e3ac71ffd8cc7e7e.tar.gz
CMake-5b3356263cf8f00c79c25aa9e3ac71ffd8cc7e7e.tar.bz2
CMakePackageConfigHelpers: Add version range support
Diffstat (limited to 'Modules/BasicConfigVersion-AnyNewerVersion.cmake.in')
-rw-r--r--Modules/BasicConfigVersion-AnyNewerVersion.cmake.in21
1 files changed, 16 insertions, 5 deletions
diff --git a/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in b/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
index a6e5fda..46b8b2a 100644
--- a/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
+++ b/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
@@ -9,12 +9,23 @@
set(PACKAGE_VERSION "@CVF_VERSION@")
-if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
- set(PACKAGE_VERSION_COMPATIBLE FALSE)
+if (PACKAGE_FIND_VERSION_RANGE)
+ # Package version must be in the requested version range
+ if ((PACKAGE_FIND_VERSION_RANGE_MIN STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MIN)
+ OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_GREATER PACKAGE_FIND_VERSION_MAX)
+ OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_GREATER_EQUAL PACKAGE_FIND_VERSION_MAX)))
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+ else()
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ endif()
else()
- set(PACKAGE_VERSION_COMPATIBLE TRUE)
- if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
- set(PACKAGE_VERSION_EXACT TRUE)
+ if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+ else()
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif()
endif()
endif()