Fix openssl detection on win64

This commit is contained in:
Fabio Bas 2016-06-29 09:53:50 +02:00
parent e81a6d497b
commit 204f351a61

View file

@ -5,22 +5,37 @@ if (WIN32)
# Get standard installation paths for OpenSSL under Windows # Get standard installation paths for OpenSSL under Windows
# http://www.slproweb.com/products/Win32OpenSSL.html # http://www.slproweb.com/products/Win32OpenSSL.html
set(_OPENSSL_ROOT_HINTS
${OPENSSL_ROOT_DIR} if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]" # target win64
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]" set(_OPENSSL_ROOT_HINTS
ENV OPENSSL_ROOT_DIR ${OPENSSL_ROOT_DIR}
) "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]"
file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles) ENV OPENSSL_ROOT_DIR
set(_OPENSSL_ROOT_PATHS )
"${_programfiles}/OpenSSL" file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles)
"${_programfiles}/OpenSSL-Win32" set(_OPENSSL_ROOT_PATHS
"${_programfiles}/OpenSSL-Win64" "${_programfiles}/OpenSSL-Win64"
"C:/OpenSSL/" "C:/OpenSSL-Win64/"
"C:/OpenSSL-Win32/" )
"C:/OpenSSL-Win64/" unset(_programfiles)
) else( CMAKE_SIZEOF_VOID_P EQUAL 8 )
unset(_programfiles) # target win32
set(_OPENSSL_ROOT_HINTS
${OPENSSL_ROOT_DIR}
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]"
ENV OPENSSL_ROOT_DIR
)
file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles)
set(_OPENSSL_ROOT_PATHS
"${_programfiles}/OpenSSL"
"${_programfiles}/OpenSSL-Win32"
"C:/OpenSSL/"
"C:/OpenSSL-Win32/"
)
unset(_programfiles)
endif( CMAKE_SIZEOF_VOID_P EQUAL 8 )
else () else ()
set(_OPENSSL_ROOT_HINTS set(_OPENSSL_ROOT_HINTS
${OPENSSL_ROOT_DIR} ${OPENSSL_ROOT_DIR}
@ -33,6 +48,7 @@ set(_OPENSSL_ROOT_HINTS_AND_PATHS
PATHS ${_OPENSSL_ROOT_PATHS} PATHS ${_OPENSSL_ROOT_PATHS}
) )
# Even if the dll is 64bit, it's still suffixed as *32.dll
FIND_FILE(WIN32SSLRUNTIME_LIBEAY NAMES libeay32.dll ${_OPENSSL_ROOT_HINTS_AND_PATHS}) FIND_FILE(WIN32SSLRUNTIME_LIBEAY NAMES libeay32.dll ${_OPENSSL_ROOT_HINTS_AND_PATHS})
FIND_FILE(WIN32SSLRUNTIME_SSLEAY NAMES ssleay32.dll ${_OPENSSL_ROOT_HINTS_AND_PATHS}) FIND_FILE(WIN32SSLRUNTIME_SSLEAY NAMES ssleay32.dll ${_OPENSSL_ROOT_HINTS_AND_PATHS})