summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/FindOpenSSL/version-range.cmake
diff options
context:
space:
mode:
authorDeniz Bahadir <dbahadir@benocs.com>2021-01-29 15:33:23 (GMT)
committerDeniz Bahadir <dbahadir@benocs.com>2021-02-01 11:27:05 (GMT)
commitbc00cf93009607d53daf56e2e3389ac7b3e6a846 (patch)
tree953cbe901c6b6b0b622cdb3b356ed2bb99b8c113 /Tests/RunCMake/FindOpenSSL/version-range.cmake
parentc5691f03e5626f30c432d325ab75117ad1e98bd8 (diff)
downloadCMake-bc00cf93009607d53daf56e2e3389ac7b3e6a846.zip
CMake-bc00cf93009607d53daf56e2e3389ac7b3e6a846.tar.gz
CMake-bc00cf93009607d53daf56e2e3389ac7b3e6a846.tar.bz2
FindOpenSSL: Add support for version-range
Diffstat (limited to 'Tests/RunCMake/FindOpenSSL/version-range.cmake')
-rw-r--r--Tests/RunCMake/FindOpenSSL/version-range.cmake37
1 files changed, 37 insertions, 0 deletions
diff --git a/Tests/RunCMake/FindOpenSSL/version-range.cmake b/Tests/RunCMake/FindOpenSSL/version-range.cmake
new file mode 100644
index 0000000..9390032
--- /dev/null
+++ b/Tests/RunCMake/FindOpenSSL/version-range.cmake
@@ -0,0 +1,37 @@
+cmake_minimum_required (VERSION 3.19...3.20)
+
+find_package (OpenSSL REQUIRED COMPONENTS Crypto)
+# Store version without a possibly trailing letter.
+string (REGEX MATCH "^([0-9.]+)" version "${OPENSSL_VERSION}")
+
+# clean-up OpenSSL variables
+unset (OPENSSL_INCLUDE_DIR)
+unset (OPENSSL_CRYPTO_LIBRARY)
+unset (OPENSSL_CRYPTO_LIBRARIES)
+unset (OPENSSL_LIBRARIES)
+unset (OPENSSL_VERSION)
+unset (OPENSSL_FOUND)
+
+## Specify a range including current OpenSSL version
+string (REGEX MATCH "^([0-9]+)" upper_version "${version}")
+math (EXPR upper_version "${upper_version} + 1")
+
+find_package (OpenSSL 0.9...${upper_version}.0 COMPONENTS Crypto)
+if (NOT OPENSSL_FOUND)
+ message (FATAL_ERROR "Failed to find OpenSSL with version range 0.9...${upper_version}.0")
+endif()
+
+# clean-up OpenSSL variables
+unset (OPENSSL_INCLUDE_DIR)
+unset (OPENSSL_CRYPTO_LIBRARY)
+unset (OPENSSL_CRYPTO_LIBRARIES)
+unset (OPENSSL_LIBRARIES)
+unset (OPENSSL_VERSION)
+unset (OPENSSL_FOUND)
+
+## Specify a range excluding current OpenSSL version
+set (range 0.9...<${version})
+find_package (OpenSSL ${range} COMPONENTS Crypto)
+if (OPENSSL_FOUND)
+ message (FATAL_ERROR "Unexpectedly find OpenSSL with version range ${range}")
+endif()