summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt_functions.prf
Commit message (Collapse)AuthorAgeFilesLines
* Qmake: Introduce and use QMAKE_{SYSTEM,SHELL}_NULL_DEVICE variable, take 2Orgad Shaneh2017-10-131-4/+1
| | | | | | | | | | SYSTEM is used for system() calls, while SHELL is used in the target Makefiles. Task-number: QTBUG-62985 Change-Id: Ia75d3939c59c98699359421166433e8b4a6ee35e Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Merge remote-tracking branch 'gerrit/5.8' into devTor Arne Vestbø2016-11-051-13/+49
|\ | | | | | | Change-Id: Ib31cae9b57f6fb078739c409162bf2987eb430ad
| * decouple packageExists() and PKGCONFIG from qt configurationOswald Buddenhagen2016-11-011-13/+49
| | | | | | | | | | | | | | | | | | | | | | users may want to use pkg-config regardless of whether qt itself was built with it. that's particularly relevant when using binary packages on macos while trying to use 3rd party dependencies from homebrew. Task-number: QTBUG-36256 Change-Id: I15e6d0bf5cdaff4274e2d7c07917e97f29157a5c Reviewed-by: Massimo Callegari <massimocallegari@yahoo.it> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-09-291-2/+4
|\| | | | | | | Change-Id: I3b51bb706e401edfda09a433c67aa58e44f33e83
| * use bindir instead of libdir when launching tools on windows, take 2Oswald Buddenhagen2016-09-281-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.8' into devLiang Qi2016-09-151-10/+12
|\| | | | | | | | | | | | | | | | | Conflicts: configure.json mkspecs/macx-tvos-clang/qmake.conf mkspecs/macx-watchos-clang/qmake.conf Change-Id: Iaf32339ace59dff9ed344972472744c55d75025c
| * Modularize the new configure system (infrastructure part)Lars Knoll2016-09-101-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Remove simulator_and_device handling for the Makefile generatorJake Petroules2016-09-031-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | qmake: Add shallow bundle supportJake Petroules2016-08-251-2/+4
|/ | | | | | | | | | | | | | This is a prerequisite for properly constructed framework bundles. On certain Apple platforms (iOS, tvOS, watchOS), bundles are used in "shallow" format, meaning that the directory structures are flattened compared to the one used in macOS bundles. shallow_bundle allows the difference to be expressed independently of the platform. Note that the term "shallow bundle" is used by Apple in Xcode internals. Change-Id: I1189c52b0ea66843c313783176c11cc2af97ad25 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Use qtConfig throughout in qtbaseLars Knoll2016-08-191-3/+3
| | | | | | | | | | | Use the new qtConfig macro in all pro/pri files. This required adding some feature entries, and adding {private,public}Feature to every referenced already existing entry. Change-Id: I164214dad1154df6ad84e86d99ed14994ef97cf4 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/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* make use of silent error() emissionOswald Buddenhagen2016-08-081-1/+1
| | | | | | | | get rid of the entirely superfluous stock "Aborting." messages - the event triggering the exit has already reported the problem. Change-Id: Ib9dfb9e4212f60eceb2ea432cdf56c5a8afe9d65 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.7' into devEdward Welbourne2016-07-191-1/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/library/qmakebuiltins.cpp qmake/library/qmakeevaluator.cpp qmake/library/qmakeevaluator.h qmake/project.h QMakeEvaluator: * evaluateConditional(): one side changed return type, the other changed a parameter type. * split_value_list(): one side changed a parameter adjacent to where ... * expandVariableReferences(): ... the other killed one overload and changed the survivor src/corelib/io/qlockfile_unix.cpp One side changed a #if condition, the other moved NETBSD's part of what it controlled. src/corelib/tools/qdatetime.cpp One side fixed a reachable Q_UNREACHABLE in toMSecsSinceEpoch(), the other moved it from the private class to the public one, in the midst of the "short date-time" optimization, which confused diff entirely. One side changed a QStringLiteral to QLatin1String, the other rewrote adjoining code. src/network/kernel/qauthenticator.cpp Both rewrote a line, equivalently; kept the dev version. src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h One side changed #if-ery that the other removed. tools/configure/configureapp.cpp One side added a check to -target parsing; the other killed -target. tests/auto/testlib/selftests/expected_cmptest.lightxml tests/auto/testlib/selftests/expected_cmptest.teamcity tests/auto/testlib/selftests/expected_cmptest.txt tests/auto/testlib/selftests/expected_cmptest.xml tests/auto/testlib/selftests/expected_cmptest.xunitxml Regenerated using generate_expected_output.py I note that quite a few other expected_* come out changed, now. There was no git-conflict in src/widgets/kernel/qformlayout.cpp but it didn't compile; one side removed some unused methods; the other found uses for one of them. Put FixedColumnMatrix<>::removeRow(int) back for its new user. Change-Id: I8cc2a71add48c0a848e13cfc47b5a7754e8ca584
| * Merge remote-tracking branch 'origin/5.6' into 5.7Edward Welbourne2016-07-151-1/+4
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/library/qmakeevaluator.cpp One side changed the iterator to use ranged-for, the other changed its body; they only conflicted because the latter had to add braces around the body, intruding on the for-line. Trivial resolution. Change-Id: Ib487bc3bd6e3c5225db15f94b9a8f6caaa33456b
| | * Add warning when using pkg-config with a Qt build with it disabledSamuel Gaist2016-07-131-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a warning that will be shown when link_pkgconfig is used in a project but Qt's configuration has it disabled. This can happen when Qt is built before pkg-config has been installed or if it's not detected. This will avoid user losing time trying to make pkg-config work while Qt just ignores it. Change-Id: Ieeff8dd6784b9430cfebef355855ec1be91bc96e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Add support for Apple tvOSMike Krus2016-05-171-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pass -xplatform macx-tvos-clang to configure to build. Builds device and simulator by default. Added ‘uikit’ platform with the common setup. Also added QT_PLATFORM_UIKIT define (undocumented). qmake config defines tvos (but not ios). tvOS is 64bits only (QT_ARCH is arm64) and requires bitcode to be embedded in the binary. A new ‘bitcode’ configuration was added. For ReleaseDevice builds (which get archived and push to the store), bitcode is actually embedded (-fembed-bitcode passed to clang). For all other configurations, only using bitcode markers to keep file size down (-fembed-bitcode-marker). Build disables Widgets in qtbase, and qtscript (unsupported, would require fixes to JavaScriptCore source code). Qpa same as on iOS but disables device orientation, status bar, clipboard, menus, dialogs which are not supported on tvOS. Change-Id: I645804fd933be0befddeeb43095a74d2c178b2ba Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* | make extra compiler targets depend on their respective compilerOswald Buddenhagen2016-04-181-0/+8
| | | | | | | | | | Change-Id: I6c04e0188137f6bbfeab243f00860b8ff079f69a Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-211-0/+13
|\| | | | | | | | | | | | | | | | | Conflicts: src/widgets/styles/qgtkstyle_p.cpp tests/auto/corelib/io/qtextstream/test/test.pro tests/auto/corelib/plugin/plugin.pro Change-Id: I512bc1b36acf3933ed2b96c00f476ee3819c1f4b
| * support relative paths in configure -ROswald Buddenhagen2016-03-161-0/+13
| | | | | | | | | | | | | | | | | | [ChangeLog][configure][Unix] configure -R now supports paths relative to -libdir. Change-Id: Ie56264a6dedcbaf5577c7ef44b056c8a7870ef48 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Merge "Merge dev into 5.7" into refs/staging/5.7Oswald Buddenhagen2016-02-171-2/+3
|\ \
| * | Generalize iOS simulator and device exclusive buildTor Arne Vestbø2016-02-121-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Preparation for Apple tvOS support, which shares a lot with the iOS platform. Change-Id: I543d936b9973a60139889da2a3d4948914e9c2b2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Revert "Fix shared library framework builds of Qt with a platform suffix."Tor Arne Vestbø2016-02-171-10/+0
|/ / | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c4ecb81d6d64a190f7d24222d8cf35d953e73c1e. Hard-coding the library suffix into the linker flags was wrong. The library suffix is handled at runtime with DYLD_IMAGE_SUFFIX, set as part of the Xcode scheme or during debugging in .lldbinit. Change-Id: I11907b2755f7f187fb6fa18202813fde9ada4354 Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* / Fix shared library framework builds of Qt with a platform suffix.Jake Petroules2016-02-061-0/+10
|/ | | | | | | | | This is necessary for combined device and simulator builds on Apple platforms (iOS, tvOS, watchOS) to link properly. Change-Id: I21e70806643b10f429945d3020995dc94fa5c612 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* give the pkg-config wrapper a proper nameOswald Buddenhagen2016-01-211-0/+1
| | | | | | | amends 282f15feaa. Change-Id: I91fa244a9c33495365da4278b99d6312c1af299a Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Make pkgConfigExecutable() work when a pkg-config is defined in the specChristian Strømme2016-01-211-1/+4
| | | | | | | | | | | | Commit 6e6f27b6 made it possible to set the PKG_CONFIG variable using CROSS_COMPILE as a prefix. The problem with that solution is that it makes pkgConfigExecutable() skip the environment setup for pkg-config as well, as it expects the pre-set command to be self-contained - which it isn't. To avoid this problem we need to store the pkg-config define in the device spec in a separate variable. Change-Id: Id8ae7fb03d9253be55840e23fe73b30815ee86c3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2016-01-191-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config.tests/common/atomic64/atomic64.cpp configure src/3rdparty/forkfd/forkfd.c src/corelib/io/forkfd_qt.cpp src/widgets/kernel/qwidgetwindow.cpp tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp tools/configure/configureapp.cpp Change-Id: Ic6168d82e51a0ef1862c3a63bee6722e8f138414
| * qt_functions.prf: Add missing $$evalDmitry Shachnev2016-01-051-1/+1
| | | | | | | | | | Change-Id: I3d60617bdc887447f433c47ac6af3c1e13756c28 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Append the environment's QT_PLUGIN_PATH to 'make check' targetsRomain Pokrzywka2016-01-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this, any test executable requiring a plugin path from the environment's QT_PLUGIN_PATH will fail to run since the path is overwritten when generating the 'make check' command, for example: QT_PLUGIN_PATH=/path/to/qt/plugins \ LD_LIBRARY_PATH=/path/to/qt/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} \ ./test_foo A prepend config option is used for *PATH to preserve the envvar value, so use the same option for QT_PLUGIN_PATH. The command above then becomes: QT_PLUGIN_PATH=/path/to/qt/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} \ LD_LIBRARY_PATH=/path/to/qt/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} \ ./test_foo Change-Id: I69b43327974915eae52f299fc4001effe93a491a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Revert "use bindir instead of libdir when launching tools on windows"Oswald Buddenhagen2016-01-081-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | proper prefix builds don't have the redundant .dlls in bin (the copy step is simply omitted), so this is broken. the change would have to be done atomically with making DLLDESTDIR sane. This reverts commit 9b2e98245a95bec9179edf648d7b562d2d1cb692. Task-number: QTBUG-50065 Change-Id: I9ce0a2d1147a1a2d4bd2f22e619d5c737864a637 Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com> Reviewed-by: Tim Blechmann <tim@klingt.org> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | add always_prepend mode to qtAddToolEnv()Oswald Buddenhagen2016-01-081-3/+8
| | | | | | | | | | | | | | | | | | this is just an optimization/clarification: variables which are known to be never empty (like PATH) can be extended with less convoluted code. Change-Id: Ib365bbec8301673ed1c874979b4de19bc983dab1 Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | rewrite qtAddToolEnv()Oswald Buddenhagen2016-01-081-10/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the primary purpose is making env var prepend mode work for unset variables on windows. this is achieved by using a conditional and delayed variable expansion. however, the latter is disabled by default and can be locally enabled only in batch files. therefore, write wrapper scripts and substitute them for the actual commands. we do this also on unix, both for consistency and simply because the commands look much less confusing. this change is slightly backwards-incompatible, as invoking qtAddToolEnv() multiple times on the same command will now make a total mess. also, invoking it on a command that contains 'make' macro expansions isn't a good idea, so testcase.prf needed an adjustment. the function is an undocumented internal, so Nobody Should Care (TM). this also reverts 80ebedecf9, as it's obsolete now. Change-Id: I8394b77868b495abcf27b688996ca74c40b80994 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | use bindir instead of libdir when launching tools on windowsOswald Buddenhagen2015-11-261-8/+10
| | | | | | | | | | | | | | | | longer term, the redundant .dlls from the libdir will hopefully disappear. short term, this is a workaround for CI brokenness. Change-Id: Ia30173355f3aca222d4ca40e7a38c2cf535bbc03 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | remove redundant "mac" checksOswald Buddenhagen2015-11-191-1/+1
| | | | | | | | | | | | | | | | qt_framework and {app,lib}_bundle imply darwin, so there is no point in testing for it. Change-Id: I9fe48c26c8e271a5575b17e92df8674d3c3a3204 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | inline qtAddModules() and dependenciesOswald Buddenhagen2015-09-171-120/+0
| | | | | | | | | | | | | | | | there is no particular reason to have them in qt_functions.prf any more, while the separation made the code harder to follow. Change-Id: Ie44c9784358f382f7bc863b421ff5b440211d66f Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | change implementation of deprecated qtAddLibrary() to modify QTOswald Buddenhagen2015-09-171-1/+2
| | | | | | | | | | | | | | | | | | ... instead of invoking qtAddModule() directly. gives better decoupling and unified code paths. Change-Id: I4a456ae3b8027aa65b8a4fba7ee5c171ae89be0c Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | inline qtAddRpathLink()Oswald Buddenhagen2015-09-171-17/+0
| | | | | | | | | | | | | | there is no particular reason to have it in qt_functions.prf. Change-Id: I88ed1ea937a9a88a4625a6de7bcd3a29957560da Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | simplify qt rpath codeOswald Buddenhagen2015-09-171-5/+0
|/ | | | | | | | | the rpath applies only to the installed on-device location and is consequently always the same for all modules, so there is no point in indirections. Change-Id: Ia0590552aa317d799a2d3879fd0c0768344b9645 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* remove vestiges of .private_dependsOswald Buddenhagen2015-05-221-2/+2
| | | | | | | amends 16f4bc5b6. Change-Id: I5a9acb2fb57e92a152656be196e55c830031988e Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-03-311-5/+11
|\ | | | | | | | | | | | | | | | | Conflicts: mkspecs/android-g++/qmake.conf qmake/generators/unix/unixmake2.cpp src/gui/image/qimage_conversions.cpp Change-Id: Ib76264b8c2d29a0228438ec02bd97d4b97545be0
| * restore qt4's qtLibraryTarget() behaviorOswald Buddenhagen2015-03-051-5/+11
| | | | | | | | | | | | | | | | | | | | the function is used in our examples and code generated by qt-creator, so the qt5-specific magic behavior is inappropriate. create a separate function instead. Task-number: QTBUG-44595 Change-Id: I4d72cc1e5cbfc274b3210520baa213f4c5479ca9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Qmake: Add newly detected OSX framework paths also if they don't existUlf Hermann2015-03-121-1/+1
| | | | | | | | | | | | | | | | | | | | When building a module for the first time the paths won't exist as they are only created when you run "make". However, if you run qmake with '-r' you need the compiler flags to be available already before that. Task-number: QTBUG-43175 Change-Id: Ib784c432f29bb8c62b9ef23e59ccb515e1d96f28 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | make use of qtAddToolEnv() in pkgConfigExecutable()Oswald Buddenhagen2015-02-121-9/+5
| | | | | | | | | | Change-Id: I60e86ac869f670258c82520072836cdfff3b2dc2 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* | add value quoting to qtAddToolEnv()Oswald Buddenhagen2015-02-041-1/+2
| | | | | | | | | | | | | | | | | | for sh, this is usual quoting. for cmd, this means escaping closing parens - everything else is permitted anyway. Change-Id: I1179849d95f1f1f9e4b0d62ecd88917a1327f60f Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Haiku: Add support for Haiku to build systemTobias Koenig2014-12-211-0/+2
|/ | | | | | | | Change-Id: I12afaeb53a7f35c3f02776d28dad96107f3c5819 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Augustin Cavalier <waddlesplash@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix linking of sources without LTCG to a static lib with LTCGThiago Macieira2014-12-011-0/+1
| | | | | | | | | | | | | | | | | | | | Whenever a binary is created and linked against a static lib that was compiled with LTCG, the final linking step requires the compiler flags so that the pre-compiled data in the shared library can get properly compiled. This could happen for a static build of Qt with LTCG, but also happens frequently for Qt's own build when linking regular libraries and applications against QtBootstrap or QtPlatformSupport. The linking fails when the target is a shared library (example: QtWaylandClient linking against QtPlatformSupport). The .prl file actually contains the "ltcg" flag, so the best solution would actually be to process that flag there and add link_ltcg if any dependent .prl has "ltcg", but I couldn't find out how to do that. Change-Id: I4a75a14d1dcb8c2089a427285e25d5555df7d7d3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* use correct quoting style when running syncqt under mingwOswald Buddenhagen2014-09-301-6/+8
| | | | | | | | | | to this end, add a mode to qtPrepareTool() which prepares the primary variable for system() use (instead of use in makefiles). Task-number: QTBUG-41032 Change-Id: If6aa6c206a70ecdbc2ea05bbb3cb470414fb02b1 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Use Qt's major version in the library prefixJocelyn Turcotte2014-09-101-5/+3
| | | | | | | | | | | | | | | | | | | | | | | This follows the discussion at: http://lists.qt-project.org/pipermail/development/2014-June/017225.html Qt WebEngine will have a version of 1.0 when released with Qt 5.4. The library name is currently libQt1WebEngine.so.1.0.0 but it should rather be libQt5WebEngine.so.1.0.0 to represent Qt's major version releases as a whole and not the major version of the module. This prefix essentially expresses the module's dynamic linking compatibility with other Qt modules. This only makes sense if each major module release will be compatible with a single Qt major version only. All published modules currently already have 5 as their major version, except qtenginio which doesn't use a Qt prefix, so this change has no effect except for qtwebengine. Task-number: QTBUG-30910 Change-Id: I894e7a367624c7fc263cf08104173a82eafd1439 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* fix/optimize QT_PLUGIN_PATH construction in qtAddTargetEnv()Oswald Buddenhagen2014-06-051-8/+12
| | | | | | | | | | | | | instead of adding all possible plugin paths (for which QMAKEMODULES wouldn't have been a reliable source anyway), only add the paths of plugins of the necessary types. this necessitates that we create qt_plugin_<foo>.pri files also in shared builds of qt when making a prefix build. we don't install them unless it's a static build, though. Change-Id: Ib56b009562a7131d4dc4dfc259b34ec6581b0f77 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix quoting and path separators in qtPrepareTool()Oswald Buddenhagen2014-05-231-10/+14
| | | | | | | | | | | | | | | we need to store commands with system path separators in the .pri files, as we might clobber windows command arguments if we just converted separators later on. and we can actually do that, as the path separators are actually bound to the host system, not the shell. we also need to shell-quote the commands, as whitespace, and more commonly windows path separators in an msys shell, would break things. we delay this to the last moment possible, as it does depend on the shell. Change-Id: I1fe6b63aebd5663b72492c32928ec397f86e336f Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
* untangle use of system vs. shell path(-list) semanticsOswald Buddenhagen2014-04-301-1/+1
| | | | | | | | | | | | | | | "system" refers to the system's native shell, which is what qmake's system() invokes, and whose convention by far most commands invoked from a makefile will need. "shell" refers to the shell invoked by make, which diverges from the system shell only when qmake/mingw32-make is called from an msys shell. its conventions need to be used for anything the shell itself does (e.g., assembling env variables, but also command line argument unquoting) and the commands the mkspec sets according to the shell (e.g., QMAKE_MOVE). Change-Id: I0000aa9417c199cf8a810619d31ded24bb0675f9 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>