diff options
Diffstat (limited to 'Tests/RunCMake/FindOpenSSL/version-range.cmake')
-rw-r--r-- | Tests/RunCMake/FindOpenSSL/version-range.cmake | 37 |
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() |