version-range.cmake 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. find_package (OpenSSL REQUIRED COMPONENTS Crypto)
  2. # Store version without a possibly trailing letter.
  3. string (REGEX MATCH "^([0-9.]+)" version "${OpenSSL_VERSION}")
  4. # clean-up OpenSSL variables
  5. unset (OPENSSL_INCLUDE_DIR)
  6. unset (OPENSSL_CRYPTO_LIBRARY)
  7. unset (OPENSSL_CRYPTO_LIBRARIES)
  8. unset (OPENSSL_LIBRARIES)
  9. unset (OpenSSL_VERSION)
  10. unset (OpenSSL_FOUND)
  11. ## Specify a range including current OpenSSL version
  12. string (REGEX MATCH "^([0-9]+)" upper_version "${version}")
  13. math (EXPR upper_version "${upper_version} + 1")
  14. find_package (OpenSSL 0.9...${upper_version}.0 COMPONENTS Crypto)
  15. if (NOT OpenSSL_FOUND)
  16. message (FATAL_ERROR "Failed to find OpenSSL with version range 0.9...${upper_version}.0")
  17. endif()
  18. # clean-up OpenSSL variables
  19. unset (OPENSSL_INCLUDE_DIR)
  20. unset (OPENSSL_CRYPTO_LIBRARY)
  21. unset (OPENSSL_CRYPTO_LIBRARIES)
  22. unset (OPENSSL_LIBRARIES)
  23. unset (OpenSSL_VERSION)
  24. unset (OpenSSL_FOUND)
  25. ## Specify a range excluding current OpenSSL version
  26. set (range 0.9...<${version})
  27. find_package (OpenSSL ${range} COMPONENTS Crypto)
  28. if (OpenSSL_FOUND)
  29. message (FATAL_ERROR "Unexpectedly find OpenSSL with version range ${range}")
  30. endif()