summaryrefslogtreecommitdiffstats
path: root/mkspecs
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* mkspec (iOS): use QTPLUGIN.platforms=-Richard Moe Gustavsen2014-04-301-1/+1
| | | | | | | | | | | After bbcdccd, a deprecation warning is written to the console every time you run qmake on iOS. This change will make use of the new QTPLUGIN.platforms=- instead if the deprecated CONFIG -= import_qpa_plugin Change-Id: I51e4f9d18f6abd87512a39b3236b89d5444fd6c1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* install convenience libraries when building staticallyOswald Buddenhagen2014-04-281-1/+3
| | | | | | | | | | | | we don't link static libs into other static libs, so the intermediate libs need to be installed and resolved at app link time. Task-number: QTBUG-32519 Change-Id: I0558140f98a6938b03306df7f800d66f8a19a7cd Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jeremy Lainé <jeremy.laine@m4x.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* centralize auxiliary lib creationOswald Buddenhagen2014-04-281-0/+25
| | | | | | | | | | | | this covers convenience libraries which are linked into dlls (if we are not building statically) and "proper" (installed) builds of 3rdparty code. Change-Id: I2f00248c0baa0e73346e477724bf49bbc62ba925 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Android: Add "unversioned_libname" configurationEskil Abrahamsen Blomfeldt2014-04-251-1/+1
| | | | | | | | | | | | | | | | | | | | | On Android, there's a limitation set on the names of the libraries you deploy that they must start with "lib" and end with ".so", so Android apps will link against and deploy with the unversioned libQt5FooBar.so libraries. When cross-compiling on Windows however, due to the lack of symbolic links, the only installed library used to be the main library target "libQt5FooBar.so.X.Y.Z" (for version X.Y.Z.) This has been worked around in packaging, but breaks building add-on modules on top of Qt, and is clearly wrong. This patch introduces a new "unversioned_libname" configuration in qmake which is currently only supported for the Unix makefile generator and only enabled for Android builds. When it is enabled, only the unversioned library "libQt5FooBar.so" will be created. Task-number: QTBUG-38347 Change-Id: Ia8897ca7a23a62e2a526d0e02854899b02eb19dc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* deprecate import_qpa_plugin and qpa_minimal_pluginOswald Buddenhagen2014-04-241-6/+8
| | | | | | | | they have been fully superseded by 4255ba40ab073afcf2a095b135883612859af4c2. Change-Id: If7ac14c8b7d3cf00fb0cb916036b62eb86c9cee0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Revert "Automatically link printsupport plugins to static applications."Oswald Buddenhagen2014-04-181-2/+0
| | | | | | | | | | It has been fully obsoleted by 4255ba40ab073afcf2a095b135883612859af4c2. This reverts commit 99eecab83d4a4c79979aa0b1fcf1f58c14dcf526. Change-Id: Id7b8d3bba27ff43e38e4fe32a4f2950de9ced493 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: John Layt <jlayt@kde.org>
* Make Xcode debug info format controllable through a qmake variableTor Arne Vestbø2014-04-103-16/+17
| | | | | | | | | | The default is still DWARF instead of DWARF with dSYM for static builds of Qt, so that debug builds of the final application don't take forever to build due to generating the dSYM file. Change-Id: I370d800d7c959e05c1a8780c4ebf58fff250daa1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
* make cmake registration of qt plugins make use of PLUGIN_EXTENDSOswald Buddenhagen2014-04-091-7/+14
| | | | | | | | | | | | | | | | | | instead of assigning plugins to the first module which claims the whole type, try to assign it to a module which the plugin claims to extend. as we are getting stricter in that go, somebody needs to claim the 'generic', 'platformthemes', and 'platforminputcontexts' plugin types. the natural claimant is QtGui. however, as we don't want to auto-link any of these plugins, make them all claim that they extend a non-existing module. QtGui also claims 'iconengines' plugins. the 'printsupport' plugins are also claimed by the respective module. Change-Id: I7af7c16089f137b8d4a4ed93d1577bd85815c87b Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* make QTPLUGIN work in prefix builds for plugins outside qtbaseOswald Buddenhagen2014-04-092-3/+35
| | | | | | | | | | | this means creating forwarding pris also for plugins. unlike for qt modules, we don't actually populate the .PATH unless it we are making a prefix build (and thus expecting it to be outside the regular location). Change-Id: Id836821cddec8d5f53d0708ae001e8eaa13cc71b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* automatically link plugins belonging to qt modules when building static appsOswald Buddenhagen2014-04-093-3/+41
| | | | | | | | | | | | | | | | the plugins already declare which modules they belong to. additionally, we allow plugins to declare which modules they "extend" - e.g., while the Quick accessibility plugin belongs to Gui's 'accessiblity' type, it makes no sense to link it unless Quick is actually linked. finally, it is possible to manually override the plugins which are linked for a particular type, by setting QTPLUGIN.<type> (to '-' if no plugins of this type should be linked at all). Task-number: QTBUG-35195 Change-Id: I8273d167a046eb3f3c1c584dc6e3798212a2fa31 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Use PlistBuddy instead of sed/xpath magic to extract OS X/iOS SDK nameTor Arne Vestbø2014-04-081-6/+1
| | | | | | | | Change-Id: I9e9f9b033cc892a35c86b35f64dc1dd915ad44f3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* purge vestiges of opengl es 1 supportOswald Buddenhagen2014-04-0412-53/+8
| | | | | | | | amends 0d5170256c1. Change-Id: Ifa178d38f602bb7c66ef13334673ff47e332af5b Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Rename QNX arm mkspecs to be aligned with SDP structureWolfgang Bremer2014-04-045-75/+122
| | | | | | | | | | | | | | | | | The current SDP uses CPUVARDIR variable to define whether x86 or armle-v7 is used. Therefore, the whole structure uses these two definitions to separate simulator and device builds. Renaming qnx-armv7le-qcc to qnx-armle-v7-qcc allows to directly use CPUVARDIR during Qt5 builds. For compatibility reasons the old folder is kept and includes the new qmake.conf. This change is similar to fe61f2d6b29cca87b46dc37c7968b2f765f670ef where we already aligned the BB10 mkspecs to the NDK structure. Change-Id: I7e1c0c2d137dc4049549233940e7f9d1c9f671f0 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Windows XP target support for MSVC >= 2012Joerg Bornemann2014-04-035-6/+20
| | | | | | | | | | | | | | | | | | To enable windows xp support, we must do two things: 1. linker flag must be /SUBSYSTEM:CONSOLE,5.01 or /SUBSYSTEM:WINDOWS,5.01. For x64, the version is 5.02. 2. Do not use Windows Kit 8. Win SDK v7.1A is recommended. Prepend the right include paths and lib paths to INCLUDE and LIB before building. The Windows XP target support is enabled by passing "-target xp" to configure. Task-number: QTBUG-29939 Change-Id: I84c8439606cc2a9d27d64947702846faa4f1e4a2 Reviewed-by: Lucas Wang <wbsecg1@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* BlackBerry,QNX: Switch to QMAKE_PLATFORM from CONFIGWolfgang Bremer2014-04-033-3/+3
| | | | | | | | | | This is the right configuration of the platform within the mkspecs. It enables the usage of additional features like the automatic detection of platform specific prf files. Change-Id: I2f19265d283e47c62455128f217bc44ba88cdc98 Reviewed-by: Sergio Ahumada <sahumada@blackberry.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Add support for device capabilities on WinRTMaurice Kalinowski2014-03-311-1/+6
| | | | | | | | | | | | | | | WinRT distinguishes between regular capabilities and device capabilities. For now the latter section are location, microphone, proximity and webcam. Hence we must add those properly to the generated manifest. However, Windows Phone currently combines all of these into the Capability section, so add a warning if someone uses devicecapabilities for Windows Phone. Task-number: QTBUG-37932 Change-Id: I8e9550f29b6afdea3737cc85bdc68344fc04223d Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* Update copyright year in tools outputKai Koehne2014-03-311-1/+1
| | | | | | Change-Id: I9ee9604303b3cb29f89a4252df5af35e729f6249 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* winphone: deploy default font files as DirectWrite is not supportedOliver Wolff2014-03-253-0/+62
| | | | | | | | For Visual Studio we can add the fonts we want to deploy to the project file by using the DEPLOYMENT variable. Change-Id: Ifc87a12a2bb4ec4ff1c0a8dc8f0b1fbf37e4e513 Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* Windows Phone: Remove QT_NO_CURSORv5.3.0-beta1Andrew Knight2014-03-212-2/+2
| | | | | | | | | | This define causes source incompatibilities in QML applications, as it results in removal of properties from e.g. MouseArea. The default (null) cursor implementation which will now be active should cause negligible overhead with this define removed. Change-Id: I8ee78e084cb95b4c73782a3a831f0672ba230b19 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Windows Phone: Remove ws2_32.lib dependencyAndrew Knight2014-03-212-2/+2
| | | | | | | We no longer require this library, so remove it from the linker list. Change-Id: Ic211f8f6d954eddce8818807619962ad009be117 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
* encode the MSVC version in our mkspecsJoerg Bornemann2014-03-205-0/+5
| | | | | | | | | This will enable qmake and its users to make decisions based on the Visual Studio version without guessing it from the mkspec's name. Change-Id: I1bb46161111b109c2b4302bfc8c428b5f63c32d9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* purge -separate-debug-info=nocopyOswald Buddenhagen2014-03-202-2/+1
| | | | | | | | clearly, this was a poor man's implementation of -force-debug-info. Change-Id: Ib5c7e390bd0e3a6912af8c4027074a114ed33f8a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix WinRT manifest for Visual Studio.Janne Anttila2014-03-204-14/+21
| | | | | | | | | | | | | | | | | | | | | | Visual Studio does not like empty dependencies block in manifest XML. At least my Visual Studio 2013 fails to open visual manifest editor for XML containing the following block: <Dependencies> </Dependencies> If the block is removed or if the block has one or more PackageDependency entries the editor accepts it. Moved the <Dependencies> block to prf, so that it is only written when project really has dependencies. Also <Capabilities> block is moved to prf for consistency. On Windows Phone, where the <Capabilities> block is required, it is kept in the output even if it is empty. Change-Id: I531180d0081e4612f75be54f3813831857f1ed43 Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Android: Turn off thumb for armv5 againEskil Abrahamsen Blomfeldt2014-03-141-3/+7
| | | | | | | | | | | | | | | | | | The 4.8 compiler in the Android NDK sometimes produces uncompilable code for armv5. In change b4252802b3a537268b83855d2e13390bd5aedf5c we reintroduced thumb instructions on armv5 with a work-around for a particular case of this bug. However, the compiler now breaks for Qt Script. There's no time to try to find a work-around for this case, so we need to disable thumb again. It actually also seems that this is completely broken with this compiler, so it would probably be best to keep this disabled until the compiler is fixed. Especially since armv5 will become part of the CI builds now, so the compiler bug can end up blocking critical changes in the future if it's re-enabled :/ Task-number: QTBUG-37376 Change-Id: I9e1b050ce596717ba1fa7ec2f5e8a3ce3581a3af Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Introduce GENERATED_TESTDATA variable and fix qresourceengine test.Janne Anttila2014-03-141-0/+22
| | | | | | | | | | | testcase.prf cannot be loaded from pro file for various reasons, see qtbase commit history for details. Moved runtime testdata logic from pro file to testdata.prf, and thus made is reusable in other test cases as well. Change-Id: I500d08dc4951e4eda862071e4ddd3e0f6de8c3d2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* properly replace windows paths in installed plugin prl filesOswald Buddenhagen2014-03-141-0/+1
| | | | | | | | amends 53f48a4b. Task-number: QTBUG-37399 Change-Id: I599ba612af760891cd99283560ccc9240125db39 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* enable path replacement in installed plugin prl files on all platformsOswald Buddenhagen2014-03-141-9/+7
| | | | | | | | amends 08a2d8df4. Task-number: QTBUG-37399 Change-Id: I113ddf632d2ce3f7f2c92e079fd2fa3a1a640c1a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* iOS: Create folder for SUBDIR projectsMarkus Goetz2014-03-141-0/+1
| | | | | | | | | | | In case of a SUBDIR qmake project, it tried to cd into a directory that did not exist yet. I needed to run qmake twice to get it working. This fixes it. Change-Id: I6d322e9a7c96a9d82df77b9ba5f19711a8180ed0 Task-number: QTBUG-37429 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Fix WinRT design-mode manifest location.Janne Anttila2014-03-141-2/+7
| | | | | | | | | | | | | | | | | | | QMake always places makefiles, including vcproj files, to OUT_PWD. BUILD_DIR i.e. QMAKE_RESOLVED_TARGET refers to location where target is generated. If TARGET is specified in pro file with path, such as: TARGET = ../../debug/tst_qlocale The QMAKE_RESOLVED_TARGET refers to that path, and it differs from OUT_PWD. Because Visual Studio requires a design-mode manifest in the same location as the vcproj, resolved BUILD_DIR separately based on TEMPLATE. Change-Id: I8dbaa862a5f53ac168f4643c17baabd7b4f0287d Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix building of Qt with icc on WindowsAndy Shaw2014-03-061-0/+1
| | | | | | | | | Since there was no extension specified for static libraries then it would end up not being able to build Qt at all. Change-Id: Iec9040640ba399544b86df27e370fcf23cabb4de Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* CMake: Test with the NMake Makefiles generator on Windows.Stephen Kelly2014-03-061-4/+1
| | | | | | | It may be much faster through the CI system that way. Change-Id: Ib5e3a438bd2ac98dd0a3806cedba152f25e219d5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* simd.prf: replace CONFIG based neon check with a QT_CPU_FEATURES checkThomas Senyk2014-03-061-1/+1
| | | | | | | | | | | | | | | | If one doesn't set CONFIG+=neon in it's mkspec but the compiler enables it, Qt fails during linking of libQtGui, because simd.prf isn't executed as needed (doesn't run into neon{..}). Although a mkspec which enabled neon (-mfpu=neon) without CONFIG+=neon could be considered broken, it's still simpler to just 'fix' Qt to not fail unexpected. Follow-up to e5066a3a2eb965e64f6bf6e112739222574d66d7 Task-number: QTBUG-37264 Change-Id: I3aa0afbe430547971e76c2c988697c133d69796b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Add optimize_full qmake config optionAllan Sandfeld Jensen2014-03-063-2/+14
| | | | | | | | | | | | | | | | | | | This patch adds a new config option to qmake to enable full optimization where it makes sense. This currently is supported on all gcc like compilers by exchanging -O2 for -O3. In qtbase it is used to enable full optimizations on qtcore and qtgui and in a later patch can be used to replace similar existing logic in QtWebKit's WTF and JavaScriptCore modules. This fixes a performance regression from gcc 4.7 to 4.8 in the software renderer. An aliasing error in qregion.cpp which was exposed by more aggresive optimization has been solved as well. Change-Id: Ic2c6c41b79cb3846212b40e7bcc11ff492beb27f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix win32 mkspecsOswald Buddenhagen2014-03-068-22/+18
| | | | | | | | | | | Instead of checking for dynamicgl in QT_CONFIG, which is apparently not possible, revert them and do it in opengl.prf instead. Dynamic GL is Windows-only for the time being so this should be sufficient. Change-Id: If293ea4c9b024df52257086c8b6250602a44724d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Win32: define _HAS_EXCEPTIONS as 0 when exceptions are off.Erik Verbruggen2014-03-043-3/+3
| | | | | | | | | When this macro is not defined, a number of inline methods in the MSVC stl will throw exceptions. This in turn generates a warning when exceptions are not enabled on the compiler command-line. Change-Id: I5a57ec544bda0c75f04fdea9412b03107f9ff531 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* automate handling of generated headers some moreOswald Buddenhagen2014-02-281-0/+14
| | | | | | | | | | | | | | let the syncqt + qt_module_header.prf pair handle generation of forwarding headers. in qtbase this is ineffective to some degree, as the need to create QtCore's forwarding headers early for QtBootstrap requires qtbase.pro already doing the real work, but at least we get the verification that nothing breaks. Other Modules (TM) will need the full functionality. Change-Id: Ifd3dfa05c4c8a91698a365160edb6dabc84e553f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* WinRT package_manifest: Remove comment about manifest overwriteAndrew Knight2014-02-203-3/+3
| | | | | | | | This comment is wrong and should be removed. The manifest is always generated. Change-Id: I281737dd6a358380fb557063eadae88909f5078b Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-1724-46/+18
|\ | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h Change-Id: I03d8b6e07135056baaa1d97c3c63fbe8b25583d9
| * Remove automated generation of dwarf indexhjk2014-02-1624-46/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The index is only helpful if the version of GDB to create it uses the same version as the GDB version that consumes it. Outside the "local development" scenario this happens only by conincidence, still we add ~3.6% to the debug library size and face maintenance issues like QTBUG-34950. We also don't see the same performance benefit anymore with recent versions as we did when the feature was added, so it's best to not create the index anymore. People who need it, still can add it manually, or by the 'gdb-add-index' tool that comes with recent versions of GDB, or trust their distributors to set up indexes matching their runtime environment. Task-number: QTBUG-34950 Change-Id: Id4c79fa51fea9622b0891bd9b9b395b948ecb157 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Initial support for the Intel Compiler 14.0 on OS XThiago Macieira2014-02-162-16/+29
| | | | | | | | | | | | | | | | | | | | | | ICC 8 and 9 are positively ancient. I doubt anyone is using them for Qt, let alone Qt 5. ICC 11 through 13 haven't supported OS X. ICC now masquerades as Clang, so we need to let qmake and qcompilerdetection.h know about it. Change-Id: If0d2bd8b6a4a45250c15c9472c062effc76f17de Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Force alignment for SSE2 to not crash with mingwKonstantin Ritt2014-02-141-1/+1
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-36807 Change-Id: I946f96f663a63e7102c86a8bbc728ad5bf48d839 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | Dynamic GL switch on WindowsLaszlo Agocs2014-02-147-14/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch introduces a new build configuration on Windows which can be requested by passing -opengl dynamic to configure. Platforms other than Windows (including WinRT) are not affected. The existing Angle and desktop configurations are not affected. These continue to function as before and Angle remains the default. In the future, when all modules have added support for the dynamic path, as described below, the default configuration could be changed to be the dynamic one. This would allow providing a single set of binaries in the official builds instead of the current two. When requesting dynamic GL, Angle is built but QT_OPENGL_ES[_2] are never defined. Instead, the code path that has traditionally been desktop GL only becomes the dynamic path that has to do runtime checks. Qt modules and applications are not linked to opengl32.dll or libegl/glesv2.dll in this case. Instead, QtGui exports all necessary egl/egl/gl functions which will, under the hood, forward all requests to a dynamically loaded EGL/WGL/GL implementation. Porting guide (better said, changes needed to prepare your code to work with dynamic GL builds when the fallback to Angle is utilized): 1. In !QT_OPENGL_ES[_2] code branches use QOpenGLFunctions::isES() to differentiate between desktop and ES where needed. Keep in mind that it is the desktop GL header (plus qopenglext.h) that is included, not the GLES one. QtGui's proxy will handle some differences, for example calling glClearDepth will route to glClearDepthf when needed. The built-in eglGetProcAddress is able to retrieve pointers for standard GLES2 functions too so code resolving OpenGL 2 functions will function in any case. 2. QT_CONFIG will contain "opengl" and "dynamicgl" in dynamic builds, but never "angle" or "opengles2". 3. The preprocessor define QT_OPENGL_DYNAMIC is also available in dynamic builds. The usage of this is strongly discouraged and should not be needed anywhere except for QtGui and the platform plugin. 4. Code in need of the library handle can use QOpenGLFunctions::platformGLHandle(). The decision on which library to load is currently based on a simple test that creates a dummy window/context and tries to resolve an OpenGL 2 function. If this fails, it goes for Angle. This seems to work well on Win7 PCs for example that do not have proper graphics drivers providing OpenGL installed but are D3D9 capable using the default drivers. Setting QT_OPENGL to desktop or angle skips the test and forces usage of the given GL. There are also two new application attributes that could be used for the same purpose. If Angle is requested but the libraries are not present, desktop is tried. If desktop is requested, or if angle is requested but nothing works, the EGL/WGL functions will still be callable but will return 0. This conveniently means that eglInitialize() and such will report a failure. Debug messages can be enabled by setting QT_OPENGLPROXY_DEBUG. This will tell which implementation is chosen. The textures example application is ported to OpenGL 2, the GL 1 code path is removed. [ChangeLog][QtGui] Qt builds on Windows can now be configured for dynamic loading of the OpenGL implementation. This can be requested by passing -opengl dynamic to configure. In this mode no modules will link to opengl32.dll or Angle's libegl/libglesv2. Instead, QtGui will dynamically choose between desktop and Angle during the first GL/EGL/WGL call. This allows deploying applications with a single set of Qt libraries with the ability of transparently falling back to Angle in case the opengl32.dll is not suitable, due to missing graphics drivers for example. Task-number: QTBUG-36483 Change-Id: I716fdebbf60b355b7d9ef57d1e069eef366b4ab9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-121-1/+2
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/gui/image/qimage.cpp src/gui/text/qtextengine.cpp src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp src/printsupport/kernel/qprintengine_win.cpp Change-Id: I09ce991a57f39bc7b1ad6978d0e0d858df0cd444
| * Disable disabling exceptions with ICCThiago Macieira2014-02-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | There's a bug found in ICC 14.0 that causes the compiler to assert when compiling QtDeclarative. Let's leave this here until at least one year after the fix is released. Intel task: DPD200253124 Task-number: QTBUG-36577 Change-Id: I76d4b41da7e60397dac65862a3a6ec024b840744 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Frederik Gladhorn2014-02-112-4/+8
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-072-4/+8
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qguiapplication.cpp src/plugins/platforms/android/androidjnimain.cpp src/plugins/platforms/android/qandroidplatformintegration.cpp src/plugins/platforms/android/qandroidplatformintegration.h src/plugins/platforms/android/qandroidplatformopenglcontext.cpp src/plugins/platforms/cocoa/qcocoawindow.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/sql/doc/src/sql-driver.qdoc src/widgets/widgets/qtoolbararealayout.cpp Change-Id: Ifd7e58760c3cb6bd8a7d1dd32ef83b7ec190d41e
| | * Do not limit clang generated debug info to dwarf-2 on mac.Erik Verbruggen2014-01-211-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dwarf-2 is treated as deprecated (at best) by llvm, and does not support a lot of C++ language features. Most notably, it does not support namespaces and template parameters. By not specifying the dwarf version, the compiler can decide which version to use. Change-Id: Ic32f9101c4db0f06a8ace8f5e04af9236d01598e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| | * Suppress unsafe warnings of MSVCKurt Pattyn2014-01-211-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added a define to suppress MSVC warning “C4996: This function or variable may be unsafe.” If the code is really "unsafe" then it is unsafe on other platforms as well; so fixing these warnings just for MSVC builds, would clutter the code and wouldn't help in fixing issues that might exist on other platforms. Using the same functions across all supported platforms keeps the code clean and helps in writing code that is safe across all platforms. Change-Id: I470072eda4f8174bb911567ef3f061a3582ba449 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | qmake: Provide feature for windeployqtAndrew Knight2014-02-111-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | windeployqt is a tool that aids in the deployment of Qt libraries and other files on Windows. This feature (CONFIG+=windeployqt) adds automatic invocation of windeployqt for qmake projects as a post-link action. For Visual Studio projects, windeployqt is added as a custom target which runs after linking, automatically adding the output as deployment items. Task-number: QTBUG-35630 Change-Id: I4cdcb1a7f70cedccb4a4e17be5eb9f5de35a4d66 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>