summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Murzeau <amubtdx@outlook.fr>2016-08-29 20:57:32 +0000
committerBrad King <brad.king@kitware.com>2016-08-30 10:51:25 -0400
commited1758f8eb58a4e52acf0f3885f82403814f5ffd (patch)
tree965ee256fcc2ea0e2ed9952e453400da1975512a
parente3a4c2e02ceacd302e8bc6a7dc1bc02b29ab2cfc (diff)
downloadcmake-ed1758f8eb58a4e52acf0f3885f82403814f5ffd.tar.gz
FindOpenSSL: Fix detection of OpenSSL 1.1 Win32/64
Since OpenSSL 1.1.0, Windows binaries are libcrypto and libssl instead of the old names libeay32 and ssleay32. When using MSVC, FindOpenSSL was searching for the old lib names only so this add the new names to be able to find OpenSSL 1.1.0 libraries. For example, the files in lib directory of OpenSSL 1.1.0 Win64 : - libcrypto.lib - libssl.lib - VC/libcrypto64MD.lib - VC/libcrypto64MDd.lib - VC/libcrypto64MT.lib - VC/libcrypto64MTd.lib - VC/libssl64MD.lib - VC/libssl64MDd.lib - VC/libssl64MT.lib - VC/libssl64MTd.lib 32 bits OpenSSL has the same files with "32" instead of "64" for files in VC directory. MinGW still works and use lib/libcrypto.lib and lib/libssl.lib. This patch also add libssl and libcrypto for other windows compilers too (like Intel).
-rw-r--r--Modules/FindOpenSSL.cmake17
1 files changed, 17 insertions, 0 deletions
diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake
index 10b62ffe05..7ddd7830d7 100644
--- a/Modules/FindOpenSSL.cmake
+++ b/Modules/FindOpenSSL.cmake
@@ -133,6 +133,13 @@ if(WIN32 AND NOT CYGWIN)
set(_OPENSSL_MSVC_RT_MODE "MD")
endif ()
+ # Since OpenSSL 1.1, lib names are like libcrypto32MTd.lib and libssl32MTd.lib
+ if( "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8" )
+ set(_OPENSSL_MSVC_ARCH_SUFFIX "64")
+ else()
+ set(_OPENSSL_MSVC_ARCH_SUFFIX "32")
+ endif()
+
if(OPENSSL_USE_STATIC_LIBS)
set(_OPENSSL_PATH_SUFFIXES
"lib"
@@ -149,6 +156,8 @@ if(WIN32 AND NOT CYGWIN)
find_library(LIB_EAY_DEBUG
NAMES
+ libcrypto${_OPENSSL_MSVC_ARCH_SUFFIX}${_OPENSSL_MSVC_RT_MODE}d
+ libcryptod
libeay32${_OPENSSL_MSVC_RT_MODE}d
libeay32d
NAMES_PER_DIR
@@ -159,6 +168,8 @@ if(WIN32 AND NOT CYGWIN)
find_library(LIB_EAY_RELEASE
NAMES
+ libcrypto${_OPENSSL_MSVC_ARCH_SUFFIX}${_OPENSSL_MSVC_RT_MODE}
+ libcrypto
libeay32${_OPENSSL_MSVC_RT_MODE}
libeay32
NAMES_PER_DIR
@@ -169,6 +180,8 @@ if(WIN32 AND NOT CYGWIN)
find_library(SSL_EAY_DEBUG
NAMES
+ libssl${_OPENSSL_MSVC_ARCH_SUFFIX}${_OPENSSL_MSVC_RT_MODE}d
+ libssld
ssleay32${_OPENSSL_MSVC_RT_MODE}d
ssleay32d
NAMES_PER_DIR
@@ -179,6 +192,8 @@ if(WIN32 AND NOT CYGWIN)
find_library(SSL_EAY_RELEASE
NAMES
+ libssl${_OPENSSL_MSVC_ARCH_SUFFIX}${_OPENSSL_MSVC_RT_MODE}
+ libssl
ssleay32${_OPENSSL_MSVC_RT_MODE}
ssleay32
ssl
@@ -236,6 +251,7 @@ if(WIN32 AND NOT CYGWIN)
# Not sure what to pick for -say- intel, let's use the toplevel ones and hope someone report issues:
find_library(LIB_EAY
NAMES
+ libcrypto
libeay32
NAMES_PER_DIR
${_OPENSSL_ROOT_HINTS_AND_PATHS}
@@ -247,6 +263,7 @@ if(WIN32 AND NOT CYGWIN)
find_library(SSL_EAY
NAMES
+ libssl
ssleay32
NAMES_PER_DIR
${_OPENSSL_ROOT_HINTS_AND_PATHS}