summaryrefslogtreecommitdiff
path: root/Modules/FindOpenSSL.cmake
diff options
context:
space:
mode:
authorThijs Wenker <me@thoys.nl>2015-09-01 14:56:36 +0200
committerBrad King <brad.king@kitware.com>2015-09-02 13:47:57 -0400
commit369a8cde378ab97826cf4a6d9ef2053bd70ddc0f (patch)
tree00082fbe6df350d14781d6753530ffcc9c12155d /Modules/FindOpenSSL.cmake
parent72c11e590273d100c49f472afc3a7569b233ff00 (diff)
downloadcmake-369a8cde378ab97826cf4a6d9ef2053bd70ddc0f.tar.gz
FindOpenSSL: Optionally search only for static libraries
Add an OPENSSL_USE_STATIC_LIBS option to enable it. Adjust CMAKE_FIND_LIBRARY_SUFFIXES to only look for .a and .lib files. Also adjust the search paths on Windows for installer locations of static libraries.
Diffstat (limited to 'Modules/FindOpenSSL.cmake')
-rw-r--r--Modules/FindOpenSSL.cmake35
1 files changed, 30 insertions, 5 deletions
diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake
index 434ef58158..d75e8ab258 100644
--- a/Modules/FindOpenSSL.cmake
+++ b/Modules/FindOpenSSL.cmake
@@ -36,6 +36,7 @@
# ^^^^^
#
# Set ``OPENSSL_ROOT_DIR`` to the root directory of an OpenSSL installation.
+# Set ``OPENSSL_USE_STATIC_LIBS`` to ``TRUE`` to look for static libraries.
#=============================================================================
# Copyright 2006-2009 Kitware, Inc.
@@ -57,6 +58,16 @@ if (UNIX)
pkg_check_modules(_OPENSSL QUIET openssl)
endif ()
+# Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
+if(OPENSSL_USE_STATIC_LIBS)
+ set(_openssl_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ if(WIN32)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ else()
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .a )
+ endif()
+endif()
+
if (WIN32)
# http://www.slproweb.com/products/Win32OpenSSL.html
set(_OPENSSL_ROOT_HINTS
@@ -113,12 +124,21 @@ if(WIN32 AND NOT CYGWIN)
# We are using the libraries located in the VC subdir instead of the parent directory eventhough :
# libeay32MD.lib is identical to ../libeay32.lib, and
# ssleay32MD.lib is identical to ../ssleay32.lib
+ # enable OPENSSL_USE_STATIC_LIBS to use the static libs located in lib/VC/static
- set(_OPENSSL_PATH_SUFFIXES
- "lib"
- "VC"
- "lib/VC"
- )
+ if(OPENSSL_USE_STATIC_LIBS)
+ set(_OPENSSL_PATH_SUFFIXES
+ "lib"
+ "VC/static"
+ "lib/VC/static"
+ )
+ else()
+ set(_OPENSSL_PATH_SUFFIXES
+ "lib"
+ "VC"
+ "lib/VC"
+ )
+ endif ()
find_library(LIB_EAY_DEBUG
NAMES
@@ -414,3 +434,8 @@ if(OPENSSL_FOUND)
endif()
endif()
endif()
+
+# Restore the original find library ordering
+if(OPENSSL_USE_STATIC_LIBS)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${_openssl_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
+endif()