summaryrefslogtreecommitdiffstats
path: root/mkspecs/features
Commit message (Collapse)AuthorAgeFilesLines
* Fix Bitcode handling for both makefile and Xcode generatorsJake Petroules2017-03-031-2/+8
| | | | | | | | | | | | This fixes an issue which caused certain iOS projects to fail to link when building with Xcode, and also fixes an issue where projects were only ever built with -fembed-bitcode instead of -fembed-bitcode-marker for debug builds with the makefile generator. Task-number: QTBUG-58754 Change-Id: Icf0c9f0d64dbc0b38d6c48bf635c5383a78bd6d5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* don't assume that configure --foo options' value is 'yes'Oswald Buddenhagen2017-02-241-6/+12
| | | | | | | | | | | | otherwise, the invalid "--qpa xcb" would complain about "xcb" being unknown, rather than "--qpa" missing an argument. actual booleans are handled by the type-specific callback, just like -foo would be. Task-number: QTBUG-59062 Change-Id: I96632dacfb721cfcbf223b76f6c5c38c810e8d0e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* de-duplicate and simplify condition checking in qtConfProcessOneOutput()Oswald Buddenhagen2017-02-241-9/+2
| | | | | | | amends 90eee08b3. Change-Id: If1fa2b14d758cc252d9a2ec3f9deedd1dd200c5e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add CONFIG += no_moc_predefs to allow one to escape problemsThiago Macieira2017-02-231-1/+1
| | | | | | | | | | | | | | | | | Sometimes, users need to add compiler flags to QMAKE_CXXFLAGS that aren't supposed to be passed to the predefs dump. That's especially true for -include options, as that would change completely what's defined. Not to mention that -include is a preprocessor option and shouldn't be in CXXFLAGS in the first place (Automake has CPPFLAGS, but qmake only has INCLUDEPATH and DEFINES). [ChangeLog][qmake] Added the ability to suppress the collection of the compiler predefined macros for moc's use. To disable the collection, use CONFIG += no_moc_predefs. Task-number: QTBUG-58857 Change-Id: I4139d5f93dcb4b429ae9fffd14a34d49825d9b85 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* configure: fix 'use' for detecting static librariesOswald Buddenhagen2017-02-221-1/+1
| | | | | | | | | these statements are assumed to provide dependencies for the currently detected library. this implies that their resolved content must be passed to the linker after the to be detected static library. Change-Id: Ifaaee2ac71bf176e8a0033765fb979fe119deaba Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configure: make it possible to make 'use' conditionalOswald Buddenhagen2017-02-221-1/+14
| | | | | Change-Id: I8390634c5b23bf34692b4f532ab00a7aba690037 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configure: support using libraries by their exported nameOswald Buddenhagen2017-02-221-5/+45
| | | | | Change-Id: Ibe43c587e83e679baa5f0fc91f452ee06c1e293f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configure: fix cross-module library usesOswald Buddenhagen2017-02-221-7/+21
| | | | | | | | | | | this went unnoticed, because the only cross-module 'use' so far is that of egl, for which the code path provided for modular builds happens to (mostly) work due to the specs already providing the library definition. amends cc842ca4. Change-Id: I58c638d896eabd26f27d5cd90e3a7f8eeece9bc0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* clash-check configure sub-config namesOswald Buddenhagen2017-02-221-0/+3
| | | | | | | | we derive the keys from the last fragment of the parent directory, which is potentially not globally unique. Change-Id: I57cf13394984e6e3d902c0f1bb495bd3920bfc75 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configure: propagate errors from libraries' transitive dependenciesOswald Buddenhagen2017-02-221-1/+5
| | | | | | | | | | if a library uses another library which happens to be absent, then the former must also fail. amends cc842ca4. Change-Id: I91f157a6d1ed40b66e196340a282ebe493fcf40e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configure: error out on activating conflicting librariesOswald Buddenhagen2017-02-221-0/+14
| | | | | Change-Id: I5d7dbeb3b3a653f7151279c7eba9387c107f9c42 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configure: generalize command line overrides of library parametersOswald Buddenhagen2017-02-221-2/+36
| | | | | | | | | the outdated ones remain for backwards compatibility; some remain unchanged. Task-number: QTBUG-30083 Change-Id: Ia596b854d26b00fcb4f48df0da7ad893650ac1c8 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* add configure -list-librariesOswald Buddenhagen2017-02-222-1/+38
| | | | | | | currently mostly for debugging purposes (especially with -verbose). Change-Id: I8af32c61df0b19861aa79bc4bbdd3f6095dbe9b7 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* add configure -list-featuresOswald Buddenhagen2017-02-222-7/+27
| | | | | | | | | also actually deletes qfeatures.txt, which was already claimed by a668c6a6, but not actually done. Task-number: QTBUG-58411 Change-Id: I686760632fee7c10b01bd2e83f2481b01bc2b774 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* fix usage of "empty" librariesOswald Buddenhagen2017-02-224-21/+13
| | | | | | | | | | | | | a header-only library in a default location would produce no variables at all, making it appear undefined. fix this by forcing the writeout of the QMAKE_LIBS_* variable, and use its definedness (rather than non-emptiness) as a signifier. this works for both QMAKE_USE and configure tests'/libraries' 'use' entries. Change-Id: Id7a1e23725caba1a91ea4db448b4aeb7fe632393 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* prefer library's export name when looking up input variablesOswald Buddenhagen2017-02-221-5/+14
| | | | | | | | | | if multiple library entries provide the same export (as openssl is going to), it makes sense to make them recognize the same input variables, as it would be rather counterproductive to require different configure arguments for each. Change-Id: Ia32842e95294296d50220297f85689bc92de2d05 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configure: refactor qtConfExportLibrary()'s interfaceOswald Buddenhagen2017-02-221-14/+18
| | | | | | | | pass the library name instead of a library source object. improves overall legibility at a marginal runtime cost. Change-Id: I248ee9622af2b2c37daa2dbc0cc0bca5701d7925 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* moc: remember to quote the path to moc_predefs.hThiago Macieira2017-02-121-1/+1
| | | | | | Task-number: QTBUG-58764 Change-Id: I4baef2edf7624ad69d96fffd14a22209a2bb90be Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* don't litter configure test build dirs with .qmake.cache filesOswald Buddenhagen2017-02-081-2/+3
| | | | | | | | there should be only one, at the level of the isolating .qmake.conf. Change-Id: I25f05864d6f5c1bb5caf2fb4138adb4bb9cc2f22 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* adjust configure to native build optimizationsOswald Buddenhagen2017-02-061-1/+7
| | | | | | | | | | | | | | | | don't fail to set up cross_compile early enough. otherwise, we'd populate the cache for target builds with data for the host. amends 6b8666c7 and 5060740f. conversely, pass on extra flags to configure tests when not cross building. amends d8be8110 (and 2c5eb3e6). Task-number: QTBUG-58556 Change-Id: I531d71e06204a0b17ae6dabf017a52e0f2efd9a7 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* fix installation of header-only frameworksOswald Buddenhagen2017-02-021-3/+3
| | | | | | | | | | | in a framework build, the headers are inside the "library", so it's obviously not very wise to suppress its installation on the basis of it not being there. Task-number: QTBUG-57656 Change-Id: I026a3e486a2aad6ee0b8e0d264af4385af945e42 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Harald Fernengel <harryf@gmx.com>
* Turn on -utf-8 compiler option for msvc2015 update 2 and upJian Liang2017-02-012-0/+6
| | | | | | | | | | | | | | Building qt with msvc would fail with the -developer-build configure option turned on under simplified chinese locale. This is because msvc will emit warnings for source files with utf-8 characters which are not representable in CP936, and -developer-build implies treating warnings as errors. This patch turn on -utf-8 compiler option for msvc2015 update 2 and up only for building qt. Task-number: QTBUG-58161 Change-Id: If38ea11eb1f39f8e08efa1cccb92e0eea50daf92 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Fix Android deployment for 64-bit targetsLaszlo Agocs2017-02-011-0/+3
| | | | | | | Match the logic that is used for building. Change-Id: I9ce6db2357b9b3e19a1e932fae57d376aae406f7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* win32/default_pre.prf: remove unused incremental_off CONFIGThiago Macieira2017-01-311-1/+1
| | | | | | | | Nothing uses this and there's no incremental_off.prf since the MSVC6 purge in 99f390f9 (dec 2009). Change-Id: I2bc52f3c7a574209b213fffd149b4bf378805969 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Mark Clang 4.0 as warning-freeThiago Macieira2017-01-311-2/+2
| | | | | Change-Id: If337c17c98844a98b196fffd146e63c38ce1ee7b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Apple: fix QMAKE_DEFAULT_INCDIRS so compiler invocations use the sysrootJake Petroules2017-01-261-1/+12
| | | | | | | | | | | | | | The compiler command line used to populate QMAKE_DEFAULT_INCDIRS must include the sysroot in order to generate the correct paths list. This fixes a regression introduced in afd8263 which in turn attempted to fix an earlier regression making it impossible to override the deployment target in user project files. Task-number: QTBUG-58325 Change-Id: I93e6b7ef90b2744dd2f03c77da31c692cb194976 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Remove the -no-rtti option from configureThiago Macieira2017-01-261-1/+1
| | | | | | | | | | | | | It only applied to Windows (not MSVC, like the help said) and the build was broken with this option. So remove it, as we clearly never test this. [ChangeLog][Windows] The -no-rtti configure option was removed, as Qt 5.8 fails to build under that condition. To disable RTTI on user code, add to your .pro file: CONFIG += rtti_off. Change-Id: I2bc52f3c7a574209b213fffd149aae1b8d0cf9df Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* 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>
* 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-202-4/+4
| | | | | | | | 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>