summaryrefslogtreecommitdiffstats
path: root/src/network/configure.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Fix QMAKE_LIBS_OPENSSL/NOLINK entries in qt_lib_network_private.priJoerg Bornemann2021-09-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The file qt_lib_network_private.pri contained the following bit QMAKE_LIBS_OPENSSL/NOLINK = QMAKE_INCDIR_OPENSSL/NOLINK = C:/openssl/include QMAKE_LIBS_OPENSSL = QMAKE_LIBS_OPENSSL_DEBUG = -L"C:/openssl/lib/VC" -llibssl64MDd QMAKE_LIBS_OPENSSL_RELEASE = -L"C:/openssl/lib/VC" -llibssl64MD QMAKE_INCDIR_OPENSSL = C:/openssl/include The /NOLINK entries are nonsense. QMake projects that do QMAKE_USE += openssl/nolink would use QMAKE_INCDIR_OPENSSL and discard the QMAKE_LIBS_OPENSSL* variables. The QMAKE_*_OPENSSL/NOLINK entries stem from the WrapOpenSSLHeaders CMake package, and QMAKE_*_OPENSSL from WrapOpenSSL. It's safe to assume that both packages use the same include paths. Remove the QMAKE_LIB parameter from the qt_find_package(WrapOpenSSLHeaders) call to avoid writing this library into the .pri file. Pick-to: 6.2 Fixes: QTBUG-89562 Change-Id: Ibc20f6f90678eb127db7813eb63c5c3e0bff2268 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Move plugin code from QtNetwork to qtbase/pluginsTimur Pocheptsov2021-04-221-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All TLS (and non-TLS) backends that QSsl classes rely on are now in plugins/tls (as openssl, securetransport, schannel and certonly plugins). For now, I have to disable some tests that were using OpenSSL calls - this to be refactored/re-thought. These include: qsslsocket auto-test (test-case where we work with private keys), qsslkey auto-test (similar to qsslsocket - test-case working with keys using OpenSSL calls). qasn1element moved to plugins too, so its auto-test have to be re-thought. Since now we can have more than one working TLS-backend on a given platform, the presence of OpenSSL also means I force this backend as active before running tests, to make sure features implemented only in OpenSSL-backend are tested. OCSP auto test is disabled for now, since it heavily relies on OpenSSL symbols (to be refactored). [ChangeLog][QtNetwork][QSslSocket] QSslSocket by default prefers 'openssl' backend if it is available. [ChangeLog][QtNetwork][QSslSocket] TLS-backends are not mutually exclusive anymore, depending on a platform, more than one TLS backend can be built. E.g., configuring Qt with -openssl does not prevent SecureTransport or Schannel plugin from being built. Fixes: QTBUG-91928 Change-Id: I4c05e32f10179066bee3a518bdfdd6c4b15320c3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Add Solaris support in cmake buildNiclas Rosenvik2021-04-211-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add SOLARIS cmake platform definition. Add settings for QT_DEFAULT_MKSPEC so that qplatformdefs.h can be found. Solaris has its gssapi symbols in libgss. Solaris supports @ORIGIN. Solaris ld does not support --dynamic-list needed for reduce relocations. Make solaris fail the reduce relocation test. getauxval is specific to GNU libc and some other libc implementations on Linux but sys/auxv.h is not. The bootstrap uses sys/aux.h as the only indication for getauxval. This breaks builds on Solaris, so only make sys/auxv.h an indicator for getauxval on linux or glibc based systems. Solaris uses X11 so add it to the X11_SUPPORTED list. Solaris network libraries for sockets etc are in socket and nsl. ifreq does not have a member ifr_ifindex on Solaris, it uses ifr_index. Add test to check if ifr_index is a member of ifreq. The first struct in the in_addr union on solaris is defined as four uint8_t, therefore four arguments are needed for its initializer list. Change-Id: Ieed4c1bbac8559a7ae1db9c4e1e91f609f150270 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Use newlines more consistently in generate compile-test codeEdward Welbourne2021-02-151-21/+13
| | | | | | | | | | | The generated code contained many repeated blank lines. Most main()s were preceded by one, but not all. Only include blank lines for actual empty entries in lists, where configure.json specified them, plus one before main if anything else precedes it. Change-Id: I6e6c34940e08712a1aa848a3c9ad1b0fb5806d77 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Simplify test-snippets in configure.cmakeEdward Welbourne2021-02-151-18/+9
| | | | | | | | | The main(void) signature obviates the need for unused parameters and has existed since (at least) C89; so use that instead of the old-fashioned argc/argv arguments we don't use in any of these tests. Change-Id: Ibfe850a1fce378673c9781011475ea623fd75ad4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* NetworkListManager based backend for QNetworkInformationMårten Nordheim2021-02-021-4/+4
| | | | | | | | | | For Windows. Based on the code I wrote for QNetworkStatusMonitor. It also renames the netlistmgr feature, avoiding the abbreviation. Locally my MinGW fails the networklistmanager feature test so it may not be supported on MinGW, likely leaving it without a backend at all. Change-Id: I13bbe4127edc2a9c0bb91602c95f1cb206a85a69 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Remove the 'corewlan' featureAlexey Edelev2021-02-011-10/+2
| | | | | | | | | | | | | Remove 'corewlan' feature from the network related configure.json. The 'bearer' component was removed in the Network module. It was the only consumer of the 'corewlan' feature. There are no plans, yet, to use CoreWLAN framework in the future. Pick-to: 6.0 Fixes: QTBUG-90672 Change-Id: I1afb7b04ea75f8cb09cb570d820d16f54a130cf9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Fix QMAKE_LIB of WrapOpenSSLHeaders libraryJoerg Bornemann2020-11-301-1/+1
| | | | | | | | | | | | | | The correct entry for this lib is 'openssl/nolink', not 'openssl_headers'. In configurejson2cmake's helper.py we already have this information encoded such that the no_link_so_name field of 'openssl' points to 'openssl_headers'. Extend configurejson2cmake to take this into account, and re-generate src/network/configure.cmake. Pick-to: 6.0 Change-Id: I9817ea7722503a373d309b7e6fa201448d403e8d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove obsolete warningsChristophe Giboudeaux2020-11-181-5/+0
| | | | | | | | The libproxy issue was fixed 4 years ago and the related Qt and libproxy bug reports were also closed long ago. Change-Id: I5af18f1eaaffb8d33556ab94ca1759959a2c272d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake Build: Fix CMake configure with -DFEATURE_schannel=ONCristian Adam2020-11-071-3/+4
| | | | | | | | | | When -DFEATURE_schannel=ON, -DFEATURE_ssl=ON, and -DFEATURE_openssl=OFF cmake configuration would fail. Fixes: QTBUG-88126 Change-Id: I7325a6c6bc4b9ff448893c7f05b7f46c34eefc1e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* CMake: Regenerate configure.cmake filesAlexandru Croitor2020-09-151-1/+1
| | | | | | Change-Id: I844e82b4655cf1967b16a7785b4e1ef777e61c22 Reviewed-by: Simon Hausmann <hausmann@gmail.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* CMake: Re-generate configure.cmake filesJoerg Bornemann2020-09-101-2/+1
| | | | | Change-Id: I9c325db8031e14cf2a2cfb49e5080e3043a0811a Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* Remove QFtp sources etc. in favor of alternate distributionMårten Nordheim2020-08-271-8/+0
| | | | | | | | | | | | While we initially wanted to just disable the functionality the way it is currently built forces people to do a full build of Qt just to enable it. Instead of doing this half-measure let's just remove the code completely from QtBase and rather prepare QtNetwork to handle being a plugin that can be compiled at any time. Task-number: QTBUG-80340 Change-Id: I19155c8c167cf932088f01b2a9706d0e7ab792d1 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* CMake: Re-generate src/network/configure.cmakeJoerg Bornemann2020-08-181-1/+1
| | | | | Change-Id: I408ac23156505901194e9aa6f151bac889e432ff Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QDecompressHelper: Add brotli supportMårten Nordheim2020-08-061-0/+9
| | | | | | Task-number: QTBUG-83269 Change-Id: If23b098ee76a4892e4c2c6ce5c635688d8d9138d Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* SSL configure test: Fix confusing warningFriedemann Kleint2020-06-261-2/+2
| | | | | | | | | | | | | | | Remove quote character, fixing: Performing C++ SOURCE FILE Test HAVE_openssl_headers succeeded with the following output: Run Build Command(s) src.cxx 8 88: warning: missing terminating ' character 8 | # error OpenSSL was reported as >= 1.1.1 but is missing required features, possibly it's libressl which is unsupported which makes one think the test failed. Change-Id: I0ac02deee4282ef7c953186b820a31309e82b5e1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Remove winrtOliver Wolff2020-06-061-5/+5
| | | | | | | | | Macros and the await helper function from qfunctions_winrt(_p).h are needed in other Qt modules which use UWP APIs on desktop windows. Task-number: QTBUG-84434 Change-Id: Ice09c11436ad151c17bdccd2c7defadd08c13925 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* CMake: Regenerate rest of configure.cmake filesAlexandru Croitor2020-05-291-6/+6
| | | | | | Change-Id: I17cca57c18f33d4283eb6009ba4c5ebb0c1847c3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* CMake: Generate information about 3rdparty libs in module .pri filesJoerg Bornemann2020-05-191-4/+4
| | | | | | | | | | | | | For modules that are not yet ported to CMake and that use QMAKE_USE += libfoo we need to provide the information about libfoo in the qt_lib_XXX.pri files. Also, we now generate qt_ext_XXX.pri files for bundled 3rdparty libs. Task-number: QTBUG-75666 Change-Id: I9e4b057a197554ecb37c294c0bf09e2a2b3aa053 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Handle finding of OpenSSL headers correctlyAlexandru Croitor2020-04-081-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Coin when provisioning for Android, we download and configure the OpenSSL package, but don't actually build it. This means that find_package(OpenSSL) can find the headers, but not the library, and thus the package is marked as not found. Previously the openssl_headers feature used the result of finding the OpenSSL package, which led to it being disabled in the above described Android case. Introduce 2 new find scripts FindWrapOpenSSL and FindWrapOpenSSLHeaders. FindWrapOpenSSLHeaders wraps FindOpenSSL, and checks if the headers were found, regardless of the OpenSSL_FOUND value, which can be used for implementing the openssl_headers feature. FindWrapOpenSSL uses FindWrapOpenSSLHeaders, and simply wraps the OpenSSL target if available. The find scripts also have to set CMAKE_FIND_ROOT_PATH for Android. Otherwise when someone passes in an OPENSSL_ROOT_DIR, its value will always be prepended to the Android sysroot, causing the package not to be found. Adjust the mapping in helper.py to use the targets created by these find scripts. This also replaces the openssl/nolink target. Adjust the projects and tests to use the new target names. Adjust the compile tests for dtls and oscp to use the WrapOpenSSLHeaders target, so that the features can be enabled even if the library is dlopen-ed (like on Android). Task-number: QTBUG-83371 Change-Id: I738600e5aafef47a57e1db070be40116ca8ab995 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QtNetwork: Delete bearer managementMårten Nordheim2020-04-051-8/+0
| | | | | | | | | | All remaining pieces are gone, configuration included. Relevant CMakeLists and configure.cmake were regenerated. Fixes: QTBUG-76502 Change-Id: I667b5da7e3802830d236d50b5e9190c2ee9c19e2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Get rid of QRegExp usage in QFtpLars Knoll2020-03-311-1/+1
| | | | | | | Change-Id: Ia8743467d5b4537fe324a1278b526eb16bf0f732 Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* cmake: Regenerate projectsAlexandru Croitor2020-03-161-1/+1
| | | | | Change-Id: I0cd4f34b0df0227789805f30f474ff6aa275078f Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* CMake: Regenerate configure.cmake files to get reportsAlexandru Croitor2020-03-091-0/+40
| | | | | Change-Id: Ifa1646c7e471b3eaba552498ee1dc24f6ab864de Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Remove special case handling for OpenSSLLeander Beernaert2020-03-061-2/+50
| | | | | | | | Now that we can generate the library config tests which verify the OpenSSL version, we no longer need these special cases. Change-Id: I8ddccf4ae1c698db9fac391976b3b4b670712582 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-03-031-1/+1
| | | | Change-Id: If36d96c0fef3de5ab6503977501c55c62a2ecc97
* Remove QUrl::topLevelDomainTimur Pocheptsov2020-02-201-0/+5
| | | | | | | | | | And move the actual implementation from corelib/io to network/kernel sub-module. Fixes: QTBUG-80308 Change-Id: I554b05bae3552c68e1e1a405c169366ee19120b2 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Disable FTP support in QNAM by defaultKarsten Heimrich2020-02-171-0/+1
| | | | | | | | | If necessary, the feature still can be enabled with -feature-ftp. Task-number: QTBUG-80339 Change-Id: I7dafaad254d1396f24ac5c339d55c3bedfa97f1c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* Regenerate configure.json files after changesAlexandru Croitor2019-12-031-5/+6
| | | | | | | | | | | | Use all the original non-normalized feature names, and normalize them in CMake land rather than Python. This gives us the necessary original name information for further usage when generating qmake pri and prl files. Change-Id: If9db9028dac6175b8f6971e4b91558d76b8e9296 Reviewed-by: Qt CMake Build Bot Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Post merge fixesLeander Beernaert2019-11-251-22/+1
| | | | | Change-Id: I78d3c9687f99c0a32da04257e297e88ef0b02581 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Regenerate all configure.json filesLeander Beernaert2019-10-211-9/+20
| | | | | Change-Id: Iabd2430adc4877859dc73f4092927a69decf0311 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Regenerate files after dev -> wip/cmake mergeAlexandru Croitor2019-10-141-18/+3
| | | | | | | | | | Note the following bigger things that had to be done: Handle GSS library / feature with a new custom find module. Implement rudimentary support for relocatability (does not currently handle extprefix). Change-Id: Ic6cd27dda7ebca9829f51cb42ea76fff6d1767ef Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge branch 'wip/qt6' into wip/cmakeAlexandru Croitor2019-08-151-0/+29
| | | | Change-Id: I50ac36b8803c296998149e98cc61e38687cdd14b
* CMake: Improve mapping of librariesTobias Hunger2019-05-031-1/+2
| | | | | | | | | | | | | Merge all data related to mapping libraries into one data structure in helper.py. Use that data for everything related to library mapping. This change enables way more features now like e.g. adding find_package calls into generated files. Change-Id: Ibbd2a1063cbeb65277582d434a6a672d62fc170b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* CMake: configurejson2cmake: Do not generate useless OPTIONALsTobias Hunger2019-05-031-2/+0
| | | | | | | | | | Do not set properties of packages to type OPTIONAL. That is the default anyway. Update generator script and generated files. Change-Id: I7a4d043b69c93ce8c2929a2e27ac6a07e4e6d8cc Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Write find_dependency() calls in Qt Module config filesAlexandru Croitor2019-05-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change introduces a new function called qt_find_package() which can take an extra option called PROVIDED_TARGETS, which associates targets with the package that defines those targets. This is done by setting the INTERFACE_QT_PACKAGE_NAME and INTERFACE_QT_PACKAGE_VERSION properties on the imported targets. This information allows us to generate appropriate find_dependency() calls in a module's Config file for third party libraries. For example when an application links against QtCore, it should also link against zlib and atomic libraries. In order to do that, the library locations first have to be found by CMake. This is achieved by embedding find_dependency(ZLIB) and find_dependency(Atomic) in Qt5CoreDependencies.cmake which is included by Qt5CoreConfig.cmake. The latter is picked up when an application project contains find_package(Qt5Core), and thus all linking dependencies are resolved. The information 'which package provides which targets' is contained in the python json2cmake conversion script. The generated output of the script contains qt_find_package() calls that represent that information. The Qt5CoreDependencies.cmake file and which which dependencies it contains is generated at the QtPostProcess stop. Note that for non-static Qt builds, we only need to propagate public 3rd party libraries. For static builds, we need all third party libraries. In order for the INTERFACE_QT_PACKAGE_NAME property to be read in any scope, the targets on which the property is set, have to be GLOBAL. Also for applications and other modules to find all required third party libraries, we have to install all our custom Find modules, and make sure they define INTERFACE IMPORTED libraries, and not just IMPORTED libraries. Change-Id: I694d6e32d05b96d5e241df0156fc79d0029426aa Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Merge commit 'dev' into 'wip/cmake-merge'Tobias Hunger2019-04-161-9/+95
| | | | Change-Id: I176c40d031be26a1dd1cf08843e448a660598783
* Regenerate cmake files from configure.json filesAlexandru Croitor2019-03-181-3/+3
| | | | | | | | | The new files represent the json features more closely. This helps with various build issues as well, like dynamicgl feature not being present before. Change-Id: I433592f48e0550700226a635492a3ce15af743c1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* configurejson2cmake.py: openssl -> OpenSSL mappingAlbert Astals Cid2019-02-121-1/+1
| | | | | Change-Id: I29480dfbd4f144e3d5620b43419ec46fb866cf4b Reviewed-by: Liang Qi <liang.qi@qt.io>
* cmake: also write FIXME on the configure.cmake for 'use'Albert Astals Cid2019-02-121-4/+8
| | | | | | | Since most of the times it means we need to link with some other stuff Change-Id: I06262d4403225bca7a5e68d47145fefcf6702e5a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* cmake: Add trivial FindLibproxy.cmakeAlbert Astals Cid2019-01-291-3/+3
| | | | | | | And fix link to it Change-Id: Ie4f29a35a83d19ab83933faf3bcd7d62cffa68b8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Begin port of qtbase to CMakeSimon Hausmann2018-11-011-0/+265
Done-by: Alexandru Croitor <alexandru.croitor@qt.io> Done-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Done-by: Kevin Funk <kevin.funk@kdab.com> Done-by: Mikhail Svetkin <mikhail.svetkin@qt.io> Done-by: Simon Hausmann <simon.hausmann@qt.io> Done-by: Tobias Hunger <tobias.hunger@qt.io> Done-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Done-by: Volker Krause <volker.krause@kdab.com> Change-Id: Ida4f8bd190f9a4849a1af7b5b7981337a5df5310 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>