summaryrefslogtreecommitdiffstats
path: root/qmake
Commit message (Collapse)AuthorAgeFilesLines
* qmake: Clear caches before exitingRobert Löhning2021-05-062-1/+5
| | | | | | | | To not scare sanitizers and their users. Change-Id: I51de5d6a5a358b3cf1355aeb6cc826a6ac021243 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* doc: Mention qmake6 as name of qmake executable on LinuxKai Köhne2021-05-051-0/+6
| | | | | | | Task-number: QTBUG-89170 Pick-to: 6.1 Change-Id: I16c86f04b4c34e7099c220cf028ba1cdb20550e9 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Fix "qmake -spec foo" call for cross buildsJoerg Bornemann2021-04-262-12/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a cross built Qt, for example Qt for Android, calling "qmake -spec android-clang" led to an error message: "Could not find qmake spec '-qtconf'." This happened, because: - the qmake in Qt for Android is a wrapper script that calls "qmake -qtconf qt_target.conf -spec android-clang" - the first stage of command line argument handling in qmake garbled the call to "qmake -spec -qtconf qt_target.conf android-clang" We do not modify the order of arguments anymore. Instead, we skip the "-qtconf <file>" arguments in the first argument handling stage that is supposed to determine qmake's modus operandi (like -project or -query). In addition, we need to fix the assignment of QLibraryInfoPrivate::qtconfManualPath which was only done if QMakeGlobals::addCommandLineArguments returned ArgumentsOk. However, this function returns ArgumentUnknown, if it encounters an argument it cannot handle - like the project name. Now, we assign QLibraryInfoPrivate::qtconfManualPath if there was no error detected. Document the return values of addCommandLineArguments. This amends commit 661b586a69740bd9a1791622f8b238d290ebe00d. Pick-to: 6.1 6.0 Fixes: QTBUG-93079 Task-number: QTBUG-85136 Change-Id: I12ec25b17d64c00be2a3904b7c4a975b781500a0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix infinite loop in qmake option parsingJonas Karlsson2021-04-221-3/+4
| | | | | | | | | | If calling 'qmake -qtconf file' an infinite loop occurs. Bug introduced in 661b586a69740bd9a1791622f8b238d290ebe00d Pick-to: 6.1 6.1.0 6.0 Change-Id: I3ccc067570308227b605d700b41b299800aa872a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* qdoc: Name section 'Getting started with qmake'Kai Köhne2021-04-221-5/+5
| | | | | | | | | | Other manuals have a 'Getting started' section too. Better to qualify it further, so that searching in the Index of Qt Creator Help mode or Qt Assistant allows to differentiate between the different products. Pick-to: 6.1 Change-Id: I7cfdba3c3567bdf49d3fe34307576f88c9f20126 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Explicitly set input files for qtpreprocessChristoph Keller2021-04-121-0/+9
| | | | | | | | | | | | This fixes build errors with Xcode 10. Xcode 10 build system (a.k.a "New Build System") needs to know the input files in order to build a correct dependency graph. Especially when a build is not run for the first time and files changed in-between. Task-number: QTBUG-71035 Pick-to: 6.0 6.1 5.15 5.12 Change-Id: If8fbad3a1915add9b35c79131b03cdbe6b7ac06d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Explicitly set output files for qtpreprocessNikolay Avtomonov2021-04-071-1/+7
| | | | | | | | | | | | This fixes build error with XCode 10. XCode 10 build system (a.k.a "New Build System") requires all the files that are generated by scripts and used later on build to be explicitly defined as output files. Task-number: QTBUG-71035 Pick-to: 6.0 6.1 5.15 5.12 Change-Id: Ibec39eee53b0cb3acecf592f1ca53c04b9975cad Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add a way to install versioned hard-links for toolsJoerg Bornemann2021-03-251-0/+1
| | | | | | | | | | | | | | | | | Add the option argument INSTALL_VERSIONED_LINK to qt_internal_add_tool and qt_internal_add_app. For tools/apps with this argument we create an install rule that creates a versioned hard link. For example, for bin/qmake we create bin/qmake6. Note that this only applies to prefix builds. Apply this argument to qmake. The qt_internal_add_app change is necessary for qtdiag and in qttools. Task-number: QTBUG-89170 Change-Id: Id32d6055544c475166f4d854aaeb6292fbb5fbb5 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit c19d957f45fa27f61b5ecc566f8dbc19f12a44c3)
* Fix warning when building qmake with MSVCJoerg Bornemann2021-03-221-0/+1
| | | | | | | | Fix the C4715 warning for 'hostToTargetPathEnum' by marking the qFatal() branch as unreachable. Change-Id: Id065daaffd865e85985b1a8e0ac2eba4a2ff0b1c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Unify QLibraryInfo settingsAlexey Edelev2021-03-174-72/+34
| | | | | | | | | | | Exporting QLibraryInfo internals allows to reuse settings in qmake/qtpath without having to keep its own instance. Also there is no need to check setting groups in QLibraryInfo except the 'Paths' group, since this logic belongs to qmake/qtpaths only. Change-Id: If762defba025ad7f7489f8a86ef5768a8628bd2f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add support for various output formats for QMakePropertyAlexey Edelev2021-03-126-67/+213
| | | | | | | | | Add the ability to select a standard and json output formats of the Qt properties. This patch also improves the encapsulation of QMakeProperty. Change-Id: Ib1d232be1b430ed8456ce65cc98141282e4c3f7f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Move the common qmake sources into a object libraryAlexey Edelev2021-03-113-16/+38
| | | | | | | | | Some qmake sources could be reused by other tools. It makes sense to move such sources to the object library, to avoid additional compilation steps and to simplify the reuse of sources. Change-Id: I9d7bb7624019149d34d29e4b269b4f26b8aec7a4 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove all qmake-related data from q[make]config.cppJoerg Bornemann2021-03-112-5/+0
| | | | | | | | | | | | Now that we're not actually using qmakeconfig.cpp anymore, we can remove it together with all qmake-related information that was written into qconfig.cpp. This also moves the qtConfEntries array back to qlibraryinfo.cpp. Change-Id: I5e57d8c55613332cc3e57b11df4398d46aed259b Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* qmake: Do not read from qmakeconfig.cppJoerg Bornemann2021-03-112-19/+25
| | | | | Change-Id: I6a46c2e817f8dc3f580774aba2db8bfb01f5a403 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Read QLibraryInfo paths directly from QLibraryInfo and not from qmakeconfig.cppJoerg Bornemann2021-03-112-16/+14
| | | | | | Change-Id: I1db1c871ec6b4e572bd36df6aff7a5be8a4a706c Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Pass target and host mkspec as defines to QMakeLibraryInfoJoerg Bornemann2021-03-112-0/+10
| | | | | | Change-Id: If07055286496c507310c0dbb3a06f1a42d643596 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Do not write Sysroot and SysrootifyPrefix into qmakeconfig.cppJoerg Bornemann2021-03-112-28/+46
| | | | | | | | Those have fixed values. Change-Id: I7f1ba8036f43413d3c805f4b419ae79e037343fb Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* qmake: Delegate prefix deduction to QLibraryInfoJoerg Bornemann2021-03-113-22/+2
| | | | | | | | | | Now, that qmake depends on QtCore, we can just ask QLibraryInfo for the prefix instead of calculating it from QT_CONFIGURE_RELATIVE_PREFIX_PATH. Remove that define. Change-Id: I14be298a9d08abf33299e4cdbac55e91af318397 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QMakeLibraryInfo: Move reading of default values into separate functionJoerg Bornemann2021-03-111-21/+31
| | | | | | | | Reduce code duplication. Change-Id: Ic20c124ad664d16552e3cfea8dde465fc0b6066f Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove the platformsSection constant from qconfig.cpp.inJoerg Bornemann2021-03-111-1/+1
| | | | | | | | | This is not configurable and doesn't have to be in the generated q[make]config.cpp files. Change-Id: If294d735800a3b5c6b3e269abdd86df401cf4864 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add the 'FEATURE_qmake' featureAlexey Edelev2021-03-042-14/+17
| | | | | | | | Add a conditional build of the qmake. Task-number: QTBUG-89369 Change-Id: I8d7968ffb20ea31df2f85fff055e0d131ed06a36 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Generate information about user-facing applications in build dirJoerg Bornemann2021-03-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When packaging different Qt versions for Linux distributions (or any distribution with a common bin dir), Qt tools cannot be installed to /usr/bin, because the executable names of the different Qt versions clash. To solve this conflict, our recommendation is to install Qt's tools to /usr/lib/qt6/bin and to create versioned symlinks to user-facing tools in /usr/bin. User-facing tools are tools that are supposed to be started manually by the user. They are marked in Qt's build system. Distro package maintainers can now configure with -DCMAKE_INSTALL_PREFIX=/usr -DINSTALL_BINDIR=/usr/lib/qt6/bin -DINSTALL_PUBLICBINDIR=/usr/bin and will find a file called user_facing_tool_links.txt in the build directory after the cmake run. Nothing will be installed to INSTALL_PUBLICBINDIR. Each line of user_facing_tool_links.txt consists of the installation path of a user-facing application followed by a space and the versioned link name in INSTALL_PUBLICBINDIR. Example content: /usr/lib/qt6/bin/qmake /usr/bin/qmake6 To actually create the versioned symlinks, the content of this file can be fed to ln like this: xargs ln -s < build-dir/user_facing_tool_links.txt Or the package maintainer may decide to do something completely different as suits their needs. This patch adds the USER_FACING argument to qt_internal_add_tool to mark tools as user-facing. In addition, every Qt created by qt_internal_add_app is treated as user-facing. The only tool this patch marks as user-facing in qtbase is qmake. Pick-to: 6.1 Fixes: QTBUG-89170 Change-Id: I52673b1c8d40f40f56a74203065553115e2c4de5 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Improve QMakeLibraryInfo encapsulationAlexey Edelev2021-03-015-61/+72
| | | | | | | | | | | QMakeLibraryInfo uses external data to produce paths. This causes issues when trying to use it out of the existing qmake environment. Add data fields that contain the path to the binary that uses QMakeLibraryInfo and manually specified qtconf. Task-number: QTBUG-75870 Change-Id: Ic6fa274ede3a9287826ff66c79f155b10d0d455c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Simplify prefix-related functionality of qmakeAlexey Edelev2021-03-012-18/+12
| | | | | | | | | | | | | Since the QT_CONFIGURE_HOSTBINDIR_TO_HOSTPREFIX_PATH and QT_CONFIGURE_HOSTBINDIR_TO_EXTPREFIX_PATH definitions keep the same value in modern CMake build, no need to have special handling in cases where these values are used in qmake. Also it will be useful to specify the relative path to the prefix directory from the directories different of 'bin' when use QMakeLibraryInfo. Task-number: QTBUG-75870 Change-Id: I5a777001eb334dcf05e22853a514d4257352d59b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove unused definitionsAlexey Edelev2021-03-011-8/+2
| | | | | | | | | | | | QT_CONFIGURE_CROSSBUILD is always '0', so it's not necessary to keep conditional compilation in QMakeLibraryInfo. Also the QT_CONFIGURE_SYSROOTIFY_PREFIX definition is never used in the project. Task-number: QTBUG-75870 Change-Id: I1fe42dce40fddc6a72254736883f93aa4727f6b3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Use Core library for qmake instead of the Bootstrap libraryAlexey Edelev2021-02-255-211/+446
| | | | | | | | | | | | | | | | | | | Move the qmake-specific logic of the QLibraryInfo class to qmake internals. 'qconfig.cpp.in' now stores information about the library info entries to keep them consistent between qmake and the Core library. qmake requires specific features enabled in the Core library, so building qmake will be skipped if the features are not enabled. All flags directly related to the qmake have been removed from Core lib. Remove all bootstrap related sections from qmake CMakeLists.txt Task-number: QTBUG-89369 Change-Id: I26de157d3bfd4a5526699296e9d46e1c180b89ae Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* qmake: Update documentation that c++17 is the defaultKai Köhne2021-02-191-2/+2
| | | | | | | Since commit 4933a5f8923, CONFIG contains C++17 by default. Change-Id: I1033c256242c03d79a643c12a63d17eb9f4c705f Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* qmake: Introduce QT_HOST_LIBEXECS propertyJoerg Bornemann2021-02-182-0/+4
| | | | | | | | | This will be used to access host tools that are installed in ${prefix}/libexec instead of ${prefix}/bin. Pick-to: 6.1 Change-Id: I36c4b5736330f8229d267a117c65d55cd5e12758 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Update name of c++2a to c++20Kai Köhne2021-02-101-4/+5
| | | | | | | | | | Keep the c++2a feature, but make it an alias for compatibility purposes. Pick-to: 6.1 Change-Id: I6f153109be84659806f1b7a57a88a187875166d8 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* qmake: Introduce compile_included_sources CONFIG optionJoerg Bornemann2021-02-083-4/+13
| | | | | | | | | | | By default, qmake does not compile source files that are included in other source files. The new CONFIG option compile_included_sources disables this behavior. Pick-to: 5.15 Fixes: QTBUG-90801 Change-Id: I60c997938895f3a743d32ea385efdbe6bcf315bb Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* QLibraryInfo: Rename Qml2ImportsPath to QmlImportsPathUlf Hermann2021-02-081-1/+1
| | | | | | | | | | The "2" is meaningless. We retain the old name as alias for source compatibility, but we don't document it anymore. Task-number: QTBUG-85064 Change-Id: Id10d58f6d39a0faaec042304b374ae6b23469362 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Remove usage of the definitions that are never definedAlexey Edelev2021-02-011-2/+0
| | | | | | | | The QT_BUILD_QMAKE_BOOTSTRAP and QT_BUILD_QMAKE_LIBRARY definitions are never defined in the project since migrating to CMake build. Change-Id: I7108c92387005a2fde6ebdb2d74843e3efc6413e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* If available, use a version-specific qt<major-version>.confRalf Habacker2021-01-141-3/+10
| | | | | | | | | | | To enable the current Qt version to use a qt.conf that is independent from the previous version, a file named 'qt<major-version>.conf' is searched for first. If this file does not exist, a file with the name 'qt.conf' is searched for. Task-number: QTBUG-88635 Change-Id: If75b63f72a7bdbdf1de7729ea4ecb00810b58d12 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Remove .prev_CMakeLists.txt filesJoerg Bornemann2021-01-121-235/+0
| | | | | | | | | | Those serve no purpose anymore, now that the .pro files are gone. Task-number: QTBUG-88742 Change-Id: I39943327b8c9871785b58e9973e4e7602371793e Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Replace some more erase/remove patterns with removeIfGiuseppe D'Angelo2021-01-101-1/+1
| | | | | Change-Id: I6c6f33450fbfd798e5ef71a8ba18f590581dc3a2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove the qmake project filesJoerg Bornemann2021-01-072-291/+0
| | | | | | | | | | | | | | | | Remove the qmake project files for most of Qt. Leave the qmake project files for examples, because we still test those in the CI to ensure qmake does not regress. Also leave the qmake project files for utils and other minor parts that lack CMake project files. Task-number: QTBUG-88742 Change-Id: I6cdf059e6204816f617f9624f3ea9822703f73cc Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Adjust the format of code blocksHou Lei2021-01-041-4/+4
| | | | | | Change-Id: Id4a98b8b6f66ea4ea18eb90b86c1b84b6342e825 Reviewed-by: Hou Lei <houlei@uniontech.com> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove qmake-related code from configureJoerg Bornemann2020-12-216-940/+0
| | | | | | | | | | | | This leaves a very simple script that delegates the heavy configure work to a CMake script. This also removes the Makefile templates that were used for bootstrapping qmake. Task-number: QTBUG-88742 Change-Id: Iab9c477e0bb611d680bda2cf8aaa7ad88356a8d1 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* CMake: Regenerate projects using pro2cmake one last timeAlexandru Croitor2020-12-101-0/+1
| | | | | | | | | And fix up some wrong qmake project files Pick-to: 6.0 Change-Id: I66cb82aeb9c1419a74df1a650fa78a511ade7443 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Use (new) erase()/erase_if() algorithmsMarc Mutz2020-12-054-18/+7
| | | | | Change-Id: I45c18fd45c20b226e44d16315e3ebb6c305d4ab0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix undefined behavior in ProString/ProKey::appendToJoerg Bornemann2020-12-021-0/+4
| | | | | | | | | We must not pass null pointers to memcpy. Pick-to: 6.0 Fixes: QTBUG-88780 Change-Id: Ic1d77b4672310a3f6d0d4fbee5f2889e3e4d219d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Replace discouraged Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPEAndreas Buhr2020-11-306-9/+9
| | | | | | | | | | | | | | Q_MOVABLE_TYPE was conceived before C++ had move semantics. Now, with move semantics, its name is misleading. Q_RELOCATABLE_TYPE was introduced as a synonym to Q_MOVABLE_TYPE. Usage of Q_MOVABLE_TYPE is discouraged now. This patch replaces all usages of Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPE in QtBase. As the two are synonymous, this patch should have no impact on users. Pick-to: 6.0 Change-Id: Ie653984363198c1aeb1f70f8e0fa189aae38eb5c Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Change android target SDK version to 29Fabio Falsini2020-11-261-1/+1
| | | | | | | | | Play Store now accept only app with target SDK version set to 29 or above Pick-to: 6.0 Change-Id: If38f20c88fd6b0e6f29939cdf3d2eb793c0e1489 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* qmake: Sync back changes from qttoolsJoerg Bornemann2020-11-263-2/+13
| | | | | | | | | | | | | | | | Copy back changes to qmake internals that were done in qttools. This makes it easier to keep the qmakelib copies in sync. The code guarded by PROEVALUATOR_CUMULATIVE is not used by qmake itself, but only by lupdate and Qt Creator. It seems to be sensible to have the same behavior with regards to feature file evaluation in both projects. It was originally introduced in qttools for QTBUG-62478. The change regarding QT_BOOTSTRAPPED is safe, because the 'process' feature is available and off in the boostrapped case. Change-Id: I030ca8b093c017040a9ff9f4bb09a7cca4aa8964 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Fix documentation of qmake's exists() functionJoerg Bornemann2020-11-241-2/+3
| | | | | | | | | This function may take a wildcard expression, not a general regular expression. Pick-to: 5.15 Change-Id: Ia7ba3bac47c310bc035620583b9d2102fdc5ffb0 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* QFileInfo: mark constructors as explicitGiuseppe D'Angelo2020-11-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | These look like leftovers (API flaws). Construction of QFileInfo from QString (or similar) should be not implicit, as QFileInfo construction is expensive (might hit the file system), and this may have users overlook APIs (for instance build a QFileInfo out of QDirIterator::next(), instead of using ::fileInfo(); using QDir::entryList instead of entryInfoList; etc.). Leave an opt-out mechanism to ease porting. Fix a handful of usages around qtbase, with at least a couple of them likely to be actual "sloppy" code. [ChangeLog][Potentially Source-Incompatible Changes][QFileInfo] Most QFileInfo constructors are now explicit. The QT_IMPLICIT_QFILEINFO_CONSTRUCTION macro is provided to keep old code working. Change-Id: Ic580e6316e67edbc840aa0c60d98c7aaabaf1af6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Build Qt (and client apps using it) with /permissive-Giuseppe D'Angelo2020-11-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *Not* using /permissive- exposes Qt and client apps to interesting bugs and/or build failures, (e.g. QTBUG-87225, or 19b5520abfb5f66d4b83c7a18cc72d68673d098a). We demand strict conformance by any other compiler, it's time to demand it from MSVC too. The Windows headers themselves are clean starting from the Windows Fall Creators SDK (10.0.16299.0), and moreover Qt 6 will drop WinRT; therefore, the comment in the mkspecs does not apply any more. Since /permissive- implies /Zc:referenceBinding, drop that option. The other implied options are set on MSVC < 2017, but I leave them in to avoid tinkering with the fragile lists of C/C++ flags. Rename the CMake internal helper function to better describe what it does. Fixes: QTBUG-85633 Fixes: QTBUG-85637 Fixes: QTBUG-85635 Fixes: QTBUG-88244 Change-Id: Ie03fddb61aa066fdc14b7231c22e7108b4a02fbb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Android: recommend against using ANDROID_ABIS inside the project fileAssam Boudjelthia2020-11-101-7/+3
| | | | | | | Pick-to: 5.15 Task-number: QTCREATORBUG-24674 Change-Id: Iad6baa1af61d3d1a44f26cb9d51e3cb97d235707 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add new way to mess up projects with QMAKE_INSTALL_REPLACEMichal Klocek2020-11-092-5/+14
| | | | | | | | | | | | | | | | | | | | | Qmake supports currently: * QMAKE_PRL_INSTALL_REPLACE, * QMAKE_LIBTOOL_INSTALL_REPLACE * QMAKE_PKGCCONFIG_INSTALL_REPLACE Introduce QMAKE_INSTALL_REPLACE, where more sed magic can be put in action in more generic manner. replace_foo.filename = foo.h replace_foo.matches = /bad/looking/path/to/foo replace_foo.replace = /awesome/looking/path/to/foo QMAKE_INSTALL_REPLACE += replace_foo Pick-to: 5.15 Task-number: QTBUG-87154 Change-Id: Ie43d0ab4f1d4575bbf6279eb36383f38047484d9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Minor refactor of installMetaFileMichal Klocek2020-11-092-20/+27
| | | | | | | | | | Move some lines into createSedArgs. This is used in follow up patch. Pick-to: 5.15 Task-number: QTBUG-87154 Change-Id: I226f4aad4aaf703a4726c42b40afb4bde3a9d878 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>