summaryrefslogtreecommitdiffstats
path: root/mkspecs/features
Commit message (Collapse)AuthorAgeFilesLines
* Introduce qmake feature use_gold_linkerAllan Sandfeld Jensen2014-07-231-0/+2
| | | | | | | | | | | | | | 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-5/+54
| | | | | | | | | | | | | | | 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>
* resoureces.prf: use small resources (though cpp file) for xcodeFawzi Mohamed2014-07-211-1/+1
| | | | | | | | | | | currently there isn't a clean solution yet to support object files or architecture specific files during the preprocess step when using the xcode generator. This fixes ios resources (but will break with large resources). Task-number: QTBUG-39835 Change-Id: If620ab0c3b5c1f92db8f7b4740061c807730db57 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Add support for CONFIG += c++14Thiago Macieira2014-07-201-0/+17
| | | | | | | | | | | | | | | Most compilers out in the wild still don't support the flag, so we need to compare the version number anyway. This also makes it ready for whenever compilers start supporting -std=c++14, something we should fix for C++11 too. It overrides the CXX11 variable for two reasons: 1) we reuse the mechanics in c++11.prf 2) we avoid c++11.prf overriding the flag if qmake decides to process it later (CONFIG += c++14 is additive) Change-Id: I79b6523fd9017483f2474634d1c09f2fd5ea039d Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* "Beautify" the two-pass RCC executionThiago Macieira2014-07-201-0/+1
| | | | | | | Use newlines in the Makefile for multiple commands. Change-Id: If03617343ccf7e525ffdc27ad9df55718c63d77f Reviewed-by: hjk <hjk121@nokiamail.com>
* Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-101-1/+1
|\ | | | | | | Change-Id: Ia12ffdb27ecdf25c2a2bdb0eed1945387502108a
| * Android: Fix compiling targets with space in nameEskil Abrahamsen Blomfeldt2014-07-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | We have to escape the target name to avoid compilation errors. This fixes the compilation failure in the qprocess autotest. [ChangeLog][Android] Added support for building libraries with spaces in name. Change-Id: Ib98ba261fb3a4cc1e835d0cd2f93aac6855a7c21 Reviewed-by: BogDan Vatra <bogdan@kde.org>
* | ARM: do not use the clang integrated assembler in some cases.Erik Verbruggen2014-07-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | The integrated assembler of clang does not understand some/all of the ARM macro assembler syntax used in pixman-arm-neon-asm.S. By default, this integrated assembler is used when using the "clang" command as a driver. This patch turns off the integrated assembler of clang for that file. Change-Id: Ic06801266b5a4b097ca835d815bcc5d5fc672946 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Disable the new multipass RCC when doing LTCG/LTOThiago Macieira2014-07-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When LTCG/LTO is enabled, the link-time compilation will not use the data in the object file, but instead the precompiled data in a separate section, which is still blank and may not be recognizable by rcc's second pass. That would result in all resource data being nulls -- and the best case scenario out of that is that QResource concludes that there is no resource (it could be worse). That happens with GCC 4.8's GIMPLE intermediate format: a fat .o file containing GIMPLE would be modified by rcc but GCC would not use the modified data at the link stage, whereas a non-fat .o file would not be recognized at all by rcc and the compilation would abort. Change-Id: I78ccbfd77ceaa723f22a4f82b5b4d6536a80d65d Reviewed-by: hjk <hjk121@nokiamail.com>
* | Update the Win32 Intel Compiler mkspecThiago Macieira2014-07-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unlike MSVC, ICC is capable of selecting each of the processor feature levels, so let's define the right macros. Version 9.1 is really old and not supported, so we don't need to keep the old workaround. The compiler has been complaining that option -GX is deprecated and will be removed, so update it to use the same as MSVC does. Change-Id: I4158fcf2331c1d27462bb1cb19725c7136efab4a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-015-10/+22
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/qnx-x86-qcc/qplatformdefs.h src/corelib/global/qglobal.h src/network/socket/qnativesocketengine_winrt.cpp src/plugins/platforms/android/androidjniaccessibility.cpp src/plugins/platforms/windows/qwindowswindow.cpp Manually adjusted: mkspecs/qnx-armle-v7-qcc/qplatformdefs.h to include 9ce697f2d54be6d94381c72af28dda79cbc027d4 Thanks goes to Sergio for the qnx mkspecs adjustments. Change-Id: I53b1fd6bc5bc884e5ee2c2b84975f58171a1cb8e
| * Delete qml_plugin_import.cpp file only during distcleanKai Koehne2014-06-261-1/+1
| | | | | | | | | | | | | | | | | | For static builds of Qt Quick apps, qmake generates a qml_plugin_import.cpp file. Just like the Makefiles, it should be removed only for distclean, not in the clean step. This is what we do for non-qml plugins, too. Change-Id: I5a3f2e7d27c3ffd5161162a8a03e4dd9c9245af5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * CMake: Allow modules to specify the location of tests.Stephen Kelly2014-06-251-1/+10
| | | | | | | | | | | | | | | | Webkit has a different layout, so allow the tests to be found in the appropriate location. Change-Id: Iedbea6daada98a3c3efdbcfc1fe4df5d2c8cea6a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * CMake: Report an error if unit tests are not found for a module.Stephen Kelly2014-06-251-0/+2
| | | | | | | | | | Change-Id: Ic1540cfb04bf975a14bf2b35f4402bd36046de67 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * Fix installation of private headers generated by wayland-scannerOlivier Blin2014-06-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Private qtwayland headers were not installed at first build, since qmake was ignoring unexisting files from the install target. It required another run of qmake to have a proper Makefile generated. The rules for generated headers need CONFIG = no_check_exist, so that files get listed in the Makefile even if they do not exist yet (thanks to Loïc Yhuel for the pointer). Change-Id: I1a0278d629295a55a3ddcf5f8fb068a04ba5be47 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * CMake: Load plugin files unconditionally if present.Stephen Kelly2014-06-222-8/+7
| | | | | | | | | | | | | | | | Task-number: QTBUG-39171 Task-number: QTBUG-39451 Change-Id: Ie66bd6b787a0957fd6f7ea673b158ab5de3cc38f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
| * install .lib files for static libs againOswald Buddenhagen2014-06-161-1/+1
| | | | | | | | | | | | | | | | | | the no_dll switch has questionable semantics: it pro-actively breaks non-dll builds. therefore its usage needs to be limited to dll build. Task-number: QTBUG-39594 Change-Id: I98328e502693df835af565b5ec25ada2c1c168ad Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | RCC: (Re-)introduce a way to build resources in one gohjk2014-06-291-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | This is essentially an opt-out using CONFIG += resources_small for the 'big-data' feature introduced and made mandatory with commit 5395180. This is currently not active in any configuration, but can be used when the two-pass approach is neither needed nor wanted. Change-Id: I6d4f663843e629da6f39ac4da5e77d39c58b3ddf Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Work around Intel Compiler 14 & 15 bug with paths starting with dotThiago Macieira2014-06-271-0/+6
| | | | | | | | | | | | | | | | | | It somehow forgets the dot and thus can't open any moc or uic includes. Intel bug: DPD200357915 Change-Id: I610ba4d3df0072bfb83f90347d94f4586d0d8c86 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Disable automatic use of pch for MinGWKai Koehne2014-06-261-1/+6
| | | | | | | | | | | | | | | | | | Revert cb09e1e88944e1ab9b0d0 for MinGW. gcc on Windows reproducably crashes when the pre-compiled header becomes big enough ... Change-Id: Icd5a3dfbe59f5ff5c78832e7b4436d0f1cfa1031 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | winrt: Remove WP8.0 references from package manifest featureAndrew Knight2014-06-251-33/+8
| | | | | | | | | | | | | | Also, harmonize the qmake documentation. Change-Id: I8722370f86982e33ccf97f631ae257c4c46cade2 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
* | qmake: Guard module depends with __cplusplusHolger Hans Peter Freyther2014-06-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | When qtbase has been compiled with PCH and trying to compile the disassembler in QtDeclarative creating the PCH for "C" is failing due the C++ includes. Guard the includes with __cplusplus to be "usable" on C code. This guard is proposed for the "stable.h" in the qmake precompiledheaders documentation. Change-Id: I7a8fb9e59c666a2e1535d988fd71c5cd67d0587d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵J-P Nurmi2014-06-0710-53/+93
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devJ-P Nurmi2014-06-0510-53/+93
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * use the right env var in qmlplugindump callOswald Buddenhagen2014-06-051-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | qml2 needs QML2_IMPORT_PATH. this didn't affect non-prefix builds (which most developers use), so it wasn't too serious. Change-Id: I435dca151348669b66f091f9a9324cd69394284e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| | * unbreak static qml imports againOswald Buddenhagen2014-06-051-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a) qmlimportscanner has no built-in -importPath, so it can't be omitted even for non-prefix builds, and b) the QMLPATHS variable is also used further down, so we can't just do away with it. amends a658fa40. Change-Id: I42a47a82fe13694fbac3c4a3962ebbe1d7e7865b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
| | * actually don't install qt dlls into lib/ any moreOswald Buddenhagen2014-06-052-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | it helps enormously to use the flag correctly. amends f0c34eb08f. Change-Id: I04a63cc59e133169d9f6677f2f88ef98fd5c524c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| | * pass (some) index dirs also during -prepare phaseOswald Buddenhagen2014-06-051-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qdoc uses the indexes as "precompiled headers" to obtain type info necessary to properly parse sources. the indexes needed are the ones the module actually depends on (publically). Change-Id: I6aad0b511d2534d584f7947c8d800300eede94ff Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
| | * don't check for doc/ dirs' existenceOswald Buddenhagen2014-06-051-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the doc/ dirs in the build dir won't be created until the docs have been built, so of course checking whether they are there during the qmake phase is counterproductive. this also means that we'll get some complaints about non-existing directories (for repos that don't create any docs). there is no reasonable way to query qmake which repos are affected, and writing shell-specific code to query it at make time seems a bit overengineered. Task-number: QTBUG-38862 Change-Id: Ie0588e75bfc39718fffd46f0df6785428e396eb2 Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
| | * ensure that there is always an -indexdir argumentOswald Buddenhagen2014-06-051-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | even if we are not doing a top-level build, we still need to specify an index dir. that may be the install dir or the qtbase build dir, depending on whether we are building against an installed prefix build or a non-prefix build (building against non-installed prefix builds outside a top-level build is inherently impossible). Task-number: QTBUG-35596 Change-Id: Ia37d429855480d3bfe36b7ee29e087029861bfc5 Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| | * fix/optimize QT_PLUGIN_PATH construction in qtAddTargetEnv()Oswald Buddenhagen2014-06-052-12/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 VCLibs dependency in WP8.1 manifestAndrew Knight2014-06-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | CRT dependencies should contain "Phone" in the name. Change-Id: I1b0de01df6a016c20b59232f6068e9bb87e3f18c Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
| | * CMake: Fix build with unversion_libname configurationDaiwei Li2014-05-301-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a162a3cb (Android: Add "unversioned_libname" configuration, 2014-04-23) removed the version for shared libs on Android. This change updates the generated CMake files to support that. Change-Id: Ia6ef04872c664bd4c31546456a82730babed2910 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
| | * fix qmlplugindump's import path constructionOswald Buddenhagen2014-05-231-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | the location of the import paths have changed a long time ago. also, we can make use of QTREPOS now. Change-Id: Iee50854b7441968c3c60538e54d9312e53d39cb6 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| | * fix/simplify the qmlimportscanner's import path constructionOswald Buddenhagen2014-05-231-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | now that we have QTREPOS, we can use that directly instead of collecting the QT.<foo>.qml dirs. as a "side effect", this makes qml modules without a corresponding c++ module available to the scan. Change-Id: I6f172121588ec01c9fa47a99d9990bf9fcfbc69f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| | * fix quoting and path separators in qtPrepareTool()Oswald Buddenhagen2014-05-232-11/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * Add build support for Windows Phone 8.1Andrew Knight2014-05-221-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Make RCC handle bigger binarieshjk2014-06-061-5/+17
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Traditionally, RCC in "C mode" was meant to bundle small resources into a binary, like help texts or an occasional icon. RCC produces a .cpp file containing the actual data in a char array which is then passed to the compiler and linker as a normal source file. Larger resources should be compiled in RCC's binary mode and loaded at run time. Current Qt Quick use tries to deploy large hunks of data in "C mode", causing heavy compiler/system load. This patch works around the issue by splitting the process into three parts: 1. Create a C++ skeleton, as usual, but use a placeholder array with "easily compilable" (mostly NULs) data instead. 2. Compile the skeleton file. 3. Replace the placeholder data with the real binary data. time (qmake5 ; make clean ; make) takes 1.3 s real time for a 100 MB resource here, and there is still room for improving patching performance if really needed. Change-Id: I10a1645fd86a95a7d5663c89e19b05cb3b43ed1b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | Expose "android-extra-plugins" androiddeployqt feature to qmakeAleix Pol2014-06-051-1/+5
| | | | | | | | | | | | | | | | | | Makes it possible to use "android-extra-plugins" from qmake through the ANDROID_EXTRA_PLUGINS variable. Change-Id: I7c67e9f104e5397e094afff730efccb91949caa2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | RCC: Remove support for CONFIG += resource_combinehjk2014-05-271-14/+3
| | | | | | | | | | | | | | | | We don't use it and it was never documented. Search engine hits only point to this occurrence in the Qt sources. Change-Id: I2dd7adc5438893560daf01ac85620d9f9c028982 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Automatically enable precompiled headers for Qt modulesThiago Macieira2014-05-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll use the master depends header for the module as the precompilation header. We could use the master include, but tests show that precompilation benefits taper off for big precompiled headers. The important part is to get the Standard Library headers precompiled. Each module can still override which header to precompile by setting PRECOMPILED_HEADER after load(qt_modules). It can also turn off precompiled headers by setting that to empty or by CONFIG -= precompile_header. Testing a few build times shows the following improvements (GCC 4.8 with -O3 and C++11): QtPrintSupport: 14.7% QtOpenGL: 22.7% QtDBus: 29.5% QtSvg: -2.4% QtXmlPatterns: 26.1% QtQml: 21.6% QtQuick: 25.0% QtMultimedia: 9.0% QtSerialPort: -30.0% QtHelp: 5.6% The numbers also show that precompilation is worse for small modules. Change-Id: I3793fafcedaff5456527cd6b3777ffd162975c36 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Fix linking warnings on OS X with qmlimportscannerSimon Hausmann2014-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The linker complains that some symbols were compiled with different visibility settings when linking host_build tools such as the import scanner. As it turns out, we do CONFIG += hide_symbols for static libraries (such as bootstrap or qmldevtools) but naturally not for the final program source code. It appears symbol visibility is not of importance for static libraries in host builds (as opposed to static libraries later linked into shared libraries), therefore this patch removes that. Change-Id: I237a2d8669374eb059dc91b5378f6e3ec93d67a6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devSimon Hausmann2014-05-225-7/+17
|\| | | | | | | Change-Id: Ia36e93771066d8abcf8123dbe2362c5c9d9260fc
| * fix too aggressive installation of helper librariesOswald Buddenhagen2014-05-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | of course all helper libraries are built statically, so the criterion is not useful. what is interesting is whether the whole qt configuration is static, as that determines what will happen with the helper library when linking the final "actual" artifacts. Change-Id: I96980c645cb478b2f7a30688b49cb51bec8c9f08 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * Strip bootstrapped binaries of unused sectionsThiago Macieira2014-05-191-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2014-05-142-4/+9
| |\ | | | | | | | | | Change-Id: If1abbe7810ea43ae750db91066f9f579c79b2289
| | * fix doc references to webkitOswald Buddenhagen2014-05-132-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | we can't derive the doc index paths from QMAKEMODULES, as the mkspecs dir may not live at the repo's top level. instead, explicitly announce the repo's top level build dirs in QTREPOS, and use that accordingly. Task-number: QTBUG-38862 Change-Id: I643ad2bf63c8fca0ffc44ce3457dbe8a16dcab07 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-05-132-1/+28
|\| | | | | | | | | | | | | | | | | | | | Manually changed enum to LibGL in src/plugins/platforms/xcb/qglxintegration.cpp Change-Id: If34ee6cce3d1d51fb4bb1fdfa59c30389ea0d207
| * | Use the "gcc" feature in simd.prfThiago Macieira2014-05-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Matches the compiler capabilities better and will catch all GCC-like compilers (including Clang, LLVM and Intel CC on Unix). Task-number: QTBUG-38544 Change-Id: I102966d307a4e167b6dcf3da08359e656f3af45e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>