|
|
@@ -112,11 +112,31 @@ The following variables may be set to control search behavior:
|
|
|
#]=======================================================================]
|
|
|
|
|
|
macro(_OpenSSL_test_and_find_dependencies ssl_library crypto_library)
|
|
|
+ unset(_OpenSSL_extra_static_deps)
|
|
|
if((CMAKE_SYSTEM_NAME STREQUAL "Linux") AND
|
|
|
(("${ssl_library}" MATCHES "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$") OR
|
|
|
("${crypto_library}" MATCHES "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$")))
|
|
|
set(_OpenSSL_has_dependencies TRUE)
|
|
|
- find_package(Threads)
|
|
|
+ unset(_OpenSSL_has_dependency_zlib)
|
|
|
+ if(_OPENSSL_LIBRARIES)
|
|
|
+ unset(_OpenSSL_has_dependency_dl)
|
|
|
+ foreach(_OPENSSL_DEP_LIB IN LISTS _OPENSSL_LIBRARIES)
|
|
|
+ if (_OPENSSL_DEP_LIB STREQUAL "ssl" OR _OPENSSL_DEP_LIB STREQUAL "crypto")
|
|
|
+ # ignoring: these are the targets
|
|
|
+ elseif(_OPENSSL_DEP_LIB STREQUAL CMAKE_DL_LIBS)
|
|
|
+ set(_OpenSSL_has_dependency_dl TRUE)
|
|
|
+ elseif(_OPENSSL_DEP_LIB STREQUAL "z")
|
|
|
+ find_package(ZLIB)
|
|
|
+ set(_OpenSSL_has_dependency_zlib TRUE)
|
|
|
+ else()
|
|
|
+ list(APPEND _OpenSSL_extra_static_deps "${_OPENSSL_DEP_LIB}")
|
|
|
+ endif()
|
|
|
+ endforeach()
|
|
|
+ unset(_OPENSSL_DEP_LIB)
|
|
|
+ else()
|
|
|
+ set(_OpenSSL_has_dependency_dl TRUE)
|
|
|
+ find_package(Threads)
|
|
|
+ endif()
|
|
|
else()
|
|
|
set(_OpenSSL_has_dependencies FALSE)
|
|
|
endif()
|
|
|
@@ -126,14 +146,25 @@ function(_OpenSSL_add_dependencies libraries_var)
|
|
|
if(CMAKE_THREAD_LIBS_INIT)
|
|
|
list(APPEND ${libraries_var} ${CMAKE_THREAD_LIBS_INIT})
|
|
|
endif()
|
|
|
- list(APPEND ${libraries_var} ${CMAKE_DL_LIBS})
|
|
|
+ if(_OpenSSL_has_dependency_zlib)
|
|
|
+ list(APPEND ${libraries_var} ${ZLIB_LIBRARY})
|
|
|
+ endif()
|
|
|
+ if(_OpenSSL_has_dependency_dl)
|
|
|
+ list(APPEND ${libraries_var} ${CMAKE_DL_LIBS})
|
|
|
+ endif()
|
|
|
+ list(APPEND ${libraries_var} ${_OpenSSL_extra_static_deps})
|
|
|
set(${libraries_var} ${${libraries_var}} PARENT_SCOPE)
|
|
|
endfunction()
|
|
|
|
|
|
function(_OpenSSL_target_add_dependencies target)
|
|
|
if(_OpenSSL_has_dependencies)
|
|
|
- set_property( TARGET ${target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads )
|
|
|
- set_property( TARGET ${target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${CMAKE_DL_LIBS} )
|
|
|
+ set_property( TARGET ${target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads ${_OpenSSL_extra_static_deps})
|
|
|
+ if(_OpenSSL_has_dependency_dl)
|
|
|
+ set_property( TARGET ${target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${CMAKE_DL_LIBS} )
|
|
|
+ endif()
|
|
|
+ if(_OpenSSL_has_dependency_zlib)
|
|
|
+ set_property( TARGET ${target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ZLIB::ZLIB )
|
|
|
+ endif()
|
|
|
endif()
|
|
|
if(WIN32 AND OPENSSL_USE_STATIC_LIBS)
|
|
|
if(WINCE)
|
|
|
@@ -719,3 +750,6 @@ endif()
|
|
|
|
|
|
unset(_OPENSSL_FIND_PATH_SUFFIX)
|
|
|
unset(_OPENSSL_NAME_POSTFIX)
|
|
|
+unset(_OpenSSL_extra_static_deps)
|
|
|
+unset(_OpenSSL_has_dependency_dl)
|
|
|
+unset(_OpenSSL_has_dependency_zlib)
|