From 26dd7fe4edb8ed39ebf12cae874eb89e46ff9067 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 26 May 2023 10:11:11 -0700 Subject: [PATCH] CMake: remove "res_ninit" feature and collapse to just "libresolv" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Testing for "res_ninit" when WrapResolv.cmake has already checked for far more complex functions was pointless. Instead, just accept the library that was found by find_package() as good enough and rename the feature as "libresolv". Amends 4a46ba1209907796f4a14f6feb35ed4d70155d7d and 68b625901f9eb7c34e3d7aa302e1c0a454d3190b. Change-Id: Ib5ce7a497e034ebabb2cfffd1762c0afa2fac6e0 Reviewed-by: MÃ¥rten Nordheim --- src/network/CMakeLists.txt | 4 +-- src/network/configure.cmake | 31 +++++------------------- src/network/kernel/qdnslookup_unix.cpp | 2 +- src/network/kernel/qhostinfo_unix.cpp | 6 ++--- tests/auto/network/kernel/CMakeLists.txt | 2 +- 5 files changed, 13 insertions(+), 32 deletions(-) diff --git a/src/network/CMakeLists.txt b/src/network/CMakeLists.txt index fcd31fe9797..64c9bf59422 100644 --- a/src/network/CMakeLists.txt +++ b/src/network/CMakeLists.txt @@ -213,7 +213,7 @@ qt_internal_extend_target(Network CONDITION APPLE ${FWCFNetwork} ) -qt_internal_extend_target(Network CONDITION QT_FEATURE_dnslookup AND TEST_res_ninit +qt_internal_extend_target(Network CONDITION QT_FEATURE_dnslookup AND QT_FEATURE_libresolv SOURCES kernel/qdnslookup_unix.cpp LIBRARIES @@ -225,7 +225,7 @@ qt_internal_extend_target(Network CONDITION QT_FEATURE_dnslookup AND WIN32 kernel/qdnslookup_win.cpp ) -qt_internal_extend_target(Network CONDITION QT_FEATURE_dnslookup AND NOT TEST_res_ninit AND NOT WIN32 +qt_internal_extend_target(Network CONDITION QT_FEATURE_dnslookup AND NOT QT_FEATURE_libresolv AND NOT WIN32 SOURCES kernel/qdnslookup_dummy.cpp ) diff --git a/src/network/configure.cmake b/src/network/configure.cmake index d0417d6e3af..f24f739ce20 100644 --- a/src/network/configure.cmake +++ b/src/network/configure.cmake @@ -100,25 +100,6 @@ ci.ifa_prefered = ci.ifa_valid = 0; } ") -# res_ninit -qt_config_compile_test(res_ninit - LABEL "res_ninit()" - LIBRARIES - WrapResolv::WrapResolv - CODE -"#include -#include -#include -int main() -{ - res_state state; - res_ninit(state); - res_nclose(state); - return 0; -} -" -) - # res_setserver qt_config_compile_test(res_setservers LABEL "res_setservers()" @@ -240,6 +221,11 @@ qt_feature("ipv6ifname" PUBLIC CONDITION 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 @@ -249,14 +235,9 @@ qt_feature("linux-netlink" PRIVATE LABEL "Linux AF_NETLINK" CONDITION LINUX AND NOT ANDROID AND TEST_linux_netlink ) -qt_feature("res_ninit" PRIVATE - LABEL "res_ninit()" - CONDITION TEST_res_ninit - AUTODETECT UNIX -) qt_feature("res_setservers" PRIVATE LABEL "res_setservers()" - CONDITION QT_FEATURE_res_ninit AND TEST_res_setservers + CONDITION QT_FEATURE_libresolv AND TEST_res_setservers ) qt_feature("securetransport" PUBLIC LABEL "SecureTransport" diff --git a/src/network/kernel/qdnslookup_unix.cpp b/src/network/kernel/qdnslookup_unix.cpp index be8721f8da9..296c7034233 100644 --- a/src/network/kernel/qdnslookup_unix.cpp +++ b/src/network/kernel/qdnslookup_unix.cpp @@ -11,7 +11,7 @@ #include // for setSockAddr #include -QT_REQUIRE_CONFIG(res_ninit); +QT_REQUIRE_CONFIG(libresolv); #include #include diff --git a/src/network/kernel/qhostinfo_unix.cpp b/src/network/kernel/qhostinfo_unix.cpp index 331c5fbf455..42194fb8b31 100644 --- a/src/network/kernel/qhostinfo_unix.cpp +++ b/src/network/kernel/qhostinfo_unix.cpp @@ -49,7 +49,7 @@ static void maybeRefreshResolver() return; #endif -#if QT_CONFIG(res_ninit) +#if QT_CONFIG(libresolv) // OSes known or thought to reach here: AIX, NetBSD, Solaris, // Linux with MUSL (though res_init() does nothing and is unnecessary) @@ -92,7 +92,7 @@ QHostInfo QHostInfoAgent::fromName(const QString &hostName) QString QHostInfo::localDomainName() { -#if QT_CONFIG(res_ninit) +#if QT_CONFIG(libresolv) auto domainNameFromRes = [](res_state r) { QString domainName; if (r->defdname[0]) @@ -111,7 +111,7 @@ QString QHostInfo::localDomainName() // using thread-unsafe version maybeRefreshResolver(); return domainNameFromRes(&_res); -#endif // !QT_CONFIG(res_ninit) +#endif // !QT_CONFIG(libresolv) // nothing worked, try doing it by ourselves: QFile resolvconf; diff --git a/tests/auto/network/kernel/CMakeLists.txt b/tests/auto/network/kernel/CMakeLists.txt index f5760c9b0bf..52928e7aa14 100644 --- a/tests/auto/network/kernel/CMakeLists.txt +++ b/tests/auto/network/kernel/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (C) 2022 The Qt Company Ltd. # SPDX-License-Identifier: BSD-3-Clause -if(WIN32 OR TEST_res_ninit) +if(QT_FEATURE_qdnslookup) add_subdirectory(qdnslookup) add_subdirectory(qdnslookup_appless) endif()