diff options
Diffstat (limited to 'src/network/configure.cmake')
-rw-r--r-- | src/network/configure.cmake | 146 |
1 files changed, 39 insertions, 107 deletions
diff --git a/src/network/configure.cmake b/src/network/configure.cmake index 0de16ae90b..cda444b873 100644 --- a/src/network/configure.cmake +++ b/src/network/configure.cmake @@ -1,3 +1,6 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + #### Inputs @@ -6,57 +9,10 @@ qt_find_package(WrapBrotli PROVIDED_TARGETS WrapBrotli::WrapBrotliDec MODULE_NAME network QMAKE_LIB brotli) qt_find_package(Libproxy PROVIDED_TARGETS PkgConfig::Libproxy MODULE_NAME network QMAKE_LIB libproxy) -qt_find_package(WrapOpenSSLHeaders PROVIDED_TARGETS WrapOpenSSLHeaders::WrapOpenSSLHeaders MODULE_NAME network) -# openssl_headers -qt_config_compile_test(openssl_headers - LIBRARIES - WrapOpenSSLHeaders::WrapOpenSSLHeaders - CODE -"#include <openssl/ssl.h> -#include <openssl/opensslv.h> -#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER-0 < 0x10101000L -# error OpenSSL >= 1.1.1 is required -#endif -#if !defined(OPENSSL_NO_EC) && !defined(SSL_CTRL_SET_CURVES) -# error OpenSSL was reported as >= 1.1.1 but is missing required features, possibly it is libressl which is unsupported -#endif - -int main(void) -{ - /* BEGIN TEST: */ - /* END TEST: */ - return 0; -} -") - -qt_find_package(WrapOpenSSL PROVIDED_TARGETS WrapOpenSSL::WrapOpenSSL MODULE_NAME network QMAKE_LIB openssl) -# openssl -qt_config_compile_test(openssl - LIBRARIES - WrapOpenSSL::WrapOpenSSL - CODE -"#include <openssl/ssl.h> -#include <openssl/opensslv.h> -#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER-0 < 0x10101000L -# error OpenSSL >= 1.1.1 is required -#endif -#if !defined(OPENSSL_NO_EC) && !defined(SSL_CTRL_SET_CURVES) -# error OpenSSL was reported as >= 1.1.1 but is missing required features, possibly it is libressl which is unsupported -#endif - -int main(void) -{ - /* BEGIN TEST: */ -SSL_free(SSL_new(0)); - /* END TEST: */ - return 0; -} -") - qt_find_package(GSSAPI PROVIDED_TARGETS GSSAPI::GSSAPI MODULE_NAME network QMAKE_LIB gssapi) qt_find_package(GLIB2 OPTIONAL_COMPONENTS GOBJECT PROVIDED_TARGETS GLIB2::GOBJECT MODULE_NAME core QMAKE_LIB gobject) qt_find_package(GLIB2 OPTIONAL_COMPONENTS GIO PROVIDED_TARGETS GLIB2::GIO MODULE_NAME core QMAKE_LIB gio) - +qt_find_package(WrapResolv PROVIDED_TARGETS WrapResolv::WrapResolv MODULE_NAME network QMAKE_LIB libresolv) #### Tests @@ -81,22 +37,6 @@ freeifaddrs(list); "# FIXME: use: unmapped library: network ) -# ifr_index -qt_config_compile_test(ifr_index - LABEL "ifr_index" - CODE -"#include <net/if.h> - -int main(void) -{ - /* BEGIN TEST: */ -struct ifreq req; -req.ifr_index = 0; - /* END TEST: */ - return 0; -} -") - # ipv6ifname qt_config_compile_test(ipv6ifname LABEL "IPv6 ifname" @@ -144,6 +84,25 @@ ci.ifa_prefered = ci.ifa_valid = 0; } ") +# res_setserver +qt_config_compile_test(res_setservers + LABEL "res_setservers()" + LIBRARIES + WrapResolv::WrapResolv + CODE +"#include <sys/types.h> +#include <netinet/in.h> +#include <resolv.h> +int main() +{ + union res_sockaddr_union sa; + res_state s = nullptr; + res_setservers(s, &sa, 1); + return 0; +} +" +) + # sctp qt_config_compile_test(sctp LABEL "SCTP support" @@ -210,6 +169,7 @@ qt_config_compile_test(networklistmanager LABEL "Network List Manager" CODE "#include <netlistmgr.h> +#include <ocidl.h> #include <wrl/client.h> int main(void) @@ -233,18 +193,19 @@ connectionPointContainer->FindConnectionPoint(IID_INetworkConnectionEvents, &con qt_feature("getifaddrs" PUBLIC LABEL "getifaddrs()" - CONDITION TEST_getifaddrs + CONDITION VXWORKS OR UNIX AND NOT QT_FEATURE_linux_netlink AND TEST_getifaddrs ) qt_feature_definition("getifaddrs" "QT_NO_GETIFADDRS" NEGATE VALUE "1") -qt_feature("ifr_index" PRIVATE - LABEL "ifr_index" - CONDITION TEST_ifr_index -) qt_feature("ipv6ifname" PUBLIC LABEL "IPv6 ifname" - CONDITION TEST_ipv6ifname + CONDITION VXWORKS OR UNIX AND NOT QT_FEATURE_linux_netlink AND TEST_ipv6ifname ) qt_feature_definition("ipv6ifname" "QT_NO_IPV6IFNAME" NEGATE VALUE "1") +qt_feature("libresolv" PRIVATE + LABEL "libresolv" + CONDITION WrapResolv_FOUND + AUTODETECT UNIX +) qt_feature("libproxy" PRIVATE LABEL "libproxy" AUTODETECT OFF @@ -254,26 +215,10 @@ qt_feature("linux-netlink" PRIVATE LABEL "Linux AF_NETLINK" CONDITION LINUX AND NOT ANDROID AND TEST_linux_netlink ) -qt_feature("openssl" PRIVATE - LABEL "OpenSSL" - CONDITION QT_FEATURE_openssl_runtime OR QT_FEATURE_openssl_linked - ENABLE false +qt_feature("res_setservers" PRIVATE + LABEL "res_setservers()" + CONDITION QT_FEATURE_libresolv AND TEST_res_setservers ) -qt_feature_definition("openssl" "QT_NO_OPENSSL" NEGATE) -qt_feature_config("openssl" QMAKE_PUBLIC_QT_CONFIG) -qt_feature("openssl-runtime" - AUTODETECT NOT WASM - CONDITION TEST_openssl_headers - ENABLE INPUT_openssl STREQUAL 'yes' OR INPUT_openssl STREQUAL 'runtime' - DISABLE INPUT_openssl STREQUAL 'no' OR INPUT_openssl STREQUAL 'linked' OR INPUT_ssl STREQUAL 'no' -) -qt_feature("openssl-linked" PRIVATE - LABEL " Qt directly linked to OpenSSL" - AUTODETECT OFF - CONDITION TEST_openssl - ENABLE INPUT_openssl STREQUAL 'linked' -) -qt_feature_definition("openssl-linked" "QT_LINKED_OPENSSL") qt_feature("securetransport" PUBLIC LABEL "SecureTransport" CONDITION APPLE @@ -301,11 +246,7 @@ qt_feature("ocsp" PUBLIC SECTION "Networking" LABEL "OCSP-stapling" PURPOSE "Provides OCSP stapling support" - CONDITION QT_FEATURE_opensslv11 AND TEST_ocsp -) -qt_feature("opensslv11" PUBLIC - LABEL "OpenSSL 1.1" - CONDITION QT_FEATURE_openssl + CONDITION QT_FEATURE_openssl AND TEST_ocsp ) qt_feature("sctp" PUBLIC LABEL "SCTP" @@ -374,7 +315,7 @@ qt_feature("dnslookup" PUBLIC SECTION "Networking" LABEL "QDnsLookup" PURPOSE "Provides API for DNS lookups." - CONDITION NOT INTEGRITY + CONDITION QT_FEATURE_thread AND NOT INTEGRITY ) qt_feature("gssapi" PUBLIC SECTION "Networking" @@ -398,8 +339,9 @@ qt_feature("networklistmanager" PRIVATE ) qt_feature("topleveldomain" PUBLIC SECTION "Networking" - LABEL "qTopLevelDomain()" - PURPOSE "Provides support for extracting the top level domain from URLs. If enabled, a binary dump of the Public Suffix List (http://www.publicsuffix.org, Mozilla License) is included. The data is then also used in QNetworkCookieJar::validateCookie." + LABEL "qIsEffectiveTLD()" + PURPOSE "Provides support for checking if a domain is a top level domain. If enabled, a binary dump of the Public Suffix List (http://www.publicsuffix.org, Mozilla License) is included. The data is used in QNetworkCookieJar." + AUTODETECT NOT WASM DISABLE INPUT_publicsuffix STREQUAL "no" ) qt_feature("publicsuffix-qt" PRIVATE @@ -432,9 +374,6 @@ qt_configure_add_summary_entry( ARGS "schannel" CONDITION WIN32 ) -qt_configure_add_summary_entry(ARGS "openssl") -qt_configure_add_summary_entry(ARGS "openssl-linked") -qt_configure_add_summary_entry(ARGS "opensslv11") qt_configure_add_summary_entry(ARGS "dtls") qt_configure_add_summary_entry(ARGS "ocsp") qt_configure_add_summary_entry(ARGS "sctp") @@ -445,10 +384,3 @@ qt_configure_add_summary_entry(ARGS "topleveldomain") qt_configure_add_summary_entry(ARGS "publicsuffix-qt") qt_configure_add_summary_entry(ARGS "publicsuffix-system") qt_configure_end_summary_section() # end of "Qt Network" section -# special case begin -qt_configure_add_report_entry( - TYPE NOTE - MESSAGE "When linking against OpenSSL, you can override the default library names through OPENSSL_LIBS. For example: OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked" - CONDITION NOT ANDROID AND QT_FEATURE_openssl_linked AND ( NOT TEST_openssl.source EQUAL 0 ) AND OPENSSL_ROOT_DIR STREQUAL '' AND INPUT_openssl.libs STREQUAL '' AND INPUT_openssl.libs.debug STREQUAL '' OR FIXME -) -# special case end |