diff options
Diffstat (limited to 'modules/FindOpenSSL.cmake')
| -rw-r--r-- | modules/FindOpenSSL.cmake | 46 | 
1 files changed, 40 insertions, 6 deletions
diff --git a/modules/FindOpenSSL.cmake b/modules/FindOpenSSL.cmake index 0172df83..a1f71cdc 100644 --- a/modules/FindOpenSSL.cmake +++ b/modules/FindOpenSSL.cmake @@ -4,12 +4,37 @@  #  OPENSSL_FOUND - system has the OpenSSL library
  #  OPENSSL_INCLUDE_DIR - the OpenSSL include directory
  #  OPENSSL_LIBRARIES - The libraries needed to use OpenSSL
 -
 +#  OPENSSL_EAY_LIBRARIES - The additional libraries needed to use OpenSSL on windows
  # Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
  #
  # Redistribution and use is allowed according to the terms of the BSD license.
  # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
 +# on win32 we additional need to link to libeay32.lib
 +MACRO(OPENSSL_ADD_LIB_EAY_LIBS)
 +   # /MD and /MDd are the standard values - if somone wants to use
 +   # others, the libnames have to change here too
 +   # use also eay and libeay32 in debug as fallback for openssl < 0.9.8b
 +
 +   FIND_LIBRARY(LIB_EAY_DEBUG NAMES libeay32MDd eay libeay libeay32)
 +   FIND_LIBRARY(LIB_EAY_RELEASE NAMES libeay32MD eay libeay libeay32)
 +
 +   IF(MSVC_IDE)
 +      IF(LIB_EAY_DEBUG AND LIB_EAY_RELEASE)
 +         SET(OPENSSL_EAY_LIBRARIES optimized ${LIB_EAY_RELEASE} debug ${LIB_EAY_DEBUG})
 +      ELSE(LIB_EAY_DEBUG AND LIB_EAY_RELEASE)
 +         MESSAGE(FATAL_ERROR "Could not find the debug and release version of openssl (libeay)")
 +      ENDIF(LIB_EAY_DEBUG AND LIB_EAY_RELEASE)
 +   ELSE(MSVC_IDE)
 +      STRING(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_TOLOWER)
 +      IF(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug)
 +         SET(OPENSSL_EAY_LIBRARIES ${LIB_EAY_DEBUG})
 +      ELSE(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug)
 +         SET(OPENSSL_EAY_LIBRARIES ${LIB_EAY_RELEASE})
 +      ENDIF(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug)
 +   ENDIF(MSVC_IDE)
 +   MARK_AS_ADVANCED(LIB_EAY_DEBUG LIB_EAY_RELEASE)
 +ENDMACRO(OPENSSL_ADD_LIB_EAY_LIBS)
  IF(OPENSSL_LIBRARIES)
     SET(OpenSSL_FIND_QUIETLY TRUE)
 @@ -50,11 +75,20 @@ ELSE(WIN32 AND MSVC)  ENDIF(WIN32 AND MSVC)
 -IF(OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES)
 -   SET(OPENSSL_FOUND TRUE)
 -ELSE(OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES)
 -   SET(OPENSSL_FOUND FALSE)
 -ENDIF (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES)
 +IF(WIN32)
 +   OPENSSL_ADD_LIB_EAY_LIBS()
 +   IF(OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES AND OPENSSL_EAY_LIBRARIES)
 +      SET(OPENSSL_FOUND TRUE)
 +   ELSE(OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES AND OPENSSL_EAY_LIBRARIES)
 +      SET(OPENSSL_FOUND FALSE)
 +   ENDIF (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES AND OPENSSL_EAY_LIBRARIES)
 +ELSE(WIN32)
 +   IF(OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES)
 +      SET(OPENSSL_FOUND TRUE)
 +   ELSE(OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES)
 +      SET(OPENSSL_FOUND FALSE)
 +   ENDIF (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES)
 +ENDIF(WIN32)
  IF (OPENSSL_FOUND)
     IF (NOT OpenSSL_FIND_QUIETLY)
  | 
