summaryrefslogtreecommitdiffstats
path: root/mkspecs/features
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-12-106-20/+31
|\ | | | | | | | | | | | | | | Conflicts: doc/global/template/style/online.css mkspecs/android-g++/qmake.conf Change-Id: Ib39ea7bd42f5ae12e82a3bc59a66787a16bdfc61
| * Make no_debug_info also strip out -gstabsAllan Sandfeld Jensen2014-12-051-4/+4
| | | | | | | | | | | | | | | | | | | | | | Since QtWebKit started using stabs on some platforms to reducing memory pressure during linking, the tricks to strip out debug-info in the internals no longer worked because no-debug-info doesn't strip the -gstabs compiler and linker flags. Change-Id: I151088f29058b8fe50cba9aa3ec8ecd84b85d7d8 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| * Fix linking of sources without LTCG to a static lib with LTCGThiago Macieira2014-12-014-17/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Make sure plugins under LTCG get the right flags too.Thiago Macieira2014-12-011-0/+2
| | | | | | | | | | Change-Id: I51384b4c3ceca25b6e010ccf67fa0f1995cfa557 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| * Decouple caching of iOS/OSX SDK path and version in sdk.prfTor Arne Vestbø2014-12-011-1/+5
| | | | | | | | | | | | | | | | | | Combining them could lead to intermediate builds having cached the path, but not the version, resulting in later version checks failing. Change-Id: Ia10f4268ce7b9e82c81627970236d68c00b80391 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-249-9/+64
|\| | | | | | | | | | | | | | | | | | | | | | | 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.0' into 5.4Frederik Gladhorn2014-11-213-4/+9
| |\ | | | | | | | | | Change-Id: I95f235a66ce2e9b1fa435c0f911c6f7e811755f0
| | * Set CFBundleIdentifier prefix for Qt frameworksMorten Johan Sørvig2014-11-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This sets the prefix for frameworks to "org.qt-project". Applications keep using the default Xcode preferences prefix. Task-number: QTBUG-32896 Change-Id: I67384f643888f2de3dd8e36b9bce0f04ca4e16dd Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| | * Revert "Build Qt for OS X and iOS with relative rpath"Morten Johan Sørvig2014-11-172-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change was made too late in the 5.4.0 release cycle, and broke the Qt build and deployment in several areas: - macdeployqt - OS X 10.7 builds - shadow builds This reverts commit c0a54efc4091b365ffac09fc2827cf92f849d698. Change-Id: I1c1ad4901228f5516352ccdfa963e8ea2b5013b6 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
| | * rcc: Change two-pass feature from opt-out to opt-inhjk2014-11-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes the 'big-data' feature introduced and made mandatory with commit 5395180 opt-in trough CONFIG += resources_big. Since the feature has been introduced several setups have been found where the feature cannot be used, or not be used out-of-the-box. Using the traditional default behavior lowers the risk of further breakages. Change-Id: Ifd04204adadeec539e962d6a9a6955f63781bd36 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
| * | mkspec macx-ios-clang: ensure SDK version is validRichard Moe Gustavsen2014-11-111-0/+4
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure the sdk is of recent enough version since: 1. we build Qt with the latest sdk version, so the app needs to do the same to avoid compatibility problems e.g when linking. 2. using a launch screen to support iphone6 depends on sdk 8 3. Apple requires apps that are pushed to appstore to use the latest version of the sdk. Ideally we should store the sdk version used to build Qt, and require that apps use the same version or newer. But this patch will do until that is in place. Change-Id: I18b06d09c1eda15122975b7169ca7a3372df6054 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * WinRT: Add missing manifest specifier for rotationMaurice Kalinowski2014-11-071-0/+15
| | | | | | | | | | | | | | | | | | | | 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>
| * Build Qt for OS X and iOS with relative rpathAdam Strzelecki2014-11-012-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Defaulting to absolute_library_soname on configure -rpath is no longer necessary as now we support @rpath install name ids on OS X and iOS. This also sets QMAKE_SONAME_PREFIX to @rpath for Qt modules when built with rpath configuration. This makes Qt libraries relocatable on OS X. Qt SDK is not yet relocatable though, because plugin location (including cocoa plugin) is still resolved using absolute path (see QTBUG-14150), also there are several absolute paths hardcoded in qmake mkspecs pri files. Task-number: QTBUG-31814 Change-Id: Ie9dffefcd2a946c1580293d433621c1adb7e06c4 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
| * Add rpath pointing to Qt libraries in OS X and iOSAdam Strzelecki2014-11-011-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is triggered only when app is using Qt and Qt was built with "rpath" configuration and project does not specify QMAKE_RPATHDIR explicitly. Added rpath is made relative to app binary location if target path lies inside Qt SDK, so all SDK bundled tools and examples will work automatically without any changes. Tests are an exception here, since they are being run from their build location by CI, we may not use relative rpath that work only in install location. Task-number: QTBUG-31814 Change-Id: I3690f29d2b5396a19c1dbc92ad05e6c028f8515b Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
| * Enable the latest versions of GCC, Clang and ICC with -WerrorThiago Macieira2014-10-311-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | Tested with GCC 4.9, Clang from XCode 5.1 and ICC 15 beta. Clang 3.5 (pre-release) cannot compile qtdeclarative yet with -Werror due to invalid C++ code there that calls member functions on null pointers. Change-Id: Ic2845371a1899716985bc0813dfb820fa418e207 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * add support for explicitly declaring the module master headerOswald Buddenhagen2014-10-292-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | when a module delegates to another module (as the activeqt ones do), it doesn't have a master header to be included. we could derive the real master header by doing a transitive dependency resolution and some filtering, but that seems unnecessarily complex. Task-number: QTBUG-41892 Change-Id: Ie7ce51a837ac06e929b204ec734206c11b3ae241 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * Merge remote-tracking branch 'origin/5.3' into 5.4Oswald Buddenhagen2014-10-281-1/+4
| |\ | | | | | | | | | Change-Id: I224e44a9df314b9a99d33148b6cf400fcbc9de8e
| | * pay attention to the MAKE env variableOswald Buddenhagen2014-10-281-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | ... to avoid that inherited MAKEFLAGS turn out to be incompatible with the make we choose. Task-number: QTBUG-39527 Change-Id: I47d4cec58b0643cc5d97868e70b24f7f37e964bb Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-201-0/+6
|\| | | | | | | | | | | Change-Id: If7e51514ed6832750e3ad967e4d322ccf920d2bb
| * | embed a VERSIONINFO resource into Qt pluginsJoerg Bornemann2014-10-201-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts f0ee55c00. VERSION actually makes sense on Windows, because it embeds a VERSIONINFO resource into the DLL that can be inspected by the user. Task-number: QTBUG-37961 Change-Id: I6b81b5aa999eba16cb8d9a4d61bd596310af46b9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-099-25/+36
|\| | | | | | | | | | | Change-Id: I05fcd8dc66d9ad0dc76bb7f5bae05c9876bfba14
| * | WinCE: fix DLL build errors with CONFIG+=consoleJoerg Bornemann2014-10-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit cd1dff75, we use QMAKE_LFLAGS_CONSOLE when linking DLLs that are built with CONFIG+=console. Thus, we must not pass options that are specific to linking executables. [ChangeLog][qmake] WinCE makespecs must not add /ENTRY: to QMAKE_LFLAGS_CONSOLE and more. The flag is hard-coded in console.prf now. This is a side effect of making it possible to specify a subsystem for DLLs. Change-Id: Ib481fd45b12140f9f05bf123db7152a3ddf0fa04 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * | Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4Oswald Buddenhagen2014-10-074-8/+18
| |\ \
| | * | Merge remote-tracking branch 'origin/5.3' into 5.4Oswald Buddenhagen2014-10-064-8/+18
| | |\| | | | | | | | | | | | | Change-Id: I132bb6cce68e9f8413200f7ee75586bd1cada38c
| | | * fix parallel installation of private and qpa headers in qt framework bundlesOswald Buddenhagen2014-10-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with qmake now de-duplicating the paths properly, we should version these QMAKE_BUNDLE_DATA entries as well, so we don't depend on the symlinking of the regular headers being done first. Change-Id: Idaa2ccc1ba9b5684b0c8d84f7f760735f54432e1 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| | | * Don't make Info.plist for debug framework bundlesGabriel de Dietrich2014-10-011-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We do so by setting a 'no_plist' config property. Can be overridden with 'force_debug_plist'. The debug version of Info.plist would overwrite the release version, and it also happens to contain invalid data. In particular, CFBundleExecutable would contain the _debug suffixed libname, which it shouldn't. See the entry about CFBundleExecutable on https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html Task-number: QTBUG-32894 Change-Id: Ideb018e4768a7c4e276e1b07d77937451f6db6a2 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| | | * actually use DIRLIST_SEPARATOROswald Buddenhagen2014-10-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | it's QMAKE_DIRLIST_SEP and DIRLIST_SEPARATOR. pure evil. Task-number: QTBUG-41668 Change-Id: Ie2f6db6530e0f50bc1ce5db593180e7ad703766b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| | | * create_cmake: Fix mingw plugin pathTimothy Gu2014-09-291-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MinGW static libs use libfoo.a format, and not foo.lib. Change-Id: I899adca8ec0b1c8430f5b6c4f18ad0ea1dc6d398 Reviewed-by: Timothy Gu <timothygu99@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * | | pass windows/console linker flags to DLLs and executablesJoerg Bornemann2014-10-062-7/+5
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pass QMAKE_LFLAGS_WINDOWS and QMAKE_LFLAGS_CONSOLE to QMAKE_FLAGS regardless of the project template. The /SUBSYSTEM linker switch is not exclusively meant for executables but can also be applied when linking dynamic libraries. This is needed when building DLLs for Windows XP with VS >= 2012. Task-number: QTBUG-41504 Change-Id: I5966cba1b6756e15275fa5d7fdbc42b99c95c07b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * | micro-optimization: make use of qtPrepareTool()'s new modeOswald Buddenhagen2014-09-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | avoids that we needlessly initialize QMLIMPORTSCANNER in addition to QMLIMPORTSCANNER_SYS (by making the former have the contents of the latter). Change-Id: Ib8a12975de426ae94bd78d489099157c94cea189 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * | use correct quoting style when running syncqt under mingwOswald Buddenhagen2014-09-302-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Add support for gcc/clang's sanitize featuresPeter Kümmel2014-10-021-0/+30
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | create_cmake: Make the warning actually useful.Robin Burchell2014-09-261-1/+3
| | | | | | | | | | | | | | | | Giving instructions, rather than forcing one to grep qtbase for the error message is always a good thing. Change-Id: I0f5abed341368cdf817dc0110c2c250b377a30de 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>
* | Use the correct QMake spec when running config testsThomas McGuire2014-09-251-1/+1
| | | | | | | | | | | | Task-number: QTBUG-41508 Change-Id: I0f27aad625117f931216b0cee987ed9463b7d0e0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | copy qml files only once in debug-and-release buildsOswald Buddenhagen2014-09-171-1/+1
| | | | | | | | | | | | | | | | the condition is copied 1:1 from the BUNDLE_DATA logic in qt_module.prf. Task-number: QTBUG-41267 Change-Id: Ia80a9a29319f70017e090855cf8d35a77b9e727f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Use Qt's major version in the library prefixJocelyn Turcotte2014-09-102-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-08-044-29/+11
|\| | | | | | | | | | | | | | | | | Conflicts: config.tests/arch/arch.cpp src/opengl/qgl_qpa.cpp src/widgets/kernel/qapplication.cpp Change-Id: I80b442a4c2c9632743a5b5c7319ff201ec5bc4fd
| * avoid that CROSS_COMPILE affects host buildsOswald Buddenhagen2014-08-011-1/+3
| | | | | | | | | | | | Change-Id: Iee40cfd87d7ec640fb4b3526e58317bdc8a778c7 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: David Schulz <david.schulz@digia.com>
| * Merge "Merge remote-tracking branch 'origin/stable' into 5.3" into ↵Oswald Buddenhagen2014-07-311-6/+1
| |\ | | | | | | | | | refs/staging/5.3
| | * Merge remote-tracking branch 'origin/stable' into 5.3Oswald Buddenhagen2014-07-301-6/+1
| | |\ | | | | | | | | | | | | Change-Id: I2a044d44ca991ba20ddd710053b85afb51e362d3
| | | * Remove -Wcast-align from QMAKE_CXXFLAGS.Lisandro Damián Nicanor Pérez Meyer2014-06-271-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | x86 doesn't care about alignment, and on all other platforms where it does something it causes build errors, so instead of removing it on those platforms just don't enable it at all. Change-Id: Idfeb387099b28af60ba161b6ca678b7c9df17fe1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * | | Android: export ANDROID_SDK_BUILD_TOOLS_REVISION.BogDan Vatra2014-07-312-22/+7
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | It's needed by androiddeployqt tool to run "zipalign" tool and to set it to gradle properties. Task-number:QTBUG-40481 Change-Id: I3dd665a7461a4e981867cdad75a50940e46a5ae6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | | Android: Output QML import and root paths for qmlimportscannerEskil Abrahamsen Blomfeldt2014-08-011-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When deploying QML applications, the androiddeployqt tool can use qmlimportscanner to detect the QML dependencies of the application, but then it needs to know the root of the project as well as additional QML import paths. We use the already-existing QML_IMPORT_PATH for the import paths, and default to using the location of the .pro file for the root path (same as for static builds in qt.prf). Change-Id: Ib536272ed1f3f1320ea8ef529655e2ba003bc734 Task-number: QTBUG-34175 Reviewed-by: BogDan Vatra <bogdan@kde.org>
* | | make module-by-module build work when old builds are installedOswald Buddenhagen2014-07-301-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when doing a module-by-module build, we need to also use includes and libraries from the install tree, as it contains the current module's dependencies. but a pre-existing installation of the current module must not be found first, as it would cause trouble latest when it was somehow incompatible. but purely topological sorting of the dependencies could cause the locations to be mixed up. therefore we give modules which are part of the current build a priority boost. Change-Id: I8fdbb46f0a2a630781c8a2177468039c1122151a Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | | turn off multi-pass RCC for Visual Studio projectsJoerg Bornemann2014-07-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For multi-pass RCC qmake generates broken VS project files, because the RCC extra compiler directly calls the C++ compiler on a generated source file. Adding this call to a VS project file will bypass any project settings. Also, the VS project generator is not prepared to add extra compilers that generate object files. Task-number: QTBUG-39685 Change-Id: I1bcaad8936be8371d596f29ed8952888ba95f7b2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | | Rewrite simd.prf to share more codeThiago Macieira2014-07-251-293/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was a long-time coming. One innovation from this commit is that it will add the source to SOURCES if the compiler is already generating code for that specific target. That is currently always the case for Neon, and the MIPS DSPs since that is the only condition in which configure will enable those targets. And because of qt_module.prf, it's also always the case for SSE2 (but not for SSE3 or higher). So simplify the .pri files by removing always-true conditions. Change-Id: Ib24af74717b652c9a6be246e3c17a839470f37da Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* | | Restore Neon "detection" in QtThiago Macieira2014-07-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't actually detect whether the compiler can create Neon code or provides Neon intrinsics. Most of them do, so that test would be mostly moot. We removed the detection previously because we couldn't automatically enable Neon due to leakage of instructions outside the areas protected at runtime. Instead, we rely on the mkspec properly passing the necessary flags that enable Neon support. This commit does not change that. All it does is verify whether the arch detection found "neon" as part of the target CPU features. In other words, it moves the test that was in simd.prf to configure. It does fix the Neon detection in configure.exe, which was always failing for trying to run a test that didn't exist (config.tests/unix/neon). Change-Id: Id561dfb2db7d3dca7b8c29afef63181693bdc0aa Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | | 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>