diff options
Diffstat (limited to 'cmake/FindWrapOpenSSL.cmake')
-rw-r--r-- | cmake/FindWrapOpenSSL.cmake | 25 |
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 +) |