aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Ehrlicher <ch.ehrlicher@gmx.de>2007-02-15 17:48:51 +0000
committerChristian Ehrlicher <ch.ehrlicher@gmx.de>2007-02-15 17:48:51 +0000
commitc61ff987f324e2a5c13768dc29713405d3c5f620 (patch)
treeb5c3dfb6cef57fd5268e4ab9fc5b50f79ec59c18
parent826fb3961a1b4a356a365af7167734d4bb346264 (diff)
downloadextra-cmake-modules-c61ff987f324e2a5c13768dc29713405d3c5f620.tar.gz
extra-cmake-modules-c61ff987f324e2a5c13768dc29713405d3c5f620.tar.bz2
add OPENSSL_EAY_LIBRARIES because this lib is sometimes needed on win32
svn path=/trunk/KDE/kdelibs/; revision=633896
-rw-r--r--modules/FindOpenSSL.cmake46
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)