summaryrefslogtreecommitdiffstats
path: root/mkspecs/features
Commit message (Collapse)AuthorAgeFilesLines
* Mark Clang 5.0 as warning-freeThiago Macieira2017-09-181-2/+2
| | | | | Change-Id: I27b55fdf514247549455fffd14b17a4ae1d8ff2d Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix conditions in some QMAKE_COMPILER_DEFINES assignmentsRobert Loehning2017-09-151-3/+3
| | | | | | | | | | We obviously should check the variable we're about to get the data from. Amends 1216f596bdb. Change-Id: Ibe87138b9c9aa99837b4fbf3769cd26ca1aaacb9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix quoting of mocinclude.opt for paths containing spacesJoerg Bornemann2017-09-141-1/+1
| | | | | | | | | | | If MOC_INCLUDEPATH exceeds a certain limit, its content is written into a file named mocinclude.opt, which is then passed to moc as a response file. That moc parameter was not properly quoted, and the moc call failed for paths containing spaces. Task-number: QTBUG-63197 Change-Id: Ib0542d80ce1bab239e0e6b6e24fadd11007b1846 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Add qmake feature and configure option to use ccacheTor Arne Vestbø2017-09-051-0/+19
| | | | | | | | | | | | Enabled via configure --ccache, or CONFIG += ccache in 3rd party projects. Ensures that we use the right sloppiness and other ccache options during compilation. Task-number: QTBUG-31034 Change-Id: I696b3d3f0398873a29b93d1bc2b4d4e06ef23dc9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* configure: Disable warnings in configure testsThiago Macieira2017-08-241-0/+3
| | | | | | | No need to log them. Change-Id: I3868166e5efc45538544fffd14d8c3cc0012ba12 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Use libc++ instead of libstdc++ when compiling with android-clang mkspecBogDan Vatra2017-08-231-0/+1
| | | | | | | | | | | | | | | clang+libc++ is the only supported way by Google nowadays. libstdc++ is too old and already fails to build some C++11 apps e.g. missing std::to_string(). android-g++ mkspec still uses libstdc++ and g++. Use -isystem to include system headers instead of QMAKE_INCDIR_POST (-I). Task-number: QTBUG-60455 Change-Id: Iba8b04594c2e5e2832e6cf480e4e52ff31ad4106 Reviewed-by: Sérgio Martins <sergio.martins@kdab.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Propagate all module defines to CMake config filesVolker Krause2017-08-151-2/+2
| | | | | | | | | | | So far this only covered the QT_xxx_LIB define, but not any other defines a module might export (such as QT_NO_QML_DEBUGGER which hasn't been ported to the new configure system yet). Change-Id: I8aae2354fed77a6f0e527ad8d63d25654bb067d0 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Kevin Funk <kevin.funk@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* refuse to build examples inside the qt source tree stand-aloneOswald Buddenhagen2017-08-151-1/+7
| | | | | | | | | | | doing so is somewhat likely to cause follow-up issues, as it turns the source tree into a build tree as a side effect. note that this change does not affect building examples inside an install tree, even if doing that is still ugly. Change-Id: I386bf2ab959269f55553c70b7551dd9afec2bcba Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* fix excessive execution of code meant for examples onlyOswald Buddenhagen2017-08-151-5/+6
| | | | | | | | qt_example_installs.prf is loaded by every sub-project inside the qt tree, as qt_build_config adds it. Change-Id: Ice7e81b280b6964ed5cc1b9f1501bf74df737d7e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* employ return() inside qt_example_installs.prf gainfullyOswald Buddenhagen2017-08-151-84/+85
| | | | | | | reduces the indentation level. Change-Id: I7851ffc5e9ecaaa3ae375d14fd245ea3747f61b2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* configure: fix detection of icu in static buildOswald Buddenhagen2017-08-151-2/+2
| | | | | | | | | don't complain about library inline sources which have 'builds' but no 'libs'. Task-number: QTBUG-62150 Change-Id: Ib215d438fc02ebdafde95f31cd48088b1bafc663 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* configure: simplify construction of QMAKE_CONFIG_CACHEOswald Buddenhagen2017-08-151-4/+1
| | | | | | | | there doesn't appear to be a reason for the former complexity. QMAKE_CONFIG_LOG was already assigned the simple way. Change-Id: I6b7e3b5b97c7647237841fa5e16c4959079edc16 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* make compiler invocation error messages mention host/targetOswald Buddenhagen2017-08-111-8/+14
| | | | | | | | | | | | it's unclear where to look for the error when the message talks about 'g++' when '${CROSS_COMPILE}g++' would have been expected. help it by saying whether it was supposed to be the host or target compiler. this also centralizes the error emissions in a function. Change-Id: I454c6ff7c0e7dd945dcee0de01e2818caeeb7409 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* configure: Add a feature to write tests in the .json fileThiago Macieira2017-08-021-5/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're adding a lot of unnecessary files that end up later as cargo-cult, for at most a handful of lines. So instead move the testcases directly into the .json file. The following sources were not inlined, because multiple tests share them, and the inlining infra does not support that (yet): - avx512 - openssl - gnu-libiconv/sun-libiconv (there is also a command line option to select the exact variant, which makes it hard/impossible to properly coalesce the library sources) The following sources were not inlined because of "complications": - verifyspec contains a lengthy function in the project file - stl contains lots of code in the source file - xlocalescanprint includes a private header from the source tree via a relative path, which we can't do, as the test's physical location is variable. - corewlan uses objective c++, which the inline system doesn't support reduce_relocs and reduce_exports now create libraries with main(), which is weird enough, but doesn't hurt. Done-with: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Change-Id: Ic3a088f9f08a4fd7ae91fffd14ce8a262021cca0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* configure: factor out $$qtConfScalarOrList()Oswald Buddenhagen2017-08-021-10/+15
| | | | | | | we'll need it in more places. Change-Id: Ia7e3d9ea4a27cc01294bde4cafe6721eb9f59343 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Windows: Automatically set metadata for all Qt appsKai Koehne2017-07-312-3/+4
| | | | | | | | | Move the logic to set default values for VERSION, QMAKE_TARGET_DESCRIPTION to qt_app.prf. This way, a lot more executables get sane defaults. Change-Id: I8394418c118a8877cec792eddc8894397c0fbf2d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Windows: Simplify generic tool descriptionKai Koehne2017-07-311-2/+2
| | | | | | | | | | | | Make the tool description even simpler so that e.g. moc shows up as "Qt Moc". The 'description' is shown in various places as the mere title, so it shouldn't be too verbose. This augments change ad68bf51e7. Task-number: QTBUG-61970 Change-Id: I4b30b95a10d597a9a8a2c388c2381ea38a340be6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Add executable name to description of Qt tools (Windows)Kai Koehne2017-07-191-1/+1
| | | | | | | | | | | | | | | Change f046ed395a5d2c383 set the default values of VERSION and QMAKE_TARGET_DESCRIPTION for Qt tools to generic ones. The version and description is shown in the properties of the executable, but also used for crash reports. For the latter it wasn't clear anymore which tool actually crashed. The patch therefore adds the executable name to the generic description. Tools can still overwrite the description on their own. Task-number: QTBUG-61970 Change-Id: I8366db22f88f0d6575e7f482f030b3c4f05af6c5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Fix CONFIG+=silent for MSVC non-inference rulesJoerg Bornemann2017-07-141-2/+7
| | | | | | | | | | | | | | | silent.prf modifies the compiler commands by prefixing them with a silencing echo command. For MSVC, the used $< syntax is only valid in inference rules. However, the PCH rule is not an inference rule and breaks when silent.prf is used. Remove the echo command for MSVC. The compiler already outputs the currently compiled file. There's no need to do it twice. Task-number: QTBUG-61688 Change-Id: I7e2c1211e471c9c149c16cac8e87406e88ee2d97 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Only try to resolve library paths via linker for Drawin clangTor Arne Vestbø2017-07-081-2/+2
| | | | | | Task-number: QTBUG-61735 Change-Id: Ia8e777928aa0cff44f092968eac14d32501a5d73 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Fix detection of QMAKE_DEFAULT_LIBDIRS with Clang under LinuxGiuseppe D'Angelo2017-07-071-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | With 4183475080d334d7d17d02e6ad4eb53c01205c54, Qt fails to build if qmake is unable to detect the compiler's default include and library search paths. Clang on non-Darwin systems was missing working code for the detection. Unlike GCC, Clang on its own does not print the library search paths when called with the -v option. On Darwin, the -Wl,-v option will reach ld64, which will print those paths. However, neither GNU ld nor gold will print anything useful with just -v. GNU ld has a --verbose option that does print some search paths, but those are not the ones used when ld is invoked (via collect2) by GCC or Clang, so it can't be used. To make Clang print its library search paths one can use -print-search-dirs, which however doesn't print include search paths. So amend the existing code in order to make a second call to clang on non-Darwin systems. This second call is used for library path detection, and fixes the build on non-Darwin (tested on Linux). Change-Id: Ic858f908ee1a2e0eb307abb074daee0ded38abd5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Disable the -Wstringop-overflow warning from GCC 7Thiago Macieira2017-07-031-0/+2
| | | | | | | | | | | It prints the warning even if we surround the affected code with QT_WARNING_DISABLE_GCC("-Wstringop-overflow") (see e4eaa629439fe1ba1e), so we have no alternative other than to disable the warning completely. Change-Id: Ia3e896da908f42939148fffd14c488c4006040e6 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make Qt's VersionInformation resource strings consistentJoerg Bornemann2017-07-031-2/+2
| | | | | | | | | | The strings in Windows VersionInformation resources should be capitalized by convention, and the entries are usually not terminated by a dot. However, "Ltd." is an abbreviation and should be dot-terminated. Change-Id: Ibea3443ac38846e29a3e77ab3e8d5d77b9370272 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Set VERSION for Qt toolsJoerg Bornemann2017-07-031-0/+3
| | | | | | | | | This creates a VersionInfo resource on Windows for Qt's tool executables similar to what Qt's DLLs contain. Task-number: QTBUG-55755 Change-Id: I9e5d7bedaec9d14f29a9eeeb6697b07241f860d8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* winrt: remove legacy checksMaurice Kalinowski2017-07-031-3/+2
| | | | | | | | Any version prior to 2015 is not supported anymore. Change-Id: I9ccc87fc506521b560fda1b4c88f9c3aebd7a485 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* winrt: Update capability managementMaurice Kalinowski2017-07-031-2/+28
| | | | | | | | | | | | Introduce uap3 namespace which is used for newly introduced capabilities. In addition, the autodetection of namespaces for capabilities within the uap namespace is disabled in Visual Studio lately. Hence, the output needs to be more verbose including the namespace for a capability. Task-number: QTBUG-60899 Change-Id: Ia1ccf825d4c257d2661e34c195c45fd37e0b6413 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.9.1' into 5.9" into ↵Liang Qi2017-07-021-4/+1
|\ | | | | | | refs/staging/5.9
| * Merge remote-tracking branch 'origin/5.9.1' into 5.9Liang Qi2017-07-021-4/+1
| |\ | | | | | | | | | Change-Id: Ic02646cbab8fd627bc73dac0c52d515d4084bbb0
| | * Revert "don't overwrite pre-existing INSTALL for target"Christian Strømme2017-06-271-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c0e94dd0933c549f35d05318cdcd97572c61fabf, as it introduced a regression for applications that sets an installation target (on Android), which a lot of our examples do. The installation target for Android applications/libraries needs to be within in the application bundle's directory tree, or it won't work. Task-number: QTBUG-61635 Change-Id: I8c919ef3888d7679b0f9659796f5e590bc1faa57 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | fix QMAKE_DEFAULT_INCDIRS detection with Xcode targeting uikit platformsOswald Buddenhagen2017-07-021-1/+6
|/ / | | | | | | | | | | | | | | | | | | | | | | uikit/sdk.prf replaces QMAKE_MAC_SDK_PATH with a make expansion of that variable, which of course does not work when we use the contents directly. amends 6d5489f5d. Task-number: QTBUG-61690 Change-Id: Id77dff8ee7d737dd35f74cc7d39faaa50b4b1ab9 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* | Add query of default include/library paths for QNXJames McDonnell2017-06-291-26/+55
| | | | | | | | | | Change-Id: Iafc5a573a2ddb277d2a786cb6b48521985defe44 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Allow using Xcode Command Line Tools to build QtJake Petroules2017-06-294-14/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Some users don't want to download the full Xcode installation which can weigh upwards of 5 GB download and 20 GB installed. [ChangeLog][macOS / iOS] Qt can now be built using just the Xcode Command Line Tools, without needing to install the full Xcode IDE. Task-number: QTBUG-35928 Task-number: QTBUG-41908 Change-Id: I6d13c9a03ab9087b3ab56e8547f53f0cc2806c7b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Fix handling of deprecated QMAKE_IOS_TARGETED_DEVICE_FAMILYJake Petroules2017-06-291-1/+1
| | | | | | | | | | | | | | | | | | | | Since the mkspecs always set QMAKE_APPLE_TARGETED_DEVICE_FAMILY, it will never be empty, and the warning message and automatic fallback to QMAKE_IOS_TARGETED_DEVICE_FAMILY will never be used. Task-number: QTBUG-60430 Change-Id: I79e36d355dae3f8a4429d73e753fed3c090a5d24 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Error out when compiler is unable to produce default include/library pathsTor Arne Vestbø2017-06-251-0/+3
|/ | | | | | | | Adds a bit of extra safeguard to ensure we don't accidentally fall into the generic unix isEmpty(QMAKE_DEFAULT_{INC,LIB}DIRS) code-paths. Change-Id: Id760b32cd29cb2b9db1390c174e1637e2dddaabc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* don't auto-create install targets for static libsOswald Buddenhagen2017-06-172-1/+2
| | | | | | | | | these are not meant to be deployed, so the install hack should skip them. Task-number: QTBUG-42830 Change-Id: I870499dca2cfea87bf0048f019d651ce9cc5d788 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* don't overwrite pre-existing INSTALL for targetOswald Buddenhagen2017-06-171-1/+4
| | | | | | | | | | | | while it's mildly insane that we auto-generate install targets to start with, we can at least refrain from doing so if there is one already. as it happens, this removes the need for excluding the qt build explicitly. Task-number: QTBUG-38452 Change-Id: I74d5df447fba525fa79896c9be2c71d82bc2c6ce Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Enable stack-protector-strong for QNX 7.0.0James McDonnell2017-06-132-0/+6
| | | | | | | | | | | | | | | | | | | This was originally enabled in the mkspecs for 64-bit QNX 7.0.0 but that broke when the qtConfig change was made. It looks like qtConfig shouldn't be used in the platform mkspecs. I suspect the stack-protector changes were left out of the 32-bit mkspecs so that 6.6.0 builds wouldn't be affected. Ignore the stack-protector/stack-protector-all possibility since it isn't possible to access it without a command line option. Specifying both options doesn't even make sense since stack-protector-all encompasses stack-protector. For now, leave out command line control of this feature. Task-number: QTBUG-59644 Change-Id: I99323216be5b592dd2c3bef6d22da195764a6e65 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Only use -Xarch when specifying precompiled header if building multi archTor Arne Vestbø2017-06-121-1/+5
| | | | | | | | | | The -Xarch option is not supported by ccache, so unless we need to distinguish precompiled headers for multiple architectures it's better to not pass it. Change-Id: Iae02d37f7a89aedebecedff7290f88d2de1ca362 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Do not disable MSVC extensions when generating moc_predefs.hJoerg Bornemann2017-06-121-2/+2
| | | | | | | | | | | | | | Do not pass /Za to MSVC to generate moc_predefs.h, because this option is incompatible with compiler options like /fp:fast that may be user-specified. The /Za option added, because moc failed parsing header files that contain MSVC extensions. Moc was fixed in 94a2aec0, and we can safely remove the /Za option. Task-number: QTBUG-58391 Change-Id: I9791224b1773d0f81d2bbb7915787a7c5e68430c Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* build the configure tests in the top-level build dirOswald Buddenhagen2017-06-121-2/+2
| | | | | | | | | | there isn't really a point in doing strict shadow builds of them, and it complicates stand-alone building of sub-projects (because it points below the build root). Task-number: QTBUG-58372 Change-Id: Ia3bde3826baac44749b27452fd4aeb9491ecb94e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* complain when toolchain.prf fails to run the compilerOswald Buddenhagen2017-06-121-3/+11
| | | | | | Task-number: QTBUG-60059 Change-Id: I2babe8aaf7cdf5912686f679d14bebc82231a846 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* make qconfig.pri export QT_<compiler>_VERSION variables againOswald Buddenhagen2017-06-122-28/+20
| | | | | | | | | | | | | ... and rename those determined by toolchain.prf to QMAKE_* (this was already the case for the newly introduced msvc and icc variables). this restores the ability for user projects to query the toolchain qt itself was built with, which is necessary for compatibility checks. in fact, we may do such validation in toolchain.prf itself at a later point. Change-Id: I35f4c393c5e4e0fe987c0844714b7a8f8687c24e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Pick up default library paths for clangTor Arne Vestbø2017-06-091-2/+19
| | | | | | | | | We need to actually run the linker, otherwise clang will just run the preprocessing step as we asked for. We build as a shared library to not have to provide a main() function. Change-Id: Ied34757bb5c43a862bf2d9778340c497b93d572f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Revert "moc: remove _MSC_EXTENSIONS #define"Jani Heikkinen2017-06-051-2/+2
| | | | | | | | | | It seems this change is preventing us to integrate qt5.git in '5.9' This reverts commit c3030d7163245b55abfd09eefe696c035c55011c. Task-number: QTBUG-61204 Change-Id: Id98afaa23be0a8dd6f2c54a899f46542c65436aa Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* MSVC: Enable standard-conformance mode by defaultThiago Macieira2017-06-031-2/+6
| | | | | | | | That's not the same as -Za. Change-Id: Ica9894dc9b5e48278fd4fffd14bb316b687abffe Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* don't redirect licheck's stderrOswald Buddenhagen2017-05-311-1/+3
| | | | | | | | it uses it for interaction. Task-number: QTBUG-61017 Change-Id: I9edc0f9aa91793bc451fa78a8f6ad11d61e04b57 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* fix module version number in qt modules' cmake config filesOswald Buddenhagen2017-05-311-1/+1
| | | | | | | | | | | | this actually just makes the code more straight-forward. amends f8607045c. Task-number: QTBUG-60936 Change-Id: Iaa05b474206cf29352f9bba516936ff30b90a778 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* fix library retrieval in pkg-config source, take 2Oswald Buddenhagen2017-05-311-1/+2
| | | | | | | | | | | the entry's libs field is supposed to be a single pre-quoted string. that implies that the libs and libpaths need to be joined first. amends 7e298e2f. Task-number: QTBUG-60925 Change-Id: Id85b2784e3c081b3ff8eb9ee2216976691f8580d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* make mkspecs not mess up library and include search pathsOswald Buddenhagen2017-05-311-3/+0
| | | | | | | | | | | | | | adding shared install paths to QMAKE_{INCDIR,LIBDIR} in the spec has the tiny side effect that they are searched _first_, which is generally a really bad idea - they should be _last_. for that purpose, make QMAKE_{INCDIR,LIBDIR}_POST live up to their names (i.e., search them actually last) and migrate all affected specs to use them. Task-number: QTBUG-40825 Change-Id: Ie0de81c3cc49e193186d2fedd7d6c77590c8ef79 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* moc: remove _MSC_EXTENSIONS #defineJoerg Bornemann2017-05-301-2/+2
| | | | | | | | | | | | | | | | | | | | | Because we obviously don't support Microsoft's extensions in C++. This is required because some MS headers have code that isn't proper C++, like iso646.h: #if !defined(__cplusplus) || defined(_MSC_EXTENSIONS) #define and && Do not pass /Za to MSVC to generate moc_predefs.h, because this option is incompatible with compiler options like /fp:fast that may be user-specified. This reverts commit e1a70ce4 and re-fixes the issue similarly to commit d72ac3f3. Task-number: QTBUG-58391 Change-Id: I5c0143283afed09f98200806c87259c039c00ae1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>