summaryrefslogtreecommitdiffstats
path: root/mkspecs/common
Commit message (Collapse)AuthorAgeFilesLines
* Use /Zc:throwingNew by default with MSVC 2015Thiago Macieira2015-08-101-1/+1
| | | | | | | | | As recommended by MS in http://blogs.msdn.com/b/vcblog/archive/2015/08/06/new-in-vs-2015-zc-throwingnew.aspx Change-Id: Id3d5c7bf4d4c45069621ffff13f80cecc1141353 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* WinRT: Add Architecture flag to manifestMaurice Kalinowski2015-08-061-1/+2
| | | | | | | | The architecture needs to be specified to be properly used inside Visual Studio and for winrtrunner to parse dependencies. Change-Id: I218100f33efcba9f78199cbd1e48089269648e61 Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
* WinRT: Add dependency support for Win10Maurice Kalinowski2015-08-063-3/+7
| | | | | | | | | | So far the dependency keyword has been ignored for the new Windows 10 mkspecs. The difference to older manifest files is that there is already a <Dependency> section and hence we embed dependencies inside this one, as the format standard does not allow to have multiple of those. Change-Id: I1bf25979cc28d5c153215de5bb9cd6f37e9c50aa Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
* MSVC2015: Disable warning C4577 ('noexcept' used with no exception handling ↵Friedemann Kleint2015-08-021-1/+1
| | | | | | | | | | | | | mode specified). Fix the flood of warnings: src/corelib/global/qflags.h(52): warning C4577: 'noexcept' used with no exception handling mode specified; termination on exception is not guaranteed. Specify /EHsc now occurring since we don't have exception handling enabled. Change-Id: I05d12ee6303b4f9fceb48507fadfd7d1a5604ea4 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* iOS: remove unrecognized compiler flag '-fno-arc-abi'Richard Moe Gustavsen2015-06-291-1/+0
| | | | | | | | | | | Clang does not recognize the compiler flag 'no-arc-abi' anymore. This causes a warning, which will fail the build. Not sure what the flag does, as I cannot find any documentation for it, even after grep-ing through the sources (both clang-600.0.57 and clang-503.0.38) Change-Id: I39fae3fd108a8edb978f4264935a069cce4c302a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* WinRT: Add qmake support for Windows 10Maurice Kalinowski2015-05-261-0/+49
| | | | | | | | | | | | | | | | | | This allows creation of applications for - x86 - x64 - arm While the arm build theoretically also allows to launch on a mobile, it currently asserts on runtime. Either we will create a new mkspec for Windows 10 Mobile in the future, or do runtime checks for the environment. That also depends on whether there will be a separate SDK by Microsoft. Change-Id: I510bfc88410a5b5a1eb7c37f7f43888d1e5dda0d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com> Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
* WinRT: Disable exceptions when turned offMaurice Kalinowski2015-05-191-1/+1
| | | | | | | | | | | On desktop windows we define _HAS_EXCEPTIONS=0 to also forward this option. Hence harmonize this with WinRT builds as well. As a side-effect qtdeclarative now compiles without warnings on WinRT. Change-Id: I8e343f172160991ffb2ede01303802f321de82b5 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into merge5.5Allan Sandfeld Jensen2015-05-082-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h src/corelib/io/qnoncontiguousbytedevice_p.h src/gui/image/qjpeghandler.cpp src/network/access/qhttpthreaddelegate_p.h tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp tests/auto/widgets/widgets/qmenubar/BLACKLIST Change-Id: I01de8c1c28efcedfd7953d05025f54802dc08ab3
| * Require -fPIC instead of just -fPIE for -reduce-relocationsThiago Macieira2015-05-072-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC 5 combined with a recent binutils have a new optimization that allows them to generate copy relocations even in -fPIE code. Clang has the same functionality when compiling an executable with -flto. We need to let the compilers know that they cannot use copy relocations, so they need to use really position-independent code. Position independent code throughout is not really required. We just need the compilers to use position-independent access to symbols coming from the Qt libraries, but there's currently no other way of doing that. Task-number: QTBUG-45755 Change-Id: I0d4913955e3745b69672ffff13db5df7377398c5 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | rpath: use new DTAGS if availableOswald Buddenhagen2015-05-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | this allows LD_LIBRARY_PATH to take precedence over the hard-coded rpath, which is the only sane thing to do (which is also why i'm not adding an option to disable it). this behavior is consistent with non-linux systems. the windows version has no auto-detection, just like for gold linker usage. Task-number: QTBUG-3069 Change-Id: Ief9ba032291c898d75d76ecc740390954382a804 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Move QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO definition to gcc-base.confRomain Pokrzywka2015-04-303-6/+3
| | | | | | | | | | | | | | | | | | | | The flags are the same across all GCC flavors so put the definition in the common gcc-base.conf instead of duplicating it in g++-base.conf and clang.conf Change-Id: I1ba2c3c314d3a02b559c384aecef74240f69f659 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Fix clang release with debuginfo buildsAllan Sandfeld Jensen2015-04-011-0/+2
| | | | | | | | | | | | | | | | The variables used for release with debuginfo was set in g++-base.conf which is not included by clang builds. Change-Id: Iec3b23c371c113ff934d2c7f5134ef78b1cf939e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | fix C4275 warnings for MSVC 2010 buildDebao Zhang2015-03-281-1/+2
| | | | | | | | | | | | | | | | | | | | This issue had been fixed by SHA: a12a2fdf684a6fc19aefc14f32842deab0270e86 but re-introduced by SHA: c23d1c76953704ecb52c833d7ef1de2e2f89b1e6 again. Task-number: QTBUG-45085 Change-Id: If98ee108335d80035179a83b1b28f384395d8373 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | QNX: enable Neon support to be compiled in for QNXSamuli Piippo2015-03-092-1/+1
| | | | | | | | | | | | | | | | | | | | Neon detection in configure does not work unless correct flags are passed to compiler. Task-number: QTBUG-44690 Change-Id: If119cc9ed80275aaa8796c1be8853559a7670d6a Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | centralize setup of shell-related variables in spec_post.prfOswald Buddenhagen2015-03-066-39/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | it makes no sense to let every spec do that separately, as it's fixed by the generator+shell. putting it into a file which is loaded regardless of the spec also allows us to remove the hardcoded fallbacks from qmake. if somebody overrode the values in their spec for some weird reasons, they'll need to override spec_post.prf. shell-{unix,win32}.conf are now dummies and print warnings. Task-number: QTBUG-37269 Change-Id: I66c24fb4072ce4d63fdbfc57618daa2a48fa1d80 Reviewed-by: Jochen Seemann <seemann.jochen@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Add __APPLE_CC_ to QMAKE_COMPILER_DEFINES for moc.prfTor Arne Vestbø2015-03-041-1/+1
| | | | | | | | | | | | | | | | | | Moc doesn't have the built in defines that clang has, so we need to hard-code some of these so that moc resolves the Q_OS_IOS define in the end, based on qsystemdetection.h and TargetConditionals.h Change-Id: Id9a7f870b940f99f27c55a2a887d0ce93217b821 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Fix leaking ISA extensions in LTCG buildsAllan Sandfeld Jensen2015-03-042-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Due to common subexpression elimination instruction set extensions may leak from the objects where they were enabled when doing link-time optimizations. To avoid that this patch disables LTCG/LTO on files built with extra instruction set extensions. Change-Id: Ie34ad900be7fb04a0dc4d3562187ee170c183333 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | MSVC: Remove use of -Zm argumentKai Koehne2015-02-132-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've been setting the -Zm argument since the dawn of times (even before the first git commit). Anyhow, MSDN from VS2008 onwards indicates that this is not needed: "In earlier versions of Visual C++, the compiler used several discrete heaps, and each had a finite limit. Currently, the compiler dynamically grows the heaps as necessary up to a total heap size limit, and requires a fixed-size buffer only to construct precompiled headers. Consequently, the /Zm compiler option is rarely necessary." [ChangeLog][Compiler Specific Changes] Visual Studio: -Zm200 (an option to specify the precompiled header memory allocation limit) is not added anymore by qmake to the compiler calls. If you encounter an C1076 compiler error you might need to re-add it in your .pro file. Change-Id: Ia4bec7eba09d893a7d81886a1814602b9ce7563c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Configure MSVC builds as C++11Allan Sandfeld Jensen2015-02-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | QtWebEngine and QtWebKit uses the Qt config to detect if C++11 is enabled. Since it is always enabled on MSVC, we can safely set the flag indicating it is a C++11 build when using a newer MSVC version. Change-Id: I2efb8d1a9b1cf1496481569403c00358d0cae365 Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Update copyright headersJani Heikkinen2015-02-1110-68/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* | Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/devSimon Hausmann2015-01-211-2/+0
|\ \
| * | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-01-211-2/+0
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/global.pri src/corelib/global/qcompilerdetection.h src/corelib/global/qglobal.h src/corelib/tools/qdatetime.cpp src/plugins/platforms/xcb/qxcbscreen.h src/plugins/platforms/xcb/qxcbwindow.h src/widgets/dialogs/qcolordialog.cpp src/widgets/dialogs/qcolordialog_p.h tools/configure/configureapp.cpp Change-Id: Ie9d6e9df13e570da0a90a67745a0d05f46c532af
| | * Remove the -load_all option from the linker enabling static buildsAndy Shaw2015-01-071-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the -load_all option turned on then it will cause a problem with the network bearer plugins as they share the same files and on OS X two plugins will be built and potentially linked against when building statically. This only effects gcc builds because clang does not turn this option on when linking by default either. Task-number: QTBUG-39238 Change-Id: Ib259304c3da74b6b4f6fcc6e3766427303af3bbe Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* | | WinRT: Disable compiler warning 4996 for debug buildsKai Koehne2015-01-191-1/+1
|/ / | | | | | | | | | | | | | | | | Move compiler warning 4996 from level 3 to 4, like we did already for desktop builds: 0a76b6bc7f98900ea8 . Change-Id: Ic4bbaeb3104352a915b15eec7a9c9dda9a5cceec Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* | QNX: Rename qcc-base-qnx-armv7le.conf mkspec.Rafael Roquetto2015-01-181-0/+0
| | | | | | | | | | | | | | | | The "new" convention uses armle-v7 instead of armv7le. Change-Id: Ica7016b7b0b4e374771ff423b7b0bfec4851ee95 Reviewed-by: Wolfgang Bremer <wolfgang@w-bremer.de> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | WinRT: Refactor icon specification usageMaurice Kalinowski2015-01-138-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Naming for different logo sizes on WinRT has been varying in the past and evolved from using small/medium/large to some being explicit (71x71). Add new values introduced by 8.1 (310x150, 310x310,...) and clean up mixed usage. Detailed pixel versions overrule general specification and latter ones stay mostly for compatibility reasons. Still the preferred way is to use explicit pixel values. Task-number: QTBUG-43644 Change-Id: I9173ec2951a82e5eac9d8c9956bfb0bb4d1a2459 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* | Clean up ltcg.prf with variables, including a new static modeThiago Macieira2015-01-112-1/+13
| | | | | | | | | | | | | | | | | | | | By using the special "ar" and "ranlib" tools, the symbol table is made visible, so we don't need fat LTO binaries. Since we need to store the new tool names, we may as well clean up ltcg.prf with variable names for the fat mode too. Change-Id: I7e53af0c74a3d069313f38500b72538af1d61128 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | MSVC: Disable compiler warning 4996 for debug buildsKai Koehne2015-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move compiler warning 4996 from level 3 to 4. This is needed to avoid warnings about the use of C++ standard library functions like std::copy, which is used e.g. in qvector.h (since c6752c5aa19): 'std::copy': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' Because the warning has to be disabled before any standard C++ header is included one cannot just fix this locally in qvector.h. Change-Id: I929f1535656bca9f5beb7fd0d557178370c232c6 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | remove unsupported winrt mkspecsAndrew Knight2014-12-166-76/+1
| | | | | | | | | | | | | | | | | | These mkspecs are not supported and no longer compile. Related support in qmake has also been removed. Change-Id: I7706dcfa5471e55e2ae3d580d65e9371e2c652d5 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* | Add detection of and support for Visual Studio 2015Thiago Macieira2014-12-131-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | Tested with the Preview release of November 2014. Differences to the 2013 detection and support: - Option -Zc:strictStrings is present in both debug and release mode and is passed to qmake's own build - New warnings 4456, 4457 and 4458 (shadowing) are disabled - Compiler supports -arch:AVX2 Change-Id: I9572ff4d4aded4004c1fa5d6f13ffee5462043d6 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Create a common qmake configuration for all MSVC versionsThiago Macieira2014-12-131-0/+132
| | | | | | | | | | | | | | | | | | | | | | | | Most files are exactly the same, so it's silly to duplicate this all over. The differences could have been kept in each of the qmake.conf files, but I preferred to centralize because they apply to each newer version and, soon enough, version-specific configuration would grow again. Change-Id: I5c5ed58055c954acf4851d87c70cc5af49c98738 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-244-3/+11
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qiodevice.cpp src/plugins/bearer/linux_common/qofonoservice_linux.cpp src/plugins/bearer/linux_common/qofonoservice_linux_p.h src/plugins/platforms/android/qandroidplatformtheme.cpp src/tools/bootstrap/bootstrap.pro src/widgets/styles/qmacstyle_mac.mm Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
| * Merge remote-tracking branch 'origin/5.4' into 5.4.0Oswald Buddenhagen2014-11-103-3/+8
| |\ | | | | | | | | | Change-Id: I85e3dfa62f217b76447276dd7cce6b9eac3a144e
| | * Fix release-with-debuginfo flags for QCCMatt Fischer2014-11-071-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to the way that the QCC mkspecs are structured, the recent change to add full optimization support causes the -O2 flag to be completely dropped from QCC builds in release-with-debuginfo mode, since the QMAKE_CFLAGS_OPTIMIZE variable is not declared in any configuration file included by QCC toolchains. This patch adds the necessary flags to make the QCC toolchain operate correctly. Change-Id: I4cd93442d59fae7c92fc5219cddb16f367447203 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
| | * WinRT: Add missing manifest specifier for rotationMaurice Kalinowski2014-11-072-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add WINRT_MANIFEST.rotation_preference as description which orientation is allowed or preferred by the app. Valid values for Windows Phone are portrait, landscape, landscapeFlipped. WinRT also allows portraitFlipped Task-number: QTBUG-40830 Change-Id: I6b11afcdb72c2c158dadddafc5d90c1d18ab9d8b Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
| * | Merge remote-tracking branch 'origin/5.3' into 5.4.0Oswald Buddenhagen2014-11-101-0/+3
| |\ \ | | |/ | |/| | | | | | | | | | | | | Conflicts: src/plugins/platforms/xcb/qxcbwindow.cpp Change-Id: Iad9ef6bf7d6111efba8232a7d9b46bb9974912f5
| | * Set the _C variants of QMAKE_LINK and QMAKE_LINK_SHLIB in clang.conf.Raphael Kubo da Costa2014-11-051-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While it does not look like the clang-based mkspecs had any problems so far with not having QMAKE_LINK_C and QMAKE_LINK_C_SHLIB defined, it makes sense to set them to $$QMAKE_CC just like the GCC-based ones so CONFIG=use_c_linker works as expected. Change-Id: Ib660d12b001dd7a877b6f03e79715db08a272968 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Add support for gcc/clang's sanitize featuresPeter Kümmel2014-10-022-0/+25
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC and Clang support compiler intrinsic error detections tools: address, memory, thread, undefined Let users conveniently enable it in qmake, for instance with CONFIG += sanitizer sanitize_address Also add a -sanitize [...] option to configure to use it by default for both the Qt libraries, and user applications. [ChangeLog][configure] Added support for GCC/Clang -fsanitize= options Change-Id: Ie5418abcdf41842566df510d7707e41739e66f87 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | make -force-debug-info work for objective COswald Buddenhagen2014-09-261-0/+1
| | | | | | | | | | | | Task-number: QTBUG-35776 Change-Id: Idb96108963e9330dd62c7878457c30bd74dc79a0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Update license headers and add new license filesMatti Paaso2014-09-2410-188/+108
| | | | | | | | | | | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* | Enable rpath support on OS X and iOS platformAdam Strzelecki2014-08-091-1/+1
| | | | | | | | | | | | | | | | | | This is done by defining QMAKE_LFLAGS_RPATH for compilers for Apple platform. Task-number: QTBUG-31814 Change-Id: I9040df341ad46395d6ab71bc760ba7a5ee5ff291 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* | Remove the last remnants of iWMMXt in QtThiago Macieira2014-08-052-2/+0
| | | | | | | | | | | | | | | | This code hasn't been tested for at least 4 years. It's not maintained and probably doesn't work. Change-Id: I4b9a5179e34111b400914f91caa6b741b69771bb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Introduce qmake feature use_gold_linkerAllan Sandfeld Jensen2014-07-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the feature use_gold_linker to use the gold linker that has been part of of GNU binutils since 2008. Gold links C++ libraries much faster and use less memory. The feature is autodetected when building Qt on Linux, but can be disabled in configure. On MingW builds it is default off but can be enabled for cross builds. Change-Id: Icdd6ba2e706b2c791bcf44b6e718c2b7a5eb2218 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add link-time optimization support for Clang, GCC and ICCThiago Macieira2014-07-232-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC currently requires fat object files for static libraries, since the linker would otherwise not load the .o file from the archive at all and the linking would fail with a lot of undefined references. Clang on Linux also needs this, but it has no equivalent flag, so enabling LTCG for Clang on static libraries will result in linker error. This commit does not add support for enabling it in configure. It can be enabled on a per-project basis by doing CONFIG += ltcg or by passing -config ltcg to qmake's command-line. Change-Id: I52cf99f1ed9f1701e23a3b457ba3502fd28126ce Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devJ-P Nurmi2014-06-055-9/+54
|\| | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/qt.prf src/plugins/platforms/xcb/qxcbwindow.h src/tools/qdoc/qdocindexfiles.cpp src/widgets/kernel/qwidget_qpa.cpp Change-Id: I214f57b03bc2ff86cf3b7dfe2966168af93a5a67
| * WinRT app manifest: update namespace prefixAndrew Knight2014-05-221-9/+9
| | | | | | | | | | | | | | | | | | | | If the prefix isn't "m2" for the 2013 namespace, Visual Studio Update 2 won't open the document in the designer view. Even though there is nothing technically wrong with the way it's currently done, change it to "m2" to keep VS happy. Change-Id: I62721114610de5396eb507828b39db89c1e96b1a Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
| * Add build support for Windows Phone 8.1Andrew Knight2014-05-224-0/+45
| | | | | | | | | | | | | | | | Tweak qmake, add mkspecs for emulator and device, adjust the manifest template for WP8.1, and add missing icons. Change-Id: I7a6405fa85297ae4cc8522015274e65fb7a315a6 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devSimon Hausmann2014-05-223-0/+4
|\| | | | | | | Change-Id: Ia36e93771066d8abcf8123dbe2362c5c9d9260fc
| * Strip bootstrapped binaries of unused sectionsThiago Macieira2014-05-192-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This matches the -ffunction-sections from bootstrap.pro, which tells the compiler to create a section for each function. The -gc-sections option tells the linker to drop what wasn't used (normally, it only drops entire files). Before (on Linux, built with -O3, no LTO): text data bss dec hex filename 1746385 7920 3750 1758055 1ad367 bin/moc 1444101 6664 1894 1452659 162a73 bin/rcc 4407725 1568 4896 4414189 435aed bin/qmake After: text data bss dec hex filename 1131655 6520 3494 1141669 116ba5 bin/moc 1027043 5480 1766 1034289 fc831 bin/rcc 3578489 1656 5313 3585458 36b5b2 bin/qmake Gain: 35% on moc, 28% on rcc, 19% on qmake Before (on OS X): __TEXT __DATA __OBJC others dec hex 1495040 12288 0 4294993008 4296500336 100176470 bin/moc 1265664 8192 0 4294983904 4296257760 10013b0e0 bin/rcc 5279744 81920 0 4297912320 4303273984 1007ec000 bin/qmake After: __TEXT __DATA __OBJC others dec hex 806912 8192 0 4294988132 4295803236 1000cc164 bin/moc 720896 8192 0 4294979764 4295708852 1000b50b4 bin/rcc 4841472 77824 0 4295580688 4300499984 100546c10 bin/qmake Gain: 46% on moc, 43% on rcc, 8% on qmake. Change-Id: Icc7cdc9fd6f5db15537b4adabaac7e7a27e539d4 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * Make the use of -ffunction-sections more generic in QtThiago Macieira2014-05-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | Move it from bootstrap.pro into qt_module.prf so it will apply to any other bootstrapped libraries, like libQmlDevTools. Variable called "SPLIT_SECTIONS" because -fdata-sections could be added in the future, if it proves to be a benefit. Change-Id: I3fbb004f111620a84e58e9112e9bce3afd95631e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>