summaryrefslogtreecommitdiffstats
path: root/cmake/FindWrapOpenSSL.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/FindWrapOpenSSL.cmake')
-rw-r--r--cmake/FindWrapOpenSSL.cmake25
1 files changed, 23 insertions, 2 deletions
diff --git a/cmake/FindWrapOpenSSL.cmake b/cmake/FindWrapOpenSSL.cmake
index 6e80862258..a4341271fe 100644
--- a/cmake/FindWrapOpenSSL.cmake
+++ b/cmake/FindWrapOpenSSL.cmake
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
# We can't create the same interface imported target multiple times, CMake will complain if we do
# that. This can happen if the find_package call is done in multiple different subdirectories.
if(TARGET WrapOpenSSL::WrapOpenSSL)
@@ -10,7 +13,19 @@ set(WrapOpenSSL_FOUND OFF)
# Reuse logic from the headers find script.
find_package(WrapOpenSSLHeaders ${WrapOpenSSL_FIND_VERSION})
-if(OpenSSL_FOUND)
+if(TARGET OpenSSL::SSL)
+ if(WIN32)
+ get_target_property(libType OpenSSL::Crypto TYPE)
+ if(libType STREQUAL "ALIAS")
+ get_target_property(writableLib OpenSSL::Crypto ALIASED_TARGET)
+ else()
+ set(writableLib OpenSSL::Crypto)
+ endif()
+ set_property(TARGET ${writableLib} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ws2_32 crypt32)
+ unset(libType)
+ unset(writableLib)
+ endif()
+
set(WrapOpenSSL_FOUND ON)
add_library(WrapOpenSSL::WrapOpenSSL INTERFACE IMPORTED)
@@ -18,4 +33,10 @@ if(OpenSSL_FOUND)
endif()
include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(WrapOpenSSL DEFAULT_MSG WrapOpenSSL_FOUND)
+find_package_handle_standard_args(WrapOpenSSL
+ REQUIRED_VARS
+ OPENSSL_CRYPTO_LIBRARY
+ OPENSSL_INCLUDE_DIR
+ VERSION_VAR
+ OPENSSL_VERSION
+)