summaryrefslogtreecommitdiffstats
path: root/mkspecs/features
Commit message (Collapse)AuthorAgeFilesLines
* get rid of Q_FONTCONFIGDATABASE defineOswald Buddenhagen2016-10-151-1/+0
| | | | | | | | use fontconfig feature directly instead. easier to understand data flow, and less noisy compiler command lines. Change-Id: If80af4b08933049d553df685b41422d15e1e4f5c Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* fix shadow builds with pre-synced headers, part 3Oswald Buddenhagen2016-10-142-3/+5
| | | | | | | | | | with the new configure system, all modules which have a configure.json also produce a private config header. the forwarding module pri needs to reflect that. Change-Id: If79e10a2643d55ad9aa9815f20297d36d9b9feec Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* don't include injected headers into linker version scriptOswald Buddenhagen2016-10-143-3/+3
| | | | | | | | | | | it makes no sense to version them, as they contain only #defines anyway. it also removes the need to special-case their location in shadow builds with pre-synced headers, which we actually failed to do anyway. Task-number: QTBUG-56286 Change-Id: I4ea717f7be56494cfea0572389bea173d7470b6e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* 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>
* Merge "Merge remote-tracking branch 'origin/5.7' into 5.8" into refs/staging/5.8Liang Qi2016-10-111-2/+3
|\
| * Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-10-111-2/+3
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/image/qpixmap.cpp src/widgets/kernel/qformlayout.cpp Change-Id: I8a8391a202adf7f18464a22ddf0a6c4974eab692
| | * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-10-081-2/+3
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/network/access/qhttpnetworkconnection.cpp src/network/access/qhttpnetworkconnection_p.h Change-Id: I11f8641ef482efa8cee1b79977d19cc3182814b4
| | | * Skip chmod for separate_debug_info when cross compiling on WindowsSamuli Piippo2016-10-071-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-56289 Change-Id: If6dd07182ed77e87865004c14240bf7f0c764772 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | | winrt: Enable usage of static manifest filesMaurice Kalinowski2016-10-111-121/+125
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, manifest files always got processed to perform, e.g., variable expansion. This change introduces the 'verbatim' flag for WINRT_MANIFEST.CONFIG to disable those steps and perform a simple copy of the source manifest. Task-number: QTBUG-43468 Change-Id: Ie7d4d27376efb3bcf5bc38163496f0a1f1319742 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | | Make sure flags from library detections go to the right placesThiago Macieira2016-10-102-16/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-10-066-22/+120
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/mac/default_pre.prf mkspecs/features/qpa/genericunixfontdatabase.prf mkspecs/features/uikit/default_post.prf mkspecs/features/uikit/resolve_config.prf mkspecs/macx-ios-clang/features/default_post.prf mkspecs/macx-ios-clang/features/resolve_config.prf src/corelib/io/qiodevice.cpp Change-Id: I6f210f71f177a3c3278a4f380542195e14e4b491
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-10-013-2/+113
| |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/mac/default_pre.prf mkspecs/macx-ios-clang/features/resolve_config.prf qtbase.pro Change-Id: I65b5ebca4942a4f295bdd4ac1568e5c347333aea
| | * Add the ability for qmake to build Xcode asset catalogsJake Petroules2016-09-283-2/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This essentially emulates Xcode behavior for QMAKE_BUNDLE_DATA. This is mostly for our own internal use. No documentation is provided. Variables introduced: - QMAKE_ASSET_CATALOGS - QMAKE_ASSET_CATALOGS_APP_ICON - QMAKE_ASSET_CATALOGS_BUILD_PATH - QMAKE_ASSET_CATALOGS_INSTALL_PATH Change-Id: I9577415d637f022d05f301c5a0d799483cd2a963 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| * | purge attempt to install fontsOswald Buddenhagen2016-09-291-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the fonts have been deleted. amends c5ceabb9a1c. Change-Id: I8f707ea9da3bf2334d944f047d0ff7c14b3ff4bf Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | fix freetype/fontconfig configure systemOswald Buddenhagen2016-10-042-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | convert the ugly config.tests/[...]/freetype.pri file into a custom callback in configure.pri, and reinstate pkg-config use for freetype. subsequently, use QMAKE_USE for the actual library references. this fixes in particular cross-builds, as the new configure was not passing the necessary information to the test any more, so the old .pri file misbehaved. Task-number: QTBUG-54911 Change-Id: I5fc9c254334a2675f7db4d54df4c77637e8e2487 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | | make QMAKE_USE parameterizableOswald Buddenhagen2016-10-041-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | it's now possible to declare references which don't cause linking (or cause only linking). make use of this in the xcb-static library. Change-Id: Ic429e0a1200b3a333738ea8d8e576ff64b6cac21 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | factor out QMAKE_USE* processing to a separate prf fileOswald Buddenhagen2016-10-043-24/+23
| | | | | | | | | | | | | | | | | | | | | | | | this makes it possible for features added via CONFIG to use QMAKE_USE*, as default_post.prf is processed before all features in CONFIG. Change-Id: Id0812a0fb1aa5e658548bd2bc6003234085545e7 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Don't add -spec XXX more than once to system command in xcodebuild.prfJake Petroules2016-10-041-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "args" variable would contain the original -spec XXX flags in addition to the -spec macx-xcode passed in the system command invocation below. The last use of -spec takes effect, so this code was entirely ineffective. Consequently, uikit/default_post.prf in the nested qmake call thought it's still the top-level call and thus added xcodebuild again, which caused an infinite recursion. Change-Id: Ie98d8a7f3c1cd875f4a4146af9a66a66b48cc6cb 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>
* | | remove redundant load(qt_build_config)Oswald Buddenhagen2016-10-041-2/+0
| | | | | | | | | | | | | | | | | | | | | every repo's .qmake.conf is expected to do it already. Change-Id: I87ed75d80493d8f1c4548c5b9dadfdaf07b86d7e Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | remove obsolete module warningOswald Buddenhagen2016-10-041-8/+0
| | | | | | | | | | | | | | | | | | | | | this is a relic from the early times of the modularization. Change-Id: I9ca46fa6457bf9ca207b6be1f0637f0349569ddf Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | fix msvc build in dirs with spacesOswald Buddenhagen2016-10-041-1/+1
| | | | | | | | | | | | | | | Change-Id: I2df71cce68e59b8d7565fb43953947a9a84970b3 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | Reorder arguments to qmake self-invocation in xcodebuild.prfJake Petroules2016-09-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 26d44fce3dfb9dbd3b5be2a031fff8c1bb903960 added support for passing the configure options to qmake following a "--" argument. This interacted badly with xcodebuild.prf as the "args" variable would contain the standard qmake arguments AND the extra arguments following "--"... which were placed prior to -spec macx-xcode and the path of the .pro file, causing them to be ignored and thus qmake to print its usage when attempting to generate Xcode projects for Qt apps on UIKit platforms. Amends 6a9f38a11d56bb3ba6ec59955f3220627c0d30b6, which fixed the same issue inside qmake itself. Change-Id: I3056bd811c2ce958952fec8e05ddef7a063c0646 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-09-291-1/+7
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/uikit/xcodebuild.mk tests/auto/other/lancelot/tst_lancelot.cpp tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp Change-Id: Ia0ae2de86094120281abd445138877c2cc3e882c
* | | use bindir instead of libdir when launching tools on windows, take 2Oswald Buddenhagen2016-09-282-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this makes build dirs consistent with install dirs, which fixes launching tests, examples, and build tools in some configs. unfortunately, this makes prefix builds slower and their build dirs bigger due to the DLLDESTDIR implementation being stupid (QTBUG-11435), but i'm not inclined to fix that now. it isn't actually worse than for non-prefix builds, so whatever. Task-number: QTBUG-54438 Change-Id: Idbd034620e95cb23f7699d243678c4e9fa6353ac Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-09-211-7/+7
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5971b88e is not needed in new configure. This merge also reverts "fix QMAKE_DEFAULT_*DIRS resolution with apple SDK", 2c9d15d7, because it breaks iOS build with new configure system. Conflicts: mkspecs/features/default_pre.prf mkspecs/features/mac/toolchain.prf mkspecs/features/toolchain.prf src/dbus/qdbusconnection.cpp src/plugins/sqldrivers/mysql/qsql_mysql.cpp src/sql/drivers/mysql/qsql_mysql.cpp src/widgets/widgets/qmenubar.cpp src/widgets/widgets/qmenubar_p.h tools/configure/configureapp.cpp tools/configure/environment.cpp tools/configure/environment.h Change-Id: I995533dd334211ebd25912db05b639d6f908aaec
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-09-161-7/+7
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/qnx/qqnxscreeneventhandler.cpp Change-Id: I0af32ee55936d523cbd259b6fe82eb9c409f9074
| | * Fixes issue with iOS when project path has a whitespaceVikas Pachdha2016-09-151-7/+7
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-55505 Change-Id: Ic853ecd46a3cb098fff2904119e9002f3add3b8e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| * | fix QMAKE_DEFAULT_*DIRS resolution with apple SDKOswald Buddenhagen2016-09-155-46/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the code got factored out to an own toolchain.prf file, which is load()ed from default_pre.prf, so no change at first. however, on mac, we shadow toolchain.prf, and make it load() sdk.prf first. a side effect of this is that project files may not override QMAKE_MAC_SDK any more, which seems to be no big loss. it is still possible to override the sdk on the configure command line (but note that this only ever worked for the target sdk). it has also become harder to disable the use of an sdk altogether: putting CONFIG-=sdk into a project file or the qmake command line has no effect now. instead, it's possible to put it into .qmake.{conf,cache}. to make it simpler again, it's conceivable to finally add qmake -pre, which would allow setting variables before default_pre.prf is executed. Change-Id: I149e0540c00745fe8119fffd146283bb214f22ec Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Add a QT_REQUIRE_CONFIG(feature) macroLars Knoll2016-09-161-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This macro expands into a static_assert and can be used to trigger a compile error if a certain feature is not available when trying to compile some code. This is especially useful to protect against accidental inclusion of headers that implement functionality related to a feature. Change-Id: I456c55b989ce5f35f3af0e13c1886a85c23dfe29 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Convert the old feature systemLars Knoll2016-09-152-6/+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 configure.json/.priLars Knoll2016-09-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the different parts of configure.json/.pri into the libraries where they belong. Gui is not yet fully modularized, and contains many things related to the different QPA plugins. Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Change-Id: I6659bb29354ed1f36b95b8c69e7fce58f642053f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Modularize the new configure system (infrastructure part)Lars Knoll2016-09-108-167/+430
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Add BLACKLIST to builtin_testdataMaurice Kalinowski2016-09-071-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | For platforms which require packaging the testdata into the application resources, the BLACKLIST file needs to be added. Otherwise it will not be found during runtime. Change-Id: I2d5c3b3040b3b268bc73254459b8b902b7fae4e2 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | | Merge "Merge remote-tracking branch 'origin/5.7' into 5.8" into refs/staging/5.8Liang Qi2016-09-061-3/+3
|\ \ \
| * | | Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-09-051-3/+3
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/qt_common.prf src/plugins/platforms/windows/qwindowsdialoghelpers.cpp Change-Id: I03b92b6b89ecc5a8db7c95f04ebb92ed198098a8
| | * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-09-051-3/+3
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/testlib/selftests/generate_expected_output.py Change-Id: If856162abf9a24ae2c9946d336a7d1da03520fa7
| | | * Mark Apple Clang 7.x as warning-free on macOS and (also Clang 3.9) iOSJake Petroules2016-08-311-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | iOS was excluded in 09aeda21b902763919c2e0b2b06d09275d136e8c, probably unnecessarily. The build has been found to be warning-free. Change-Id: I81de2fff40938b6ab9f7a6a5b9f08f8a8baadb16 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | | Make TARGETED_DEVICE_FAMILY variable platform independentJake Petroules2016-09-051-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reduces unnecessary OS conditions in qmake since these platforms are mutually exclusive, and also opens up their potential for use on future devices (like carOS(?), which is device idiom '5'). This is also more similar to what Xcode does, as the TARGETED_DEVICE_FAMILY variable is not platform specific. Change-Id: I29d209cd8e0779f492bda829008264773e13c75c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | | Make DEVICE_ARCHS and SIMULATOR_ARCHS variables platform independentJake Petroules2016-09-052-31/+11
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reduces unnecessary OS conditions in qmake since these platforms are mutually exclusive, and also opens up their potential for use on macOS to transparently support multi-arch builds like UIKit platforms. This is also more similar to what Xcode does, as the DEPLOYMENT_TARGET variables are platform specific, while the ARCHS variable is not. DEPLOYMENT_TARGET has a use case for being OS specific in qmake (host tools vs targets), while ARCHS does not. Change-Id: Icee838a39e84259c2089faff08cc11d5f849758d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Remove simulator_and_device handling for the Makefile generatorJake Petroules2016-09-037-84/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch moves towards a more sensible layout for UIKit platforms, where both the device and simulator architectures for binaries are combined into a single Mach-O file instead of separating out the simulator architecutures into separate _simulator.a files. This approach is both more common in the iOS ecosystem at large and significantly simplifies the implementation details for Qt, especially with the upcoming support for shared libraries on UIKit platforms. This patch takes advantage of the -Xarch compiler option to pass the appropriate -isysroot, -syslibroot, and -m*-version-min compiler and linker flags to the clang frontend, operating in exactly the same way as a normal multi-arch build for device or simulator did previously. Exclusive builds are still enabled for the xcodebuild wrapper Makefile, which builds all four configurations of a UIKit Xcode project as before, as expected. A particularly advantageous benefit of this change is that it flows very well with existing Xcode workflows, namely that: - Slicing out unused architectures is handled completely automatically for static builds, as an executable linking to a library with more architectures than it itself is linked as, the unused architectures will be ignored silently, resulting in the same behavior for users (and the App Store won't let you submit Intel architectures either). - Removing architectures from a fat binary using lipo does NOT invalidate the code signature of that file or its container if it is a bundle. This allows shared library and framework builds of Qt to work mostly automatically as well, since an Xcode shell script build phase can remove unused architectures from the embedded frameworks when that is implemented, and if Qt ever starts signing its SDK releases, it won't interfere with that either (though binaries are just resigned). Change-Id: I6c3578c78f75845a2fcc85f3a5b728ec997dbe90 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Remove the ability to build simulator/device targets from SUBDIRS projectsJake Petroules2016-09-031-34/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is done because a followup patch will cause simulator_and_device builds to no longer use exclusive builds and so this feature could not work, but it is not strictly necessary anyways because users do not need to be able to do this. Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Change-Id: If869fbfea776751553c352c2d652edf745a3638d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Enable precompiled headers on iOS, tvOS, watchOSJake Petroules2016-09-022-5/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The actual blocker for precompiled headers is not the iOS/tvOS/watchOS platforms, but the way qmake handled multiple-architecture builds on Apple platforms. This patch allows multi-arch builds to be performed while using precompiled headers. Since df91ef3d6c55692a0236f67b6c6b134a3bf84098 (April 2009), Clang has had support for PCH files in the driver, which allows to use the -include flag to automatically translate to -include-pch. We can then take advantage of the fact that the -include option is allowed to not be separate from its argument, which lets us take advantage of -Xarch to specify a per-architecture precompiled header file. This is done through some magic in the qmake Makefile generator which "multiplexes" the PCH creation rule across multiple architectures and replaces a series of tokens with the proper precompiled header paths and architecture flags at usage point. Change-Id: I76c8dc9cda7e218869c2919f023d9b04f311c6fd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | 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>
* | | Move ios_devices.pl into uikit folderMike Krus2016-08-303-4/+54
| | | | | | | | | | | | | | | | | | | | | Was left behind in previous merges Change-Id: Ic30cc2b234b904ad819c4e3e57804ac6e58ec1e9 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | 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>