summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix Qt6 renamingBogDan Vatra2020-10-142-5/+11
| | | | | | | Fixes sha: 1907599bfd817e00c7f42b8cb941ebf93a098e7f Change-Id: I20ece75c321835f13a605ae4d56fee1a034ca7c8 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Brush up the basicsortfiltermodel exampleFriedemann Kleint2020-10-141-1/+25
| | | | | | | | - Add a clear button to the line edit - Indicate invalid regular expressions Change-Id: I1dbeaa0f9168224ccb9134c0c1fe281da14dcbce Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use QScroller in the Dir View exampleShawn Rutledge2020-10-143-5/+15
| | | | | | | | | | | We have never had enough examples that show how easy it is to install a QScroller. In this case, one line makes a QTreeView flickable. Pick-to: 5.15 Task-number: QTBUG-86090 Change-Id: Idb8b4709617befb261f3b78d63ddbdaf5ad18d6b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Mark QApplication::fontMetrics as obsoleteVolker Hilsheimer2020-10-142-0/+7
| | | | | | | | | | It returns the QFontMetrics of the desktop widget, so just for the default screen. Any usage of it is probably wrong, esp since code should use QFontMetricsF instead. Change-Id: I0b4b85a74a2c9b6cc023ffda0b2b399f9fc3c1c4 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove QApplication::desktopVolker Hilsheimer2020-10-143-6/+4
| | | | | | | | | | | It's been replaced with QScreen-based APIs. There's some internal code left depending on a QWidget representing a screen, so move the API into QApplicationPrivate until that's cleaned up as well. Change-Id: I851e0901832f2747af3bf2c16a9c4d815598bd08 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add \since 6.0 to new functionVolker Hilsheimer2020-10-141-6/+10
| | | | | | | | Also fix general style of the documentation. Task-number: QTBUG-86479 Change-Id: Ia46bb3ec02d6474dd79b8ac733e0c613abc5e0d8 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Schannel: TLS1.3 supportMårten Nordheim2020-10-143-44/+137
| | | | | | | | | | | | | | | | | | | | | | It's not possible to connect to microsoft.com with Schannel TLS 1.3 for some reason (also tested with Internet Explorer), but other sites work fine. Must be something they have to iron out for later. In my experience this needs a preview release of Windows. One of my machines is opted into the dev channel of Windows where they enabled TLS 1.3 by default, and it works well in my tests except for the part above. On my other machine, after enabling TLS 1.3 through the registry, I fail to complete the handshake with any site. So around March/April next year is when this code would activate for most people. MinGW apparently defines NTDDI_VERSION as the one for Windows Server 2003, so it currently doesn't build the new TLS 1.3 code. In Qt (as a project) we could consider setting this higher, but that's out of scope for this patch! Fixes: QTBUG-81294 Change-Id: If329959c3a30ecbfbb8c0d335cc39ccb6d012890 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* tests: blacklist two tests on Ubuntu 20.04Liang Qi2020-10-142-0/+4
| | | | | | | | | | | | tst_QApplication::sendEventsOnProcessEvents() and tst_QItemDelegate::editorKeyPress() There is some issue with the glib event dispatcher. Task-number: QTBUG-87137 Pick-to: 5.15 Change-Id: I79a983192edef3c3560a4296cc9dea2dfc2ee1b0 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* Get rid of all usage of QApplication:desktopVolker Hilsheimer2020-10-1414-63/+28
| | | | | | | | Use QScreen APIs instead. Change-Id: Ie99af94fe4292223dbb165b3f5c1b74e8fe0498b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Drop qt_is_permutationGiuseppe D'Angelo2020-10-141-23/+0
| | | | | | | | | | It was a workaround until we could depend on C++14's std::is_permutation overload with 4 args. We now can, and the code using it is gone anyhow, so drop it. Change-Id: Ib9af71eeb767c83b1150c482441503288f1987d4 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Document QApplication::desktop as obsoleteVolker Hilsheimer2020-10-141-1/+1
| | | | | | | | | | | | | | | There is no function equivalent in Qt 5.15, but the entire QDesktopWidget class is already documented as obsolete, so this method should implicitly no longer be used in new code. Qt 6 lifts QScreen up to support the various QDesktopWidget use cases, and a follow up will remove this method from Qt 6.0, or at least mark it as deprecated API as well so that it generates warnings when used. Change-Id: I9b205e6d4a636c22a95728695088233c898cbfc4 Pick-to: 5.15 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* CMake: Autodetect Android toolchain file and NDKJoerg Bornemann2020-10-133-18/+34
| | | | | | | | | | | | | | | | | | | | The Android toolchain file is now autodetected from the location of the NDK. The NDK location can be specified by setting the CMake variable ANDROID_NDK_ROOT. Auto-detection of the Android toolchain file is the only purpose of this variable. In recent Android SDK installations the path to the NDK is well-known and can be auto-detected too. If only ANDROID_SDK_ROOT is given, we try to detect ANDROID_NDK_ROOT first and from that the Android toolchain file. Adjust the build instructions in cmake/README.md, and remove the part where we suggest to set some environment variables that are only used to create the cmake call. Task-number: QTBUG-87068 Change-Id: Ia0df5df7651e98979e9cead1cdae7b17ecbc4afb Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Reject overwrites by the same index in QPromise::addResult()Andrei Golubev2020-10-136-14/+244
| | | | | | | | | | | | One can call addResult(value, index) twice and consequently set the value twice by the same index. This seems rather strange and probably should not be allowed. This commit rejects setting results when there's already a valid result by that index. Consequently, this fixes memory leaks caused by N-times-called addResult(..., index) Fixes: QTBUG-86828 Change-Id: I77494f2cb73ce727ffad721cfcdcaa420899eb25 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Remove nodiscard in QPropertyObserverNodeProtector ctorAndrei Golubev2020-10-131-1/+1
| | | | | | | | | Produced error in my GCC 7.5 on Ubuntu 18: error: ‘nodiscard’ attribute applied to ‘QPropertyObserverNodeProtector<<anonymous> >::QPropertyObserverNodeProtector(QPropertyObserver*&)’ with void return type [-Werror=attributes] Q_REQUIRED_RESULT QPropertyObserverNodeProtector(QPropertyObserver *&observer) Change-Id: Ic1f6c4f502bb4d5c764686d5521b92f655592bb2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add a few missing Q_CLANG_QDOC for native interfacesTor Arne Vestbø2020-10-133-4/+4
| | | | | Change-Id: I5dbe2f7e7c03fb0a130b2da373f6f6a642d57575 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Android: add missing new line to androidtestrunner helpAssam Boudjelthia2020-10-131-1/+1
| | | | | Change-Id: Idba54c15af64b8dadcba9fa2125d6aae5e6c6bc9 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* QSslSocket - replace NULL with nullptrTimur Pocheptsov2020-10-131-1/+1
| | | | | | Change-Id: I3af7747f424ef7837c9c3d4af3e5cbd14922aeb6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* doc: Add brief and group for native type conversionsTor Arne Vestbø2020-10-133-101/+175
| | | | | Change-Id: I74608619201bf77e487fb986bf213b349cc22f6a Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* QCborValue: streamline some code with qExchangeGiuseppe D'Angelo2020-10-131-3/+1
| | | | | Change-Id: I79b68173a236ff1f28504a11ff182bdf48b2df0b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Mark the class QPropertyObserverNodeProtector as [[nodiscard]]Lars Knoll2020-10-131-1/+1
| | | | | | | And not its constructor, as GCC at least doesn't like that. Change-Id: I4aada7ca7135dd9c599980640588e7c98d398171 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Loosen the requirements on the container passed to QtConcurrent::map*Sona Kurazyan2020-10-133-5/+3
| | | | | | | | | | | | Using std::begin() and std::end() forces the user to have const begin() and end() member functions being defined for the passed container. This is because std::declval<T>() returns rvalue which forces the compiler to select std::{begin, end}()(const Container &c) overloads and an test for a presence of const {begin, end}() methods. Change-Id: I9d96d9f73891ece53224f1741a1334500f7b35ad Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QObject: simplify part of connection logicFabian Kosmale2020-10-131-16/+3
| | | | | | | | | | | We do not require anymore that the metatypes are declared beforehand, but can instead simply use QMetaType::fromType<T>().id(). This allows us to remove the templates containing the "metatype is declared" validation logic. Change-Id: I0b74c72643a233335689074091a38648f3e4f853 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove timeStep parameter from QAnimationDrive::advanceAnimationVolker Hilsheimer2020-10-134-21/+16
| | | | | | | | | | | | This reverts commit 7544c242cb935b5ff625e54c3facceea535c6ae5, which reverted the first removal of the parameter under the assumption that it caused flakiness in tests. The flakiness was instead caused by changes to the wait functions in QTest, so remove the parameter again. Change-Id: I98154d5d7268375aebbcb09de757e75d9b765c5f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add externConstexpr to MSVC compile optionsUlf Hermann2020-10-132-0/+6
| | | | | | | | We want this in order to be able to export constexpr members. Change-Id: I33ba7964ebee54fe656df983985d8d6fa0b99358 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix detach on bool check of QSharedDataPointerAllan Sandfeld Jensen2020-10-131-0/+1
| | | | | | | | | We have a conversion to T* which would be triggered for a non negated bool check. Pick-to: 5.15 Change-Id: I543c66de6b4da64a3a63ee9a438fab6adcc58052 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qDebug: Avoid implicit QVariant conversionFabian Kosmale2020-10-133-8/+26
| | | | | | | | | | | | | | | | | | | | | | | This commit restricts operator<<(QDebug lhs, QVariant rhs) to only work if rhs is actually of type QVariant (instead of any type convertible to QVariant). This is especially important as a) we check in QMetaType whether (slightly simplified) QDebug{} << std::declval<T>() is valid, and if so, register a function which simply uses the operator. b) In QVariant, we ask the metatype system for the contained types registered debug function and then use it. If a type now does not have its own operator<< for QDebug, but is implicitly convertible to QVariant containing itself, this would lead to an infinite recursion, when trying to use qDebug with that type. The registered function in a) would just convert the type to QVariant, and then ask the QVariant to print itself. Disallowing implicit conversions in qDebug in general was considered (i.e. adding template<typename T> operator<<(T) = delete in QDebug ), but discarded as it breaks too much code relying on conversions. Fixes: QTBUG-87122 Change-Id: Ib709297670cbc6cc307efd0dfd8e5b0279df9414 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* CMake: Rename qt6_quick_compiler_process_resources to be internalAlexandru Croitor2020-10-121-1/+1
| | | | | | Task-number: QTBUG-86827 Change-Id: I9d97b53a8c85e0c488be312c8894a1d73397eb13 Reviewed-by: Simon Hausmann <hausmann@gmail.com>
* Minor refinements in QLocaleEdward Welbourne2020-10-121-12/+9
| | | | | | | | | | A loop's condition could be simplified. Use std::size() rather than sizeof()/sizeof(). Clarify two comments. Change-Id: Ideba2e0e1ba9c9656297aefb0a375cc122ee8626 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Eliminate QLocaleId::fromIds() in favor of {...} constructionEdward Welbourne2020-10-122-23/+14
| | | | | | | | It's a value type, we don't need a pseudo-constructor to bypass constructors. Change-Id: Ic4774c82e43ab7e2c54ac743026ce087e34c150f Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Mark QLocale's Language, Country and Script enums as ushortEdward Welbourne2020-10-122-4/+4
| | | | | | | | | | The code pervasively presumes their values can be held in a ushort, so make sure the compiler knows we expect that to work (and doesn't complain about narrowing when we do convert them to ushort). Change-Id: Idde7be6cceee8a6dae333c5b1d5a0120fec32e4a Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* rhi: Add missing \internal doc commandsTor Arne Vestbø2020-10-121-0/+3
| | | | | | Pick-to: 5.15 Change-Id: I09a69a04c6fcd406602e797cbeec59216fecd5d8 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Exclude all modifiers as candidates for shortcutsTor Arne Vestbø2020-10-121-1/+1
| | | | | | | | | If we're going to limit shortcuts to non-modifiers, we should at least include all of the modifiers, otherwise we'll end up passing through e.g. Key_CapsLock. Change-Id: If11758f85d06f75e9b9c2d2a57d4a4915ff72317 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Remove dead codeLars Knoll2020-10-1214-98/+4
| | | | | | | This code has been deprecated in Qt 5. Change-Id: Ia8e0bc791ac1f43df7124b4f30db3d0bb9966015 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Enable the Android style plugin for the cmake buildLars Knoll2020-10-122-1/+21
| | | | | | Change-Id: Ie6a82c47c92067fb22270891bb81cd75ed3c9212 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QtNetwork: add documentation about porting from Qt 5 to Qt 6Timur Pocheptsov2020-10-121-1/+142
| | | | | | | Fixes: QTBUG-87098 Change-Id: I91e9d644c6491abaa3bdfe2735aff4a43b545da5 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fallback to using the family when doing an exact matchAndy Shaw2020-10-122-6/+38
| | | | | | | | | | If the difference between the families sizes is just 1 where one of them is 0 in size then we can fallback to the family in that case. Pick-to: 5.15 Fixes: QTBUG-87267 Change-Id: I62b25b06c88000b4d7defe91871c07873b1fc792 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* CMake: Fix the -sanitize configure optionJoerg Bornemann2020-10-123-1/+11
| | | | | | | | This needs to map to ECM_ENABLE_SANITIZERS. Fixes: QTBUG-87316 Change-Id: I9e983728af0ba69fd428944e647f0afae8c61772 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Do not run auto-detection in top-level buildsJoerg Bornemann2020-10-121-3/+4
| | | | | | | | | | | The top-level CMakeLists.txt already does that to ensure that QtAutoDetect is included before any project command, meaning before any toolchain file is loaded. Task-number: QTBUG-87309 Change-Id: I60a998bdf999b6f751e4ebec2d13491fb206b132 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Make QtConcurrent docs more readableSona Kurazyan2020-10-123-6/+125
| | | | | | | | | | | | - Replaced 'auto' keyword in function signatures by the actual return type. - Fixed signatures to not include enable_if statements. Change-Id: I7292e8e506fd50d22974a86448fa4e85e8f08dfb Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Eliminate the extra copy in QtConcurrent's blocking methodsSona Kurazyan2020-10-122-32/+32
| | | | | | | | | Use QFuture::takeResult() instead of QFuture::result() for returning the resulting sequence from the blocking methods of QtConcurrent. Change-Id: I0b623ee1ad8bda6789f329dcd63a46acda924539 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Enable some-of the QtConcurrent test casesSona Kurazyan2020-10-122-8/+9
| | | | | | | | | | | QtConcurrent::filtered test-cases for move-only containers were failing to compile, because it is assumed that the passed container should have value_type defined. Change-Id: I3e9e5ebc07704cb98a15b125ae8bd5b5a84d497a Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Temporarily disable QFuture::takeResult() methodSona Kurazyan2020-10-124-25/+48
| | | | | | | | | | | | QFuture::takeResult() currently returns std::vector instead of QList, because QList does not support move-only types. Disable this method until QList is fixed to work with move-only types in Qt 6.1. Also did minor doc-fixes. Change-Id: I87feaf75d9433a3b540edd00039c3e21d6994985 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix build when configuring with -sanitize thread on gccMitch Curtis2020-10-121-1/+1
| | | | | | | | | There is no <sanitizer/tsan_interface.h> header when building with gcc, at least on Ubuntu 18.04.3. Fixes: QTBUG-87317 Change-Id: Ie933f6fa478f11b5062c665007e91be68e31ebe3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* CMake: Allow customization of the generated CMake toolchain fileAlexandru Croitor2020-10-121-0/+19
| | | | | | | | | | | | | | | | | | | | | Provide two customization points: - optionally include a 'qt.toolchain.extra.cmake' file if it exists and is placed next to the main generated toolchain file. This use case is mostly for the Qt installer, so that it can create an extra file with correct installer-provided paths, instead of patching the toolchain file directly. - optionally include a file passed via the command line CMake argument 'QT_TOOLCHAIN_INCLUDE_FILE'. The use case is for application developers that might want to adjust the toolchain file after the modifications done by the Qt installer. These options do not replace the existing QT_CHAINLOAD_TOOLCHAIN_FILE option, which is meant to chainload a platform specific existing toolchain file (like Android or Emscripten). Task-number: QTBUG-87068 Change-Id: I956949840f55742cfbd3bc8fc0bd8c6b3f774d3d Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: Split QtBaseGlobalTargets.cmake into multiple filesAlexandru Croitor2020-10-124-266/+301
| | | | | | | And wrap the various behaviors into separate functions. Change-Id: If940351af34e445de050f2b46301de7080b1555b Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: Implement missing iOS-related configure optionsAlexandru Croitor2020-10-124-12/+16
| | | | | | | | | | | | | | | Detect an iOS build when either an -sdk option is passed or when -xplatform macx-ios-clang is passed as a target mkspec. Now that CMake 3.17 is released, change the default behavior of the iOS build to configure with simulator_and_device set to ON, like it is with qmake. Update the documentation regarding iOS configuration. Change-Id: I91aaf706610b8d3c69f1ad4ba9dadee2b1e5db97 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Rename some additional functions that should be internalAlexandru Croitor2020-10-122-3/+3
| | | | | | | | | Amends e0c62a48b8a826a46a143e57e94b2a0ea73c7cae Task-number: QTBUG-86815 Change-Id: Ic65d8dda1aed390c78408616fb22f38edd2e1dce Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* CMake: Workaround iOS Xcode issue when configuring appAlexandru Croitor2020-10-121-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It appears that CMake's Xcode generator default behavior can't really handle imported object libraries location, which Qt uses extensively (all the qt_add_resource calls). Specifically the project fails to configure with the following error message: The OBJECT library type may not be used for IMPORTED libraries under Xcode with multiple architectures. An issue was filed upstream at https://gitlab.kitware.com/cmake/cmake/-/issues/21276 In the mean time, it looks like it's possible to work around the issue by setting XCODE_EMIT_EFFECTIVE_PLATFORM_NAME global property to OFF. This needs to be done before the very first project() call, so we do it in the generated Qt toolchain file. Note that the workaround only works if the CMake project is configured with a single architecture given to CMAKE_OSX_ARCHITECTURES. If multiple arches are given, it will fail with the same error message. Fixes: QTBUG-87198 Change-Id: I2556ae28b2fc2d9cfe464a5acf9c4fcbaf01b654 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Set some additional info variables in Qt6CoreConfigExtrasAlexandru Croitor2020-10-122-0/+16
| | | | | | | | | | Add info whether Qt was an infix built, and whether the reduce_exports feature was enabled. These variable were set before in Qt5CoreConfigExtras.cmake. Change-Id: Id077763cfffd5ee6f1a7a28d04cf92dc46390c54 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: Introduce Qt6::Startup targetAlexandru Croitor2020-10-127-8/+135
| | | | | | | | | | | | | | | | | | | | | | | | | Add an abstraction over Qt::WinMain (aka qtmain.lib) and iOS's runtime linker entry point (_qt_main_wrapper). The Core target will now link against the Startup target on all platforms, instead of just WinMain on Windows. The creation and linkage interface definition of the Startup target is done at find_package(Qt6Core) time via the private call of _qt_internal_setup_startup_target(). This will add automatic linkage of WinMain to executables marked with the WIN32_EXECUTABLE property on Windows. As well as the addition of the '-Wl,-e,_qt_main_wrapper' linker flag when linking iOS executables. Qt users can opt out of this behavior by either setting the QT_NO_LINK_QTMAIN property or variable. This is in line with Qt 5 behavior. Task-number: QTBUG-87060 Change-Id: I7d5e9f1be0e402cf8e67e6f55bfd285f9e6b04f4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>