summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHannes Mezger <hannes.mezger@ascolab.com>2014-11-28 14:21:53 (GMT)
committerBrad King <brad.king@kitware.com>2014-12-01 14:41:46 (GMT)
commitbe9bec5df2660661984e080dad9ae7561aa1fe83 (patch)
tree0d9b1c1812fde80a1406570ac170f7e469452f74
parent8e75f1d2fa3049ac31f4ebdbc255fca3e6414802 (diff)
downloadCMake-be9bec5df2660661984e080dad9ae7561aa1fe83.zip
CMake-be9bec5df2660661984e080dad9ae7561aa1fe83.tar.gz
CMake-be9bec5df2660661984e080dad9ae7561aa1fe83.tar.bz2
FindOpenSSL: Report crypto and ssl libraries separately
Some applications only need the OpenSSL crypto library and want to avoid linking against the SSL library. Set OPENSSL_CRYPTO_LIBRARY and OPENSSL_SSL_LIBRARY in the code paths that do not need to find them separately, and document them publicly. This allows applications to be more specific when linking against OpenSSL.
-rw-r--r--Help/release/dev/FindOpenSSL-separate-libs.rst7
-rw-r--r--Modules/FindOpenSSL.cmake16
2 files changed, 19 insertions, 4 deletions
diff --git a/Help/release/dev/FindOpenSSL-separate-libs.rst b/Help/release/dev/FindOpenSSL-separate-libs.rst
new file mode 100644
index 0000000..96e3961
--- /dev/null
+++ b/Help/release/dev/FindOpenSSL-separate-libs.rst
@@ -0,0 +1,7 @@
+FindOpenSSL-separate-libs
+-------------------------
+
+* The :module:`FindOpenSSL` module now reports ``crypto`` and ``ssl``
+ libraries separately in ``OPENSSL_CRYPTO_LIBRARY`` and
+ ``OPENSSL_SSL_LIBRARY``, respectively, to allow applications to
+ link to one without the other.
diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake
index 340b417..b2722a6 100644
--- a/Modules/FindOpenSSL.cmake
+++ b/Modules/FindOpenSSL.cmake
@@ -16,10 +16,12 @@
#
# ::
#
-# OPENSSL_FOUND - system has the OpenSSL library
-# OPENSSL_INCLUDE_DIR - the OpenSSL include directory
-# OPENSSL_LIBRARIES - The libraries needed to use OpenSSL
-# OPENSSL_VERSION - This is set to $major.$minor.$revision$path (eg. 0.9.8s)
+# OPENSSL_FOUND - System has the OpenSSL library
+# OPENSSL_INCLUDE_DIR - The OpenSSL include directory
+# OPENSSL_CRYPTO_LIBRARY - The OpenSSL crypto library
+# OPENSSL_SSL_LIBRARY - The OpenSSL SSL library
+# OPENSSL_LIBRARIES - All OpenSSL libraries
+# OPENSSL_VERSION - This is set to $major.$minor.$revision$patch (eg. 0.9.8s)
#=============================================================================
# Copyright 2006-2009 Kitware, Inc.
@@ -153,6 +155,8 @@ if(WIN32 AND NOT CYGWIN)
mark_as_advanced(LIB_EAY_LIBRARY_DEBUG LIB_EAY_LIBRARY_RELEASE
SSL_EAY_LIBRARY_DEBUG SSL_EAY_LIBRARY_RELEASE)
+ set( OPENSSL_SSL_LIBRARY ${SSL_EAY_LIBRARY} )
+ set( OPENSSL_CRYPTO_LIBRARY ${LIB_EAY_LIBRARY} )
set( OPENSSL_LIBRARIES ${SSL_EAY_LIBRARY} ${LIB_EAY_LIBRARY} )
elseif(MINGW)
# same player, for MinGW
@@ -181,6 +185,8 @@ if(WIN32 AND NOT CYGWIN)
)
mark_as_advanced(SSL_EAY LIB_EAY)
+ set( OPENSSL_SSL_LIBRARY ${SSL_EAY} )
+ set( OPENSSL_CRYPTO_LIBRARY ${LIB_EAY} )
set( OPENSSL_LIBRARIES ${SSL_EAY} ${LIB_EAY} )
unset(LIB_EAY_NAMES)
unset(SSL_EAY_NAMES)
@@ -207,6 +213,8 @@ if(WIN32 AND NOT CYGWIN)
)
mark_as_advanced(SSL_EAY LIB_EAY)
+ set( OPENSSL_SSL_LIBRARY ${SSL_EAY} )
+ set( OPENSSL_CRYPTO_LIBRARY ${LIB_EAY} )
set( OPENSSL_LIBRARIES ${SSL_EAY} ${LIB_EAY} )
endif()
else()