diff options
author | Marc Chevrier <marc.chevrier@gmail.com> | 2020-09-13 14:32:32 (GMT) |
---|---|---|
committer | Marc Chevrier <marc.chevrier@gmail.com> | 2020-09-23 10:52:25 (GMT) |
commit | 5b3356263cf8f00c79c25aa9e3ac71ffd8cc7e7e (patch) | |
tree | a219a6ba773248d05b8674c665addb9854593440 /Modules/BasicConfigVersion-AnyNewerVersion.cmake.in | |
parent | 6bfc442fde18f5544d7e7333d12701050a765535 (diff) | |
download | CMake-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.in | 21 |
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() |