summaryrefslogtreecommitdiffstats
path: root/mkspecs
Commit message (Collapse)AuthorAgeFilesLines
* Inform user that a non-prefix build can't be used on other machinesAlexandru Croitor2017-01-241-0/+1
| | | | | | | | | This implies that using tools like windeployqt and macdeployqt will not generate a working standalone application. Change-Id: I002cf6e527e479ccbee2f18df8766648196d6232 Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* features/resources.prf: fix use of unescaped backslashMikkel Krautz2017-01-231-1/+1
| | | | | | | | | | Without this, building a project with qmake -Wall will always produce the following warning: mkspecs/features/resources.prf:22: Unescaped backslashes are deprecated Change-Id: I0aeedbf470958ab458651a263e3f804ea2d1a0f0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Fix sanity checks in DRIVE CX and Jetson K1 Pro specsLaszlo Agocs2017-01-212-4/+16
| | | | | | | | This amends e58eb3d6. Task-number: QTBUG-58287 Change-Id: Ia4b5d0cf5f71d1e0977e3c8674ef08929112f7e9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* utilize configure results better in native buildsOswald Buddenhagen2017-01-202-2/+2
| | | | | | | | | don't ignore detected features for host tools when we're not actually cross-building. Change-Id: Id62a3c1c6b7ae422b14efb4fbea0892b05a047cc Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: René J.V. Bertin <rjvbertin@gmail.com>
* Don't ignore major version "0" when resolving targets on windowsUlf Hermann2017-01-201-1/+0
| | | | | | | | This was missed in dd9ec1564, leading to errors for example when building with separate_debug_info. Change-Id: Ibeb8020abe32690bcc691c1ca139508775c91db2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* winrt: Add support for Visual Studio 2017Oliver Wolff2017-01-206-4/+123
| | | | | | | | Tested with RC Task-number: QTBUG-57086 Change-Id: I57ecfd0751538dcba41ebaf028de1bc5b4debbb7 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* don't separate host and target toolchain when not x-buildingOswald Buddenhagen2017-01-201-1/+1
| | | | | | | | there isn't a point to determining the values separately if they are actually the same things. Change-Id: I74cd2bf39e96d559630709559602c234c38b0c47 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* determine QMAKE_DEFAULT_{INC,LIB}DIRS separately for host and targetOswald Buddenhagen2017-01-201-8/+13
| | | | | | | | | | | | | | | | | | note that in principle this leaves room for a race condition, as the first project to determine the host config is not going to be the top-level one. in qtbase and qtdeclarative, this is naturally serialized via the common bootstrapped libraries (bootstrap resp. qmldevtools). activeqt, qt3d, qtscxml, and qtwayland all build only one bootstrapped tool each. qtwebengine makes a fake host build to create files for gyp/gn; the convert_dict tool is declared a host tool, but isn't actually built when x-building anyway, and even if, it's serialized on the former. qttools needs explicit serialization, though. no other host builds exist within qt as of now. Task-number: QTBUG-58126 Change-Id: I81a02a2d98f2bfe5d6aaa51119d5e7919549f119 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* prevent configure from putting garbage into .qmake.stashOswald Buddenhagen2017-01-202-1/+2
| | | | | | | | | | | | | in cross-builds, toolchain.prf was loaded before CROSS_COMPILE was set up, leading to caching of possibly nonsensical values. this change also necessitated that msvc-version.conf is loaded only when toolchain.prf is, which is best done by loading the former from within the latter. that seems quite appropriate in the first place. Change-Id: I62577e827a75e335e03df016bd1aa1932643fd6c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* fix up static linking of plugins somewhatOswald Buddenhagen2017-01-191-21/+18
| | | | | | | | | | | | | | move the code before the linking of qt modules - dependency resolution would re-order them anyway (or static linking would fail). on the way, fix up the coding style and rename some variables. the code to de-duplicate/normalize QTPLUGIN is pulled ahead, which means that the automatic plugin importing wouldn't make a mess of it any more. but this is mostly legacy anyway. Change-Id: Id135470d027f5d84b7f30531425a65efa230f278 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* put some empty lines between configure runs into config.logOswald Buddenhagen2017-01-191-0/+2
| | | | | Change-Id: I6c3e3b139752bb9d1b60c590bb1ea72ae2e4fbdf Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* log configure command line to config.logOswald Buddenhagen2017-01-191-4/+12
| | | | | | | | | that makes the log file mostly self-contained. for code re-use, the qtSystemQuote() function was factored out. Change-Id: Ie3469518ba384131b69f5f15c577240e2674d507 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* inline "committing" of configure command line built-insOswald Buddenhagen2017-01-192-20/+6
| | | | | | | | | the options may need to take effect before the regular test processing commences (which is actually going to be the case in the next commit). the indirection via the callback only obfuscated the code anyway. Change-Id: I5307b0be15cf4cc2c2db391ce5b5a93f81076b5c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* qt_targets.prf: Bump copyright yearFriedemann Kleint2017-01-181-1/+1
| | | | | Change-Id: I371fbc28abd6b0e3497e94b7d974fef5d20c7acc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* qt_targets.prf: Don't unconditionally set product and descriptionFriedemann Kleint2017-01-171-2/+2
| | | | | | | | | Check on QMAKE_TARGET_PRODUCT/QMAKE_TARGET_DESCRIPTION before assigning values. This enables providing other values by for example the Qt tool applications. Change-Id: I62270ca38b7a9110185f6163b280409dbaf395f6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* fix configure --opt=val syntaxOswald Buddenhagen2017-01-061-2/+2
| | | | | | | | | | | the second dash would end up in the option name, which made it obviously unrecognizable. but the second dash isn't optional in the first place (as evidenced one line up), so remove the question marks. Task-number: QTBUG-57908 Change-Id: I6622fef7d11d7b3c485f16698349d1912037a41e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* track plugins' qt dependenciesOswald Buddenhagen2017-01-062-64/+88
| | | | | | | | plugins may pull in additional qt modules which may require additional plugins in turn. Change-Id: I22264b39c1397666b2dc9079048ed1fc64aa84d9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* statically link plugins for transitive deps' private deps as wellOswald Buddenhagen2017-01-061-7/+7
| | | | | | | | | | | | | | | | | | while we already linked the plugins for our own private deps, we failed to do so for our transitive deps. this also fixes linking qml plugins if qml is linked only indirectly and privately. the code for setting up rpath-link is slightly refactored as a side effect, with no functional change. the code for setting up rpath now also sees the longer list of dependencies, but that's irrelevant, as qtcore always ends up among the direct deps anyway iff any non-bootstrapped modules are used. Change-Id: I90dca81a2836c6191ce5d092e16bf7660ee820bc Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* import static plugins also into dllsOswald Buddenhagen2017-01-061-5/+6
| | | | | | | | | | | | | static plugins must be actually linked into the target whenever it is not a static library itself. apart from fixing qml plugin linkage, this also provides a more generic fix for the already fixed linking of activeqt controls. Task-number: QTBUG-28215 Task-number: QTBUG-55279 Change-Id: I9661369bf3dfc6bcf3a5ed563e6716eb3ef6e76e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* complain about various invalid configuration attemptsOswald Buddenhagen2017-01-061-1/+12
| | | | | | | Task-number: QTBUG-56049 Change-Id: Id5eeb014c2b88195d2d14566a62dcb9185206b37 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* name top-level configure scope after the project fileOswald Buddenhagen2017-01-061-3/+2
| | | | | | | | ... instead of the directory it resides in, to make it independent of the user's fs layout. this makes logs more comparable, and little else. Change-Id: I0ab3e968dad74ef86577f388c8ca1557e3c17ce4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* make skipping of configure in sub-repos less arcaneOswald Buddenhagen2017-01-061-10/+12
| | | | | | | this was introduced in 60e5a1c8 for no apparent reason. Change-Id: Idcbc6df3df4e4846c76b3e4215d753a1c97e2eec Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* move emission of final messages to qmake-based configureOswald Buddenhagen2017-01-062-0/+17
| | | | | | | | | | | | | now qmake is the last command called by the unix configure script. as it happens, this was already the case in the windows script, but only because it didn't print these messages at all, which it implicitly does now. another effect of this is that repositories outside qtbase will now also get the installation note in modular builds, which makes sense. Change-Id: I567146936b216185a8e0f61e445222215608bf13 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* re-introduce config.summaryOswald Buddenhagen2016-12-301-24/+12
| | | | | | Task-number: QTBUG-56225 Change-Id: I954cc1055ab0168c06b6618d02b06f63b4122add Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* fail early after command line parsing errorOswald Buddenhagen2016-12-301-0/+1
| | | | | | | | | we don't want to do the (possibly interactive) license check when the command line is not valid. Task-number: QTBUG-18459 Change-Id: I68c3b7ed4646e49865922ab5612f971930698356 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configure: make library sources fail more verboselyOswald Buddenhagen2016-12-301-4/+9
| | | | | | | | log a message in all unsuccessful exit paths. Task-number: QTBUG-57217 Change-Id: I8b0f2685d327da583c3e42c8149327e05b2a66cc Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* de-duplicate {mac,uikit}/default_post.prf re valid architecturesOswald Buddenhagen2016-12-302-17/+9
| | | | | Change-Id: Ie9d5a35a7f8578a2588ec004aab086d74986b0eb Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* remove redundant arch list truncation in single_arch caseOswald Buddenhagen2016-12-301-5/+1
| | | | | | | | | | | beyond this point, simulator_archs is only used to determine from which one of the lists the remaining arch came from (and device_archs is actually never used again). the lists are assumed to be mutually exclusive, so truncating them won't affect in which of them the first element of their concatenation is found. Change-Id: I4736ed7e51f6623efa6bd37892ab1fcf8c83ae8b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* delay resolution of darwin deployment target and architecturesOswald Buddenhagen2016-12-302-80/+80
| | | | | | | | | | | there appears to be no particular reason why this ended up in sdk.prf, and it has become an actual problem now that the sdk is resolved from default_pre.prf already, making it impossible for projects to override the deployment target. Task-number: QTBUG-56965 Change-Id: I8e319d10cdfb95acc1da1f431c8b8d4f76d1168e Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* remove pointless conditionalsOswald Buddenhagen2016-12-301-2/+2
| | | | | | | | uikit already implies !host_build, as host builds are executed with the host spec. and the only darwin alternative to uikit is macos. Change-Id: I6b47d68bad5d4427640901ff1e32dacf9a4e352b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* centralize QMAKE_COMPILER_DEFINES+=_WIN32 also for winrt specsOswald Buddenhagen2016-12-304-3/+1
| | | | | | | | | this is mostly for appearances (as evidenced by everything working despite it being missing from some specs), as the variable is just a fallback for moc.prf's automatic detection. Change-Id: Ie4af24c02ec03aaa1810281d1bb6876ea38cedf8 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix GCC 7 developer buildAllan Sandfeld Jensen2016-12-261-0/+3
| | | | | | | | | | | | Disables escalating the implicit fallthough warning to an error, since Qt is not yet free of unmarked implicit fallthroughs. With this we can clean the code in the dev branch instead of in 5.6 and 5.8, and only backport bug fixes. Change-Id: Id30ee21b77de6defcb7d5bb1e05e86c0db098481 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix typo in -Xarch handlingJake Petroules2016-12-231-1/+1
| | | | | Change-Id: I05e1491f3b1b5af28992ea53d513c709e1161a8e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Merge all "win32-msvc*" mkspecs into oneThiago Macieira2016-12-2320-292/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we can tell the MSVC version from the compiler now, each of the qmake.conf files is now the same, so let's just have "win32-msvc" and be future-proof. Likewise for win32-clang-msvc. qplatformdefs.h was already common. Since we can't obtain the MSVC version from the unified mkspec name any more, I dropped the warning level during the qmake bootstrap to reduce the number of warnings that need to be disabled from compiler version to version. There is no point in keeping the old mkspecs, but configure will re-map the -platform argument to the unified spec as necessary, to keep existing configure command lines working. [ChangeLog][Visual Studio] Qt now has a common mkspec for all Visual Studio versions, called "win32-msvc". The old names which contained the version number are now gone (but qmake scopes based on the old names continue to work). The version of the compiler can be obtained from the MSC_VER and MSVC_VER variables (for example, for Visual Studio 2015, those contain the values 1900 and 14.0, respectively). Those variables are also available with the Intel compiler (win32-icc) and with Clang (win32-clang-msvc). Done-with: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Change-Id: Ib57b52598e2f452985e9fffd14587c0a77a5c09c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Remove hard-coded MS compiler versions from the mkspecsThiago Macieira2016-12-2320-44/+22
| | | | | | | | | | We're asking the compiler anyway, so we can fully use this information just as well. Note that this actually happens after the spec itself has been processed, so it was necessary to delay the version-specific flag handling as well. Change-Id: Ib57b52598e2f452985e9fffd14587b581d946022 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* determine msvc compat version in clang spec dynamicallyOswald Buddenhagen2016-12-232-2/+21
| | | | | | | | | instead of hardcoding the compat version in the spec, run cl.exe (which needs to be around anyway) to figure out what version to emulate. Change-Id: I6eae97fe9a78f8e340ecdabcdc0d48738497c6d2 Started-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* determine compiler version at build time, not in configureOswald Buddenhagen2016-12-2311-9/+108
| | | | | | | | | | | | | | this makes it consistent with the determination of the default include/library paths. this makes sense, as it's possible to switch the sdk/toolchain after building qt (within reason). a side effect of this change is that for compilers which emulate other compilers, both the real and the emulated version are now made available. Change-Id: Icfcc672c0d2e3d1b5e622993c366063d70ad327c Started-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* prune obsolete qml file deploymentOswald Buddenhagen2016-12-231-34/+0
| | | | | | | | | | static builds of qt have been embedding their qml files via the qt resource system since qt 5.7, so the code which attempted to deploy them into mac bundles (introduced in qt 5.2) is useless nowadays. Change-Id: I830cd2b660f7cab42a46ec8e002a42d9d299b528 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* prune vestiges of DEPLOYMENT_PLUGINOswald Buddenhagen2016-12-231-21/+2
| | | | | | | | | | | | | | | the code was broken since 5.0, as it still hardcoded the version number 4 for the plugin basenames. wince is not supported any more, so there is no point in trying to restore the code to function. at a later point, we'll make QTPLUGIN universal enough to cover both static and dynamic deployment. Change-Id: I0911ce4aff7a799dd471d6218e046f13dca6d49e Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Mark QPA symbols as privateLisandro Damián Nicanor Pérez Meyer2016-12-211-2/+5
| | | | | | | | | | | | QPA headers are shipped as private symbols, so they should be marked as such. This helps distros to check which applications/libraries need recompiling on each Qt patch update. Task-number: QTBUG-57060 Change-Id: Ie09d4d10e1edb5127d45a05a3dfa3f4c9dd012f2 Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Merge remote-tracking branch 'origin/5.8.0' into 5.8Liang Qi2016-12-165-6/+7
|\ | | | | | | | | | | | | | | | | Conflicts: doc/global/qt-cpp-defines.qdocconf src/plugins/platforms/android/qandroidplatformopenglcontext.h src/plugins/platforms/android/qandroidplatformtheme.h Change-Id: I13d51cc66f708138ff4d667ceea7d515992e58a4
| * Merge remote-tracking branch 'origin/5.7' into 5.8.0Liang Qi2016-12-081-1/+1
| |\ | | | | | | | | | Change-Id: I576187a9905802c177ae483e6c29d0f55cf7034d
| | * fix qlalr invocation in silent buildsOswald Buddenhagen2016-12-071-1/+1
| | | | | | | | | | | | | | | | | | Change-Id: I8cd5da01dcbcdebe29815a80cc0f65365727465d Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * | moc: force the Microsoft compiler not to define _MSC_EXTENSIONSThiago Macieira2016-12-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This re-fixes commit d72ac3f35f4c6d6405e9675d54124b3ddb8d80ab, which simply removed the #define but did so at the wrong place. Instead of forcing the macro to be removed, let's simply not have it defined in the first place. Change-Id: Ie6dbad9bbbd9488887e8fffd148dd67d9a31b32e Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * | Disable ICC warning 3373Thiago Macieira2016-12-073-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This warning does not make sense. it seems to trigger when in code like the following in template functions: auto x = 1, y = 2; 3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type Other reports on the Internet indicate that no one understands what triggers this warning and have just worked around it. Additionally, the same warning exists on other compilers with the same text, so it's likely come from the EDG front-end. This has been reported to Intel. Change-Id: I73fa1e59a4844c43a109fffd148d45065ab69eff Intel-Issue-ID: 6000164202 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * | Set a proper name for the moc_predefs extra compilerJoerg Bornemann2016-11-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | In VS builds the default name is the first word of the command, in this case "cl". Use the generated file name instead. Change-Id: I8f0039eeae045f8b9a13caea8bd3e338bbe2ed17 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | | move all target spec handling to qmake-based configure systemOswald Buddenhagen2016-12-132-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | we pull this feat off by booting configure with a dummy spec. the proper spec gets loaded subsequently. note that it was necessary to move the cache loading after processing the early checks (from which the spec handling is triggered). this is just fine, as the cache is needed only by tests, which are forbidden at this stage by definition. Change-Id: I5120e25a8bf05fb8cc5485fd93cf6387301089aa Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | move qdevice.pri creation to qmake-based configure systemOswald Buddenhagen2016-12-134-1/+11
| | | | | | | | | | | | | | | | | | | | | Change-Id: I06540c3b6d98303bd9a218feedfb529993477ed6 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: BogDan Vatra <bogdan@kdab.com> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | move generation of qconfig.cpp (and qt.conf) to qmake-based configureOswald Buddenhagen2016-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this moves us another step towards the "outer" configure doing just minimal bootstrapping of qmake. a challenge here was that so far, qmake itself needed qconfig.cpp. this was replaced by usage of a qt.conf file instead of compiled-in values. however, to make the executable still self-contained, that qt.conf is embedded into it (by simple appending of a fixed signature and the text file). the qmake with the embedded qt.conf is not used for the qt build itself, which instead relies on the qt.conf in bin/ as before. however, due to the missing built-in values, this file now needs to contain more information than before. but except for a minimal version that is needed to start up qmake/configure at all, that file is now also generated with qmake. as some of the newly set up properties are subsequently used by configure itself, qmake gains a (deliberately undocumented) function to reload the qt.conf after it's fully populated. unlike the old implementations, this one doesn't emit redundant qt.conf entries which match the hard-coded fallbacks. omitting them leads to leaner files which are more comprehensible. Started-by: Paolo Angelelli <paolo.angelelli@qt.io> Change-Id: I4526ef64b3c89d9851e10f83965fe479ed7f39f6 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | nuke configure -host-optionOswald Buddenhagen2016-12-131-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in its current form, it was introduced only in 5.7, mostly as a side effect of -external-hostbindir (which is now handled differently). it only ever worked for the macOS and MinGW specs, as a side effect of them supporting -sdk and -device-option (for good reasons), and was supported only by the unix configure. it's not believed to be really useful and complicates matters somewhat, so get rid of it again. should it ever become actually relevant, it can be re-introduced properly, probably along with a -host-sdk option for macOS. Change-Id: Ib078469ea39deb821c7b6a8c67fda9e1a95fedf5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>