Browse Source

FindOpenSSL: Set version variables for version >= 3.0.0

The variables `OPENSSL_VERSION_MAJOR`, `OPENSSL_VERSION_MINOR` and
`OPENSSL_VERSION_FIX` are now set to the correct values when using
OpenSSL version >= 3.0.0, which uses a new format.
James Calo 3 years ago
parent
commit
4a6caef9d5
1 changed files with 8 additions and 0 deletions
  1. 8 0
      Modules/FindOpenSSL.cmake

+ 8 - 0
Modules/FindOpenSSL.cmake

@@ -555,6 +555,14 @@ if(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h")
 
     set(OPENSSL_VERSION "${OPENSSL_VERSION_STR}")
 
+    # Setting OPENSSL_VERSION_MAJOR OPENSSL_VERSION_MINOR and OPENSSL_VERSION_FIX
+    string(REGEX MATCHALL "([0-9])+" OPENSSL_VERSION_NUMBER "${OPENSSL_VERSION}")
+    list(POP_FRONT OPENSSL_VERSION_NUMBER
+      OPENSSL_VERSION_MAJOR
+      OPENSSL_VERSION_MINOR
+      OPENSSL_VERSION_FIX)
+
+    unset(OPENSSL_VERSION_NUMBER)
     unset(OPENSSL_VERSION_STR)
   endif ()
 endif ()