summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt_configure.prf
Commit message (Collapse)AuthorAgeFilesLines
...
| * configure: turn qtConfOutputPostProcess_*() callbacks into replace functionsOswald Buddenhagen2016-11-151-5/+9
| | | | | | | | | | | | | | | | now the callbacks don't need to re-export the designated file contents, which improves the abstraction and removes some boilerplate. Change-Id: Ifa50313155fc96762025e2610b810ebb71daa373 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * configure: fix caching of includedir resultsOswald Buddenhagen2016-11-151-1/+1
| | | | | | | | | | | | | | amends ce7df6ac7. Change-Id: Id56ee59b5955addb58cc4d0879dc097bdd7841d8 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * fix configure logging when no cache is present yetOswald Buddenhagen2016-11-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | this got broken in 2ad4d75754. however, the new configure system operates from the top-level build dir anyway, so there is no point in messing with the cache as a reference point to start with - just use OUT_PWD. Task-number: QTBUG-57120 Change-Id: I69629bf497931574bff8452939170abb1776ab60 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Make 'use' entries work across module boundariesLars Knoll2016-11-141-7/+27
| | | | | | | | | | | | | | | | | | 'use' entries in the tests and libraries sections of configure.json files should work acrosss library boundaries, so a test in qtwayland can refer to a library from qtbase. Change-Id: Ide02b9985be427a27982a422ca84a29b23145bcf Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * Allow checking for the existence of modules in configure.jsonLars Knoll2016-11-141-4/+41
| | | | | | | | | | | | | | | | | | You can now use 'module.gui' to check whether the Qt Gui module exists in the current build of Qt. Task-number: QTBUG-56656 Change-Id: Ic73f162ed0578e07c70e3ec3706f285b6d09a41d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * Introduce QMAKE_CD to enable us to cd from one Windows drive to anotherHannah von Reth2016-11-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | On Windows cd does not change the drive. So when you are on drive C: and type "cd D:\data" it will change the directory on drive D: but not affect your current working directory. To also change your drive you have to provide the parameter /d on Windows, so "cd /d D:\data" will also change the drive. Task-number: QTBUG-57080 Change-Id: Ib629879534523982eec693cef725f20a535a1a74 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * don't log silent tests to config.logOswald Buddenhagen2016-11-071-6/+3
| | | | | | | | | | | | | | | | they were already omitted from the console output; there is no need to spam the log with them (their completion was not logged, either). Change-Id: I32c97413d2e6ceb18ee61356855cc6a7fa2222bf Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * don't write "Checking for ..." to config.logOswald Buddenhagen2016-11-071-3/+1
| | | | | | | | | | | | | | the more precise test/library name is already logged. Change-Id: I73d3229a9e20a0024582b18bfe9f2848cab5f4ff Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * don't clear config.log unless re-checkingOswald Buddenhagen2016-11-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | it is counterproductive to clear the log when cached test results are used, as that makes it hard to determine how they came to be. -recheck isn't as clear-cut as -recheck-all, as only part of the results is discarded, and we can't reasonably discard only part of the log. i opted for clearing the log entirely, as having both the old and new results in the log would be probably quite confusing. Change-Id: Ibb391f2ba2ea86d73c23365d46cc66ed8a2158d6 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * fix iteration over a feature's outputsOswald Buddenhagen2016-11-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | use precalculated path instead of incorrectly assembling it from scratch. it accidentally worked when the features happened to be in the right order, as the iteration variable 'feature' from the calling function was inherited. however, if the feature was accessed via dependency resolution, things blew up. amends 90eee08b3e, which presumably came to be this way due to a missing adjustment to a refactoring. Change-Id: I78b0acc0682cfc27a458df014ce14262a65c6241 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * nuke obsolete commentOswald Buddenhagen2016-11-071-3/+0
| | | | | | | | | | | | | | amends 56ee007b3. Change-Id: Ida4f79ae72f185ce1f4cca9add30e3084da9c5bf Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.8' into dev" into refs/staging/devLiang Qi2016-11-021-27/+11
|\ \
| * | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-11-021-27/+11
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Blacklist tst_QMenuBar::taskQTBUG46812_doNotLeaveMenubarHighlighted() on macOS. Conflicts: mkspecs/features/mac/default_post.prf mkspecs/features/mac/sdk.prf mkspecs/features/uikit/default_post.prf mkspecs/features/uikit/sdk.prf src/angle/src/libEGL/libEGL.pro src/platformsupport/fontdatabases/fontdatabases.pro src/platformsupport/platformsupport.pro src/plugins/platforms/cocoa/qnswindowdelegate.mm src/plugins/platforms/direct2d/qwindowsdirect2dintegration.cpp src/plugins/platforms/ios/ios.pro src/plugins/platforms/ios/kernel.pro tests/auto/widgets/widgets/qmenubar/BLACKLIST tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp Task-number: QTBUG-56853 Change-Id: If58785210feee3550892fc7768cce90e75a2416c
| | * Enable the "use" option for library checks that come with a testLars Knoll2016-10-281-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "use" option was so far only available for tests, to define that the test requires usage of a certain library. Extend this to libraries, so they can also define that running the test for the library requires usage of another lib. Change-Id: I2749c21e27c08ad6e12040590317c06c97f493db Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| | * Write PKG_CONFIG_EXECUTABLE to qmodule.priLars Knoll2016-10-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... and use that variable in qt_configure.prf to find the pkg-config we detected during qtbase configuration. This is required for modules outside of qtbase being able to use pkg-config to configure external libraries. We do not use the PKG_CONFIG variable any more, as that interferes with the $$pkgConfigExecutable() function, which some Qt modules still use. Change-Id: I8886a266207e04301009fe8207c16b02c5455b2f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| | * slightly improve logging of library probingOswald Buddenhagen2016-10-181-4/+7
| | | | | | | | | | | | | | | | | | Change-Id: Idd137251c6db5effd3571591d837d49e8fb9525d Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * stop exporting the library versionsOswald Buddenhagen2016-10-181-21/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | all users of this functionality have been removed, and not emitting the version info saves quite some noise from the generated files. the reason why the users have been removed is that it was unreliable in the first place: if a dependency is found without pkg-config, no version information would be available. the extraction of the version via pkg-config itself is kept in place, as configure tests could be potentially optimized by utilizing it. this reverts much of commit 48b4e0bf6f. Change-Id: I01917f3b2a56b747d7cc54955141d20d23d0990a Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Remove unnecessary CONFIG-=simulator from qtConfTest_compileJake Petroules2016-11-011-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | This was added in 28f5d7931656d210364a0aba0b87f1b412e10165 in conjunction with CONFIG+=single_arch, but CONFIG+=single_arch on its own is enough to properly disable unwanted architectures for configure tests in simulator+device builds now that exclusive simulator and device builds have been removed for all relevant configurations. This change therefore fixes the -sdk iphonesimulator build for the upcoming merge from 5.8. Change-Id: I57fa2c4f0782a84755a39c6edfce2dcfec554c40 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-10-131-24/+42
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/library/qmakeevaluator.cpp (cherry picked from commit 1af6dc2c8fb4d91400fddc5050166f972ae57c9a in qttools) src/corelib/kernel/qcore_mac_objc.mm src/gui/painting/qcolor.h src/plugins/platforms/cocoa/qcocoawindow.mm Change-Id: I5b3ec468a5a9a73911b528d3d24ff8e19f339f31
| * fix referencing libs fields dispatched to the selected sourceOswald Buddenhagen2016-10-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | the field was "over-expanded", which led to always querying the non-existing source with an empty name. this broke the handcrafted openssl library export which uses the feature. amends c0cc50520. Task-number: QTBUG-55530 Change-Id: Id019fcb3e7adcecaf47d7a65820179da1617c0f7 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
| * Make sure flags from library detections go to the right placesThiago Macieira2016-10-101-12/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Split them and add -I flags to INCLUDEPATH and -D flags to DEFINES. Anything else gets reported as a problem and dropped. This has the benefit that qmake will automatically use -isystem for those paths if they lie in a system directory. As a consequence of that, we won't get any warnings in headers located there. There are multiple cases of glib, gtk, etc. headers producing warnings (such as enums ending in comma). This does not fix warnings produced by use of macros declared in system headers, though... Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Change-Id: I4b844cb518dbae5ea499811221f9015af985110a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| * fix parsing of -system-proxiesOswald Buddenhagen2016-10-041-6/+10
| | | | | | | | | | | | | | | | | | | | | | this is, in fact, not the same as --proxies=system, and the old configure handles this by putting special cases before the catch-all patterns. we achieve this by trying the verbatim names (of all options, which is admittedly a tad inefficient) before applying the -qt/-system transformation. Change-Id: Ic85a9d76d6e8ca95b2e1b5566f047f4b7ac38b98 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * make command line parsing more compliant with configure scriptOswald Buddenhagen2016-10-041-9/+12
| | | | | | | | | | | | | | | | | | | | | | - generic --* options are defined to be booleans, without the possibility of having an additional parameter - -qt and -system options don't exist in the --* form - --foo=bar options exist only in the --* form Task-number: QTBUG-55610 Change-Id: Ib0480ac6f479df48045c9de8e854a525862ee363 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Share the multi-arch infrastructure between UIKit and macOSJake Petroules2016-09-291-1/+5
|/ | | | | | | | | | | | | | | | There's no reason for this to be separated, regardless of the support status of i386 macOS builds. Additional architectures may appear in the future (and currently there's actually 3 - i386, x86_64, and x86_64h for Haswell CPUs). So this feature could be used to get combined generic x86_64 and Haswell builds. Some system libraries appear to have an x86_64h slice in Sierra. [ChangeLog][Build System] Support for universal binaries on macOS has been re-introduced. Change-Id: I1c89904addf024431fdb3ad03ea8ab85da7240ad Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Convert the old feature systemLars Knoll2016-09-151-2/+14
| | | | | | | | | | | | | ... to the new qmake based configuration system. This removes the old qfeatures.txt (distributed over configure.json files) and qfeatures.h (distributed over qconfig-<module>.h files). qfeatures.prf is gone without replacement, as attempts to use it would lead to followup errors anyway. Change-Id: I1598de19db937082283a905b9592d3849d2199d0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* rename description => label in configure.jsonOswald Buddenhagen2016-09-151-7/+7
| | | | | | | | | | "description" suggests something slightly longer. this may seem like a gratuitous change, but the upcoming replacement of the old feature system clarifies makes it seem much less so. Change-Id: Ibe702e01cb146b59127bf1f990b4acaef1c61d55 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Modularize the new configure system (infrastructure part)Lars Knoll2016-09-101-159/+339
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change implements the required infrastructure to modularize the new configuration system. This requires a hierarchy of configuration files, both for handling multiple repositories and for individual modules inside the same repository. When configuring, they all need to get loaded first, as command line processing needs to know about all possible command line options. When the command line has been processed, the individual configuration files need to get processed one after the other and independently from each other. Configure is now automatically invoked when building the a project tree's "root" project; this works with both modular and top-level builds of Qt (the latter with an according change in the super repo). As an immediate consequence, the -skip option moves to the super repo with a different implementation, as configuration is now done after the repo list is determined. The option belongs there anyway. This commit also adds an optional testDir entry to the json file. Like this, we can still have all configure tests in qtbase/config.tests and the configuration file in, e.g., corelib can reference those. The files section can now be left out as long as a 'module' entry is present, specifying the module name. The names of the files to generate can then be deduced from that name. We still need to be able to specify names directly for the global configuration files. qtConfig() now also queries features which are module-specific. As it is sometimes necessary to query the configuration of modules which should not be actually linked (and cannot in the case of subdirs projects), the new variable QT_FOR_CONFIG which allows specifying configuration-only dependencies is introduced. Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Change-Id: Id1b518a3aa34044748b87fb8fac14d79653f6b18 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Be more robust when reading the library version number from pkg-configLars Knoll2016-09-101-0/+1
| | | | | | | | Ignore everything that after the initial period separated numbers. Change-Id: I376b154ff0ab6e3877223ec1383ed4708ecd2164 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configure: ask pkg-config only for the info we're interestedThiago Macieira2016-08-311-1/+1
| | | | | | | | | | No need to get libs flags other than -L and -l, since we're adding everything to the LIBS variable in qmake anyway. We wouldn't want rpath or other linker flags to leak through. Change-Id: I7d42fe4b581e49df891cfffd146fab61fecbc5c9 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* de-duplicate code relating to evaluation of 'negative' flagsOswald Buddenhagen2016-08-301-12/+5
| | | | | Change-Id: I3fe4816719d9b2885319a1bb516cfb137f13e3f8 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* remove pointless export from qtConfHandleLibrary()Oswald Buddenhagen2016-08-301-1/+0
| | | | | | | | | | that variable is not modified in this scope, so there is no point in exporting it here. it was probably a leftover from an earlier version. amends c0cc50520. Change-Id: Ic6f93d8c38d547308aa88ef337fe49bda004b337 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* make qtConfOutputVar() a tad less crypticOswald Buddenhagen2016-08-301-3/+3
| | | | | | | don't use variables where the value is known. Change-Id: I3ec21441c5b7ee0b028f8f72e05d9e40e6192ecf Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* don't export cached libraries which were in fact not foundOswald Buddenhagen2016-08-301-1/+2
| | | | | | | amends ce7df6ac7d. Change-Id: I9898e756283a2e2556458bf71b59b0c1c76064ec Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* don't cache test result after pre-dep failureOswald Buddenhagen2016-08-251-16/+18
| | | | | | | | there is no point in doing that, as we don't load it in that case anyway. in fact, it would lead to caching a new result in every run. Change-Id: Ia5cb27fa8a5d705d7f32a785b1e3b944f92d8929 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* don't cache results of build_parts and skip_modulesOswald Buddenhagen2016-08-251-0/+2
| | | | | | | | | | | as these tests do nothing but validating the command line, caching the result is more confusing than anything else. also make the tests silent, so they don't clutter an otherwise fully cached configure run. Change-Id: Ifc3d65278769b36a056650f077fd6274a7e192e7 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* remove extra empty line before configure reportOswald Buddenhagen2016-08-251-1/+0
| | | | | | Change-Id: Id985e4738dda89e4d1af1ceccda33d830316e66a Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* add configure test result cachingOswald Buddenhagen2016-08-191-0/+71
| | | | | | Started-by: Lars Knoll <lars.knoll@qt.io> Change-Id: I29bafc5913cf95d9908dbcdd9597df2258b69837 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove useless guards around #define's in qconfig.hLars Knoll2016-08-191-2/+0
| | | | | | | | | | | | These are not meant to be overwritten by command line defines anyway. Bad things could happen if they are not in sync with the values in the pro files. If you want to change them, reconfigure Qt. Change-Id: Ic456e54b97e6909f01a4f4be33e3d7e2b2571e80 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Rework privateFeatureLars Knoll2016-08-191-3/+5
| | | | | | | | | | | | | | | | | | privateFeature would add QT_NO_FEATURE to the DEFINES in the private .pri file, which was somewhat inelegant. Additionally, it would add the feature to the _public_ QT_CONFIG variable, which was plain wrong. Replace the implementation with the one just introduced for publicFeature, with the difference that the features are written to the private files instead. As this entirely disposes of the old system, all usages in the project files need to be replaced atomically as well. Change-Id: I506b5d41054410659ea503bc6901736cd5edec6e Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Add support for safe feature checking at compile timeLars Knoll2016-08-191-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added a qtConfig(feature) function to qmake, and a QT_CONFIG(feature) macro. These can safely check whether a certain compile time feature of Qt is enabled or not. For this to work the feature has to have a publicFeature or privateFeature output in the configure.json file. In pro files, please use the qtConfig(feature) test function instead of checking contains(QT_CONFIG, feature), as the latter will be unreliable with the upcoming modularization (it requires a load(qt_module_config) before doing any such checks). Note that feature names are now lowercase, and identical (except for hyphens versus underscores currently) in the pro and c++ files. This makes the logic easier to follow, as we avoid all double negations, and most importantly, QT_CONFIG and qtConfig are implemented in a way that you'll get a build error for a mistyped or non-existent feature. This will also prevent accidental use of a widget feature in gui in the future. This gives us complete symmetry between the handling in pro and c++ files. Change-Id: I60404f97953724e639ffb6386cce2e8b1e4b735a Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Improve library version handlingLars Knoll2016-08-191-1/+16
| | | | | | | | | | | Output the version as a define into the private config header as a define using a hex number. Like that we can easily do version checks on libraries using the QT_LIBRARY_VERSION(lib) and QT_VERSION_CHECK() macros. Change-Id: I6dc4ac6550886ca95c5542b6e75cd933ed079d76 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* rewrite makespec verification with qmake based systemOswald Buddenhagen2016-08-181-0/+7
| | | | | | | | cleaner, and covers windows as well. Change-Id: I0e884909a3f49610fab750ba1ef6112f43e5d5d1 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Use the qmake based configuration system also on WindowsLars Knoll2016-08-181-2/+2
| | | | | | | | | | | | | | | | | | | | Adapt configure.exe to use qmake to do most of the work of configuring Qt. This unifies a large part of our configuration system between Unix and Windows. configure.exe is now still doing the license check, creating qconfig.cpp, building qmake, and not much more. On the way, re-implement the still missing Windows-specific tests with the new system. The opengles2 vs. opengl-desktop conditions got a bit convoluted, as Unix prefers desktop GL, while Windows GLES2 (via ANGLE). Superficially, there is a circular dependency, but the platform scopes are supposed to break it. Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Change-Id: Ia1941f2c34b7f5bd4990a7673cd737361381c2e7 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Handle windows line endings and tabs in json config filesLars Knoll2016-08-181-0/+2
| | | | | | Change-Id: I154629d862977dde5232db3bb2597474b6053ffd Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* replace mechanism to override variables from the mkspecsOswald Buddenhagen2016-08-181-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | it is sometimes desirable to override values from the mkspec without modifying (or wrapping) the spec itself. linux distributors do this on a regular basis. so far, we'd pick up CFLAGS, etc. from the environment, in a somewhat autoconf-like fashion. however, over time, this approach proved problematic: the concept doesn't mix particularly well with mkspecs to start with, is unexpected (and therefore causes frustration), and doesn't mix well with cross-building (at least the way it was realized). ironically, it was implemented this way (quite a while ago) upon my explicit request ... the new mechanism uses explicit variable manipulations on the configure command line, just like qmake itself understands. as it happens, this is again quite similar to autoconf-generated configure scripts. however, this time around we don't pretend to be actually autoconf-like, so we also don't try to map any variable names (some of which have different semantics anyway). this commit also eliminates the last use of the QMakeVar() function, so delete it and the underlying infrastructure. Task-number: QTBUG-32530 Task-number: QTBUG-42962 Change-Id: Id31a6b80e1add08ca21f5b178614bda530d12374 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add configure.exe-like FOO_LIBS=bar style command line optionsLars Knoll2016-08-181-3/+63
| | | | | | | | | Add the command line options supported by the windows version of configure and respect them when running our configure tests. Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Change-Id: I1206d60a177e251540d34d232c73c930847564b3 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add support for locating headers and libs in qt_configureLars Knoll2016-08-181-3/+28
| | | | | | | | | So far we only had support for locating executables. Also support locating header files and libraries. Change-Id: Ib2a83e8338d2da975204089d84c608061a081f29 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Implement proper dependencies for configuration testsLars Knoll2016-08-181-20/+61
| | | | | | | | | | | | | | | Some test types (like the compile tests) require that other features have been checked before, so that the compile test sets up the right environment. Implement this through a 'testTypeDependencies' section in the json file that explicitly encodes those dependencies for certain test types. This replaces the 'priority' field in the feature list. Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Change-Id: I70e7c67a4f2c971149bcac090cecbbe9cfff3f57 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* rewrite library handling in configureOswald Buddenhagen2016-08-181-58/+211
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | so far, each library was distributed over a test and (optionally) a 'library' output of a feature. this was conceptually messy and limiting. so instead, turn libraries into a category of their own. libraries now support multiple properly separated sources, which makes overriding them a lot saner. sources can be conditional to accommodate platform differences. as an immediate consequence, move (almost) all library references from the config test projects to the json file. a few tests were excluded, because they are doing somewhat magic things that should not be handled in this bulk change: - freetype: .pri file shared with actual source code - clock-gettime: -lrt is conditional, and there is a .pri file which is shared with actual source code - ipc_posix: -lrt & -lpthread conditional - iconv: -liconv conditional the multi-source mechanism is used to make a variety of tests work on windows, where the library name differs from unix (and sometimes between build configurations). some tests still needed minor adjustments to actually work. on the way, fix up disagreements between manually specified libraries and pkg-config lines (affecting several xcb-related tests). Change-Id: Ic8c58556fa0cf8f981d386b13ea34b4431b127c5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* improve handling of test commands which produce outputOswald Buddenhagen2016-08-181-5/+5
| | | | | | | | | | | | | | | | | | never use $$system() directly, but instead use qtRunLoggedCommand() with a newly introduced out parameter. that way we can print the command's raw output, which should help debugging configure problems. additionally, we now consistently check the exit code of all executed commands, which should avoid confusing followup errors. note that as a side effect some calls now use $$system()'s 'lines' mode instead of the bizarre default splitting mode. this has no impact on any of the cases, which is why it is basically a negligible style change at this point. however, qtLog() gained support for arguments with more than one element to accommodate this. Change-Id: I40d907e27de32dfec8d6086ce7d93fc4be18241f Reviewed-by: Lars Knoll <lars.knoll@qt.io>