diff --git a/CMakeLists.txt b/CMakeLists.txt index 05c747ae..3e95f48f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -177,8 +177,6 @@ if(MINGW) list(REMOVE_ITEM CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES ${DEFLIB}) endif() -set(ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) - if(STATIC) if(MSVC) set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .dll.a .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 70763caf..33e843e6 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -76,11 +76,12 @@ endif() find_package(Unbound) if(NOT UNBOUND_INCLUDE_DIR OR STATIC) - # We want unbound config tests to be independent of changes made to this setting. - set(CURRENT_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) - set(CMAKE_FIND_LIBRARY_SUFFIXES ${ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}) + # NOTE: If STATIC is true, CMAKE_FIND_LIBRARY_SUFFIXES has been reordered. + # unbound has config tests which used OpenSSL libraries, so -ldl may need to + # be set in this case. + # The unbound CMakeLists.txt can set it, since it's also needed for the + # static OpenSSL libraries set up there after with target_link_libraries. add_subdirectory(unbound) - set(CMAKE_FIND_LIBRARY_SUFFIXES ${CURRENT_CMAKE_FIND_LIBRARY_SUFFIXES}) set(UNBOUND_STATIC true PARENT_SCOPE) set(UNBOUND_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/unbound/libunbound" PARENT_SCOPE) diff --git a/external/unbound/CMakeLists.txt b/external/unbound/CMakeLists.txt index 839b21c7..0dd5d6bc 100644 --- a/external/unbound/CMakeLists.txt +++ b/external/unbound/CMakeLists.txt @@ -40,6 +40,12 @@ if (APPLE) endif() find_package(OpenSSL REQUIRED) +if(STATIC) + if(UNIX) + set(OPENSSL_LIBRARIES "${OPENSSL_LIBRARIES};${CMAKE_DL_LIBS}") + endif() +endif() + find_package(Threads) include(configure_checks.cmake)