Commit Graph

1460 Commits

Author SHA1 Message Date
Oswald Buddenhagen
d7a5dc0cfd Merge remote-tracking branch 'origin/5.3' into 5.4.0
Conflicts:
	src/plugins/platforms/xcb/qxcbwindow.cpp

Change-Id: Iad9ef6bf7d6111efba8232a7d9b46bb9974912f5
2014-11-10 11:39:35 +01:00
Matt Fischer
6451c4baeb Fix release-with-debuginfo flags for QCC
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>
2014-11-07 22:59:29 +01:00
Maurice Kalinowski
2f7d0838b8 WinRT: Add missing manifest specifier for rotation
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>
2014-11-07 11:13:02 +01:00
Raphael Kubo da Costa
cfa73537cc Stop including g++-unix.conf in the freebsd-clang mkspec.
Most of the settings there end up overwritten by the clang.conf include
that comes afterwards, except for a few things such as QMAKE_LINK_C,
which remains set to "gcc" and breaks things when one uses
CONFIG=use_c_linker.

QMAKE_LFLAGS_NOUNDEF was coming from g++-unix.conf, though, so we now
manually set it in freebsd-clang's qmake.conf.

Change-Id: Ibd16f59d43eb19e72adf4919da9ce3007100b60f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-11-05 10:45:42 +01:00
Raphael Kubo da Costa
2b9a793dcd Set the _C variants of QMAKE_LINK and QMAKE_LINK_SHLIB in clang.conf.
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>
2014-11-05 10:45:37 +01:00
Adam Strzelecki
c0a54efc40 Build Qt for OS X and iOS with relative rpath
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>
2014-11-01 19:27:23 +01:00
Adam Strzelecki
e0676a954c Add rpath pointing to Qt libraries in OS X and iOS
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>
2014-11-01 19:26:12 +01:00
Thiago Macieira
3b86bd5406 Reenable C++11 for ICC on OS X
It's fixed for the Intel Composer XE 2015 (compiler version 15.0).

Change-Id: I7960b2128743081e905d4b96acf55360f744fc69
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-10-31 22:22:02 +01:00
Thiago Macieira
6336ae831d Enable the latest versions of GCC, Clang and ICC with -Werror
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>
2014-10-31 19:18:01 +01:00
Laszlo Agocs
848d29cca3 Raspi: default platform plugin is eglfs
Not wayland. Use the default of eglfs coming from linux_device_pre.conf.

Qt 5.4 includes QtWayland and the platform plugin from there may get built
unexpectedly. The result is that the Pi setup that worked with 5.3 and eglfs
stops functioning.

Task-number: QTBUG-40538
Change-Id: If894c7ddd7b40a22272797d94ce1a545b7ab43f2
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2014-10-30 13:44:29 +01:00
Oswald Buddenhagen
e1ff27ca28 add support for explicitly declaring the module master header
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>
2014-10-29 09:37:08 +01:00
Oswald Buddenhagen
4b491334cf Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4 2014-10-29 10:55:33 +01:00
Tor Arne Vestbø
a8ed001f36 iOS: Properly detect arm64 builds when choosing which -arch flags to pass
Change-Id: Ib410584ba2c1fe342efb18eb955273090d36db8f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-28 19:46:03 +01:00
Oswald Buddenhagen
8613b64f53 Merge remote-tracking branch 'origin/5.3' into 5.4
Change-Id: I224e44a9df314b9a99d33148b6cf400fcbc9de8e
2014-10-28 18:21:45 +01:00
Oswald Buddenhagen
4d5f9df8ab pay attention to the MAKE env variable
... 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>
2014-10-28 14:04:45 +01:00
BogDan Vatra
8057912915 Android: Remove duplicate code, use pre-calculated variable
Change-Id: I66a7dd2aa9fa67a639b0573641b6bb01ead18d07
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-10-23 08:54:26 +02:00
Frederik Gladhorn
3361fcbc28 Merge remote-tracking branch 'origin/5.4' into dev
Change-Id: If7e51514ed6832750e3ad967e4d322ccf920d2bb
2014-10-20 19:12:25 +02:00
Joerg Bornemann
5e342f6f04 embed a VERSIONINFO resource into Qt plugins
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>
2014-10-20 14:47:53 +02:00
Morten Johan Sørvig
cd512cbcab Bump default deployment target to 10.7
10.6 is no longer supported.

Change-Id: I4c799ba2a9622aa1dd8a79ff70608b50b2bbd26a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-18 13:25:08 +02:00
Jürgen Hunold
d16f76cde3 Remove duplicate of clang + libc++ mkspec
The same funcionality is already supported, so we avoid confusion.
The corresponding mkspec is name "linux-clang-libc++"

Change-Id: Ib087595298b48c73ad5da8d92cca2d1bac89f2be
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-10-10 18:21:09 +02:00
Frederik Gladhorn
881ceeff42 Merge remote-tracking branch 'origin/5.4' into dev
Change-Id: I05fcd8dc66d9ad0dc76bb7f5bae05c9876bfba14
2014-10-09 17:56:52 +02:00
Joerg Bornemann
b883cee471 WinCE: fix DLL build errors with CONFIG+=console
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>
2014-10-08 13:05:05 +02:00
Oswald Buddenhagen
a1d66c9aee Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4 2014-10-07 13:31:20 +02:00
Joerg Bornemann
cd1dff7556 pass windows/console linker flags to DLLs and executables
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>
2014-10-06 17:17:29 +02:00
Oswald Buddenhagen
f49d5b578c Merge remote-tracking branch 'origin/5.3' into 5.4
Change-Id: I132bb6cce68e9f8413200f7ee75586bd1cada38c
2014-10-06 11:59:47 +02:00
Tor Arne Vestbø
1126efed7d iOS: Set up default Info.plist to support all interface orientations
When the UISupportedInterfaceOrientations key is missing, iOS will start
up the application in the orientation defined by UIInterfaceOrientation,
and if that key is also missing, it will default to portrait orientation.

Unfortunately, when the application has finished launching on an iPad,
there is no way to re-evaluate the current device orientation unless the
user actively rotates the device, so for example if the device is physically
in landscape orientation, and the application is started up in portrait,
the application will not auto-rotate to landscape after starting up.

It would seem that [UIViewController attemptRotationToDeviceOrientation]
would be the right API to do this, but even after telling the device
to beginGeneratingDeviceOrientationNotifications the device orientation
will still match the startup orientation until the device is physically
rotated. For iPod/iPhones this is not an issue, as the OS will update
the device orientation after startup. Presumably the difference in
behavior between the two device classes is due to the iPad supporting
any orientation for the application grid.

Since we would prefer the application to either start up in the right
orientation directly, or at least rotate to it after startup, and the
latter can't be done, we apply UIInterfaceOrientationMaskAll to the
Info.plist file. This also has the benefit that the application will
show any splash screens in the right orientation.

Change-Id: If0421bc7b82b7f14a510fa1f34eac4f6407f570f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-10-03 16:31:54 +02:00
Peter Kümmel
d5576b1cb8 Add support for gcc/clang's sanitize features
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>
2014-10-02 19:45:00 +02:00
Oswald Buddenhagen
f72dcff925 fix parallel installation of private and qpa headers in qt framework bundles
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>
2014-10-01 10:57:21 +02:00
Morten Johan Sørvig
d6444b2e56 Add CFBundleVersion to the Info.plist files.
Add @FULL_VERSION@ -> Qt version substitution to
unixmake2.

This makes the Qt-generated Info.plist files compliant
with the bundle signing/validation process.

Task-number: QTBUG-32896
Change-Id: I1818f028c2f740d699629dd78cc0fe6ffaf94a1c
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-01 10:56:41 +02:00
Gabriel de Dietrich
10bd8e2104 Don't make Info.plist for debug framework bundles
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>
2014-10-01 10:56:37 +02:00
Oswald Buddenhagen
aedfb7e982 actually use DIRLIST_SEPARATOR
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>
2014-10-01 10:56:13 +02:00
Oswald Buddenhagen
c74c548af3 micro-optimization: make use of qtPrepareTool()'s new mode
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>
2014-09-30 18:33:13 +02:00
Oswald Buddenhagen
c016aeba32 use correct quoting style when running syncqt under mingw
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>
2014-09-30 18:33:10 +02:00
Timothy Gu
9dcc3a5728 create_cmake: Fix mingw plugin path
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>
2014-09-29 11:08:02 +02:00
Robin Burchell
c30687f519 create_cmake: Make the warning actually useful.
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>
2014-09-26 23:31:33 +02:00
Oswald Buddenhagen
26875f6080 make -force-debug-info work for objective C
Task-number: QTBUG-35776
Change-Id: Idb96108963e9330dd62c7878457c30bd74dc79a0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-09-26 15:35:57 +02:00
Thomas McGuire
8b65e72b2d Use the correct QMake spec when running config tests
Task-number: QTBUG-41508
Change-Id: I0f27aad625117f931216b0cee987ed9463b7d0e0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-09-25 11:11:23 +02:00
Matti Paaso
974c210835 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL

Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-09-24 12:26:19 +02:00
Frederik Gladhorn
c96426f19f Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4 2014-09-24 12:04:52 +02:00
Caroline Chao
8f7c27d96b iOS: Add missing LSRequiresIPhoneOS field to Info.plist
This field specifies whether the app is an iOS app.

Change-Id: I38cfcbec97b32f517a14a9a34f1eb871b9fa1ef7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-09-23 17:53:35 +02:00
Frederik Gladhorn
c5a3e5edd9 Merge remote-tracking branch 'origin/5.3' into 5.4
The isAlwaysAskOption was removed in 3862171315
so manually removed code in
src/plugins/bearer/connman/qconnmanengine.cpp

Conflicts:
	src/corelib/global/qglobal.h
	src/corelib/tools/qcollator_macx.cpp
	src/corelib/tools/qstring.cpp
	src/gui/kernel/qwindow.cpp
	src/gui/kernel/qwindow_p.h
	src/gui/text/qtextengine.cpp
	src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h
	src/plugins/platforms/android/qandroidinputcontext.cpp
	src/plugins/platforms/xcb/qglxintegration.cpp
	src/plugins/platforms/xcb/qglxintegration.h
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/testlib/qtestcase.cpp
	src/testlib/qtestlog.cpp
	src/widgets/dialogs/qfiledialog.cpp
	src/widgets/kernel/qwindowcontainer.cpp
	tests/auto/corelib/tools/qcollator/tst_qcollator.cpp
	tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp
	tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
	tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp

Change-Id: Ic5d4187f682257a17509f6cd28d2836c6cfe2fc8
2014-09-23 11:23:36 +02:00
Oswald Buddenhagen
b462314520 copy qml files only once in debug-and-release builds
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>
2014-09-17 11:40:04 +02:00
Jocelyn Turcotte
7ef2f9f65c Use Qt's major version in the library prefix
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>
2014-09-10 14:30:50 +02:00
Raphael Kubo da Costa
231da210ea Do not set QMAKE_{INC,LIB}DIR_{OPENGL,X11} in the freebsd mkspecs.
X11 and the GL libraries are installed into /usr/local like other
software, and this has been the case for many years.

Change-Id: Ied4d9d61154014db3861bdbd6a5bdbe68e76f878
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-08-15 19:54:02 +02:00
Raphael Kubo da Costa
f630eb1120 Remove reference to gdb_dwarf_index from the freebsd-clang mkspec.
Follow-up to 9de2853a ("Remove automated generation of dwarf index"):
gdb_dwarf_index.prf does not exist anymore, so stop referencing it.

Change-Id: I22464d5b81a50a2f58218d74a424f3a790aa1df0
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-08-15 15:40:31 +02:00
Samuli Piippo
347be657b7 Set iMX device specific compiler flags to QMAKE_CFLAGS
Device specific compiler flags need to go to QMAKE_CFLAGS, so that
they are used also when --force-debug-info is used. Removed separate
_DEBUG and _RELEASE, since the gcc-base provides same defaults.

Change-Id: I6ce0133a1acf419261b7756525185f43581d2a9c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-08-14 12:26:36 +02:00
Adam Strzelecki
6545acdf68 Enable rpath support on OS X and iOS platform
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>
2014-08-09 15:37:39 +02:00
Allan Sandfeld Jensen
28fe4e3a86 Remove specific maemo/meego codepaths
We no longer support the maemo/meego platform, so we can remove the
specific code for that platform.

Change-Id: Ia7f0730eba2d96794b97b7ca4753f63a2d7bc2a8
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2014-08-06 15:48:02 +02:00
Thiago Macieira
11bbacf194 Remove the last remnants of iWMMXt in Qt
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>
2014-08-05 19:23:31 +02:00
Frederik Gladhorn
0936bc54f9 Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
	config.tests/arch/arch.cpp
	src/opengl/qgl_qpa.cpp
	src/widgets/kernel/qapplication.cpp

Change-Id: I80b442a4c2c9632743a5b5c7319ff201ec5bc4fd
2014-08-04 09:51:36 +02:00
Eskil Abrahamsen Blomfeldt
a219c8b2cb Android: Output QML import and root paths for qmlimportscanner
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>
2014-08-01 16:23:48 +02:00
Oswald Buddenhagen
4a55f1510d avoid that CROSS_COMPILE affects host builds
Change-Id: Iee40cfd87d7ec640fb4b3526e58317bdc8a778c7
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: David Schulz <david.schulz@digia.com>
2014-08-01 14:36:51 +02:00
Oswald Buddenhagen
a5cf862f61 Merge "Merge remote-tracking branch 'origin/stable' into 5.3" into refs/staging/5.3 2014-07-31 17:29:06 +02:00
BogDan Vatra
ef5fb6ead5 Android: export ANDROID_SDK_BUILD_TOOLS_REVISION.
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>
2014-07-31 14:16:51 +02:00
Tor Arne Vestbø
ca972866e2 Fix iOS simulator build after 1f0823c (Rewrite simd.prf to share more code)
Now that we rely on simd.prf for all SIMD sources (including NEON and SSE2),
we need to ensure that CONFIG has the right SIMD values to match simulator.

This worked before due to us checking QT_CPU_FEATURES.$$QT_ARCH and adding
directly to SOURCES.

Change-Id: I4ea7f559e83860eabff1948ad5d140bbb65454df
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-07-30 19:37:52 +02:00
Oswald Buddenhagen
87d15f2c1b Merge remote-tracking branch 'origin/stable' into 5.3
Change-Id: I2a044d44ca991ba20ddd710053b85afb51e362d3
2014-07-30 15:53:07 +02:00
Oswald Buddenhagen
daa847afe3 make module-by-module build work when old builds are installed
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>
2014-07-30 10:32:12 +02:00
Joerg Bornemann
e612170b64 turn off multi-pass RCC for Visual Studio projects
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>
2014-07-29 15:34:57 +02:00
Thiago Macieira
1f0823cc27 Rewrite simd.prf to share more code
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>
2014-07-25 17:48:53 +02:00
Thiago Macieira
86ac3a98b5 Restore Neon "detection" in Qt
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>
2014-07-25 17:48:39 +02:00
Allan Sandfeld Jensen
01c82b945d Introduce qmake feature use_gold_linker
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>
2014-07-23 16:50:08 +02:00
Tor Arne Vestbø
b52b5fa082 iOS: Gracefully fail main()-renaming when link-time optimizations are enabled
We don't have a way to rename main() inside a LLVM bit-code file yet, so we
error out if we detect that LTO is enabled (which causes object files to be
written as LLVM bit-code), and inform the user about a workaround.

Task-number: QTBUG-40184
Change-Id: I89c927a3a7f075c65e54442c4f7e6bb25175b6f7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-07-23 13:46:44 +02:00
Thiago Macieira
1bd27f24fb Add link-time optimization support for Clang, GCC and ICC
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>
2014-07-23 11:12:02 +02:00
Fawzi Mohamed
a09ef38456 resoureces.prf: use small resources (though cpp file) for xcode
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>
2014-07-21 15:45:30 +02:00
Thiago Macieira
40d3ab564b Add support for CONFIG += c++14
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>
2014-07-20 04:32:44 +02:00
Thiago Macieira
4a99beb7ef "Beautify" the two-pass RCC execution
Use newlines in the Makefile for multiple commands.

Change-Id: If03617343ccf7e525ffdc27ad9df55718c63d77f
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-20 04:32:41 +02:00
Frederik Gladhorn
f035786021 Merge remote-tracking branch 'origin/5.3' into dev
Change-Id: Ia12ffdb27ecdf25c2a2bdb0eed1945387502108a
2014-07-10 10:11:11 +02:00
Eskil Abrahamsen Blomfeldt
df7ecb6802 Android: Fix compiling targets with space in name
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>
2014-07-08 08:35:49 +02:00
Thiago Macieira
9f0e5d00ab Enforce strict string literal behaviors with MSVC 2013
MSVC 2013 implements the behavior mandated by C++11 that removes the
ability to downconvert a string literal to a modifiable char*, but it's
not enabled by default. This option turns it on.

It's only enabled for release builds because the compiler page has a note
saying the Standard Library has bugs that prevent it from working in
debug mode. See http://msdn.microsoft.com/en-us/library/dn449508.aspx

Visual Studio "14" has this fixed.

[ChangeLog][Compiler Specific Changes] Release builds with Microsoft
Visual Studio 2013 now enable the standard-conforming C and C++ strict
string behavior. This option will be enabled in all builds with future
Visual Studio versions. Non-conforming code should be fixed for maximum
portability and correctness. See
http://msdn.microsoft.com/en-us/library/dn449508.aspx for more
information.

Change-Id: If5ba6cc8456209b268e047d1010710fe332b8312
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-07 03:52:47 +02:00
Frederik Gladhorn
14a80bd4df Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/dev 2014-07-04 18:46:06 +02:00
Frederik Gladhorn
39a290af6c Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
	src/gui/accessible/qaccessiblecache_mac.mm
	src/gui/accessible/qaccessiblecache_p.h
	src/plugins/platforms/cocoa/qcocoaaccessibilityelement.h
	src/plugins/platforms/cocoa/qcocoawindow.h
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/widgets/kernel/qwidget_qpa.cpp

Manually moved change in qwidget_qpa.cpp to qwidget.cpp
    (cd07830e3b)

Change-Id: Ia51f471f9b53de2f3b07d77ea89db9303ac8961d
2014-07-03 23:56:45 +02:00
Erik Verbruggen
3fd2f0b7d8 ARM: do not use the clang integrated assembler in some cases.
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>
2014-07-03 10:10:30 +02:00
Xu Feng
99d78b40e9 add support for device linux-arm-hisilicon-hix5hd2-g++
1. add qmake configuration for linux-arm-hisilicon-x5hd2-g++ using the
   arm-linux-gnueabihf-g++ crosscompiler
2. add eglfs platform hooks file: qeglfshooks_hix5hd2.cpp
3. support hisilicon platform hix5hd2

Change-Id: I22bdbe5785d1a6bc77715b8e8aa7caa22b62ddce
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-07-02 13:34:07 +02:00
Thiago Macieira
f6f7fb2348 Disable the new multipass RCC when doing LTCG/LTO
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>
2014-07-02 00:57:39 +02:00
Thiago Macieira
1f8d9d2423 Update the Win32 Intel Compiler mkspec
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>
2014-07-02 00:57:37 +02:00
Mathieu Gross
1bf95fbf60 [bcm97425] Fix parameter issue in platformDestroy hook
Change-Id: Ie137314a3a3d480d10d7fe2a8505ce7d5708faba
Reviewed-by: Julien Brianceau <jbriance@cisco.com>
Reviewed-by: Holger Freyther <holger+qt@freyther.de>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-07-01 16:58:31 +02:00
Frederik Gladhorn
a09a8d509a Merge remote-tracking branch 'origin/5.3' into dev
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 9ce697f2d5

Thanks goes to Sergio for the qnx mkspecs adjustments.

Change-Id: I53b1fd6bc5bc884e5ee2c2b84975f58171a1cb8e
2014-07-01 16:25:19 +02:00
hjk
bc19ab03b2 RCC: (Re-)introduce a way to build resources in one go
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>
2014-06-29 00:05:00 +02:00
Thiago Macieira
4c2953fbcd Disable C++11 support for ICC on OS X
ICC does support C++11, but the Apple headers contain invalid code that
Clang seems to accept. In C++11 mode, code using CF_ENUM expands to:

  typedef enum EnumName : CFIndex EnumName; enum EnumName {

Which is valid Objective C++, but not valid C++.

Bug reports to Intel and to Apple are pending.

Discussed-on: https://groups.google.com/a/isocpp.org/d/msg/std-discussion/yDfkDo6C0BM/EVWzwjVbyh4J
Change-Id: I7d501e94212a90f5c7197a3b56016dadac2c44ad
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-06-28 02:16:10 +02:00
Thiago Macieira
7638c0d783 Work around Intel Compiler 14 & 15 bug with paths starting with dot
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>
2014-06-27 08:28:07 +02:00
Thiago Macieira
032f0f543e Fix building of the C++11 config.test on Windows with ICL
The Intel compiler does support C++11 options on the command-line.
configure.exe will correctly try to run it, but the test would fail for
incorrect reasons.

First, we need to pass the option -Qstd=c++11 to enable it.

Second, on Windows, the GCC experimental define isn't defined, nor is
__cplusplus updated yet. So we have to rely on the Intel-specific macro.

Third, we need CONFIG += console so that the application succeeds in
linking against a main() function, as opposed to a WinMain one.

Change-Id: I8f3252189df4f8854a9d9aa2cd919c288d2df420
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-06-27 08:28:01 +02:00
Thiago Macieira
b3e6d18687 Update the macx-icc mkspec for ICC 15
The -xXXXX options are deprecated, so use the GCC-style -mXXX options.

Change-Id: I235c73c4a170003b5b5e20bd4c4c7125107f7f82
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-06-27 08:27:18 +02:00
Lisandro Damián Nicanor Pérez Meyer
19d49de6f1 Remove -Wcast-align from QMAKE_CXXFLAGS.
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>
2014-06-27 03:13:17 +02:00
Kai Koehne
b71ccf10fc Disable automatic use of pch for MinGW
Revert cb09e1e889 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>
2014-06-26 15:53:07 +02:00
Kai Koehne
dee557c8aa Delete qml_plugin_import.cpp file only during distclean
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>
2014-06-26 11:18:55 +02:00
Andrew Knight
1ae61e95e4 winrt: Remove WP8.0 references from package manifest feature
Also, harmonize the qmake documentation.

Change-Id: I8722370f86982e33ccf97f631ae257c4c46cade2
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
2014-06-25 16:33:55 +02:00
Stephen Kelly
3cd70c11bc CMake: Allow modules to specify the location of tests.
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>
2014-06-25 13:38:13 +02:00
Stephen Kelly
c2c90b95bf CMake: Report an error if unit tests are not found for a module.
Change-Id: Ic1540cfb04bf975a14bf2b35f4402bd36046de67
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-06-25 01:11:52 +02:00
Olivier Blin
242fbc33a3 Fix installation of private headers generated by wayland-scanner
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>
2014-06-23 10:40:21 +02:00
Stephen Kelly
fb3f7b3ede CMake: Load plugin files unconditionally if present.
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>
2014-06-22 12:55:34 +02:00
Holger Hans Peter Freyther
bb3bf326b5 qmake: Guard module depends with __cplusplus
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>
2014-06-20 21:54:46 +02:00
Oswald Buddenhagen
ad9ca60522 install .lib files for static libs again
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>
2014-06-16 12:42:25 +02:00
J-P Nurmi
d9a7ad80f7 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-06-07 00:40:44 +02:00
hjk
5395180fcb Make RCC handle bigger binaries
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>
2014-06-06 15:41:00 +02:00
Bernd Weimer
fce9c2dd26 QNX: Fix build for QNX 6.5
QNX 6.5 does not have readdir64_r, which is selected by current
qplatformdefs.h. There is only a reentrant version (readdir_r) which
does not support large files and a large file version (readdir64) which
is not reentrant. The reentrant version (readdir_r) will be chosen now.

In summary, the following versions will be used:
QNX 6.5:  readdir_r    (postfix '_r': reentrant version)
QNX 6.6: _readdir_r    (prefix  '_' : extra stat info included)
BB 10:   _readdir64_r  (infix   '64': large file support)

Change-Id: I00739f0e2054a32f52555309d03463a6c52e3d99
Reviewed-by: Wolfgang Bremer <wbremer@blackberry.com>
Reviewed-by: Samuli Piippo <samuli.piippo@digia.com>
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-06-05 23:24:47 +02:00
J-P Nurmi
0fcce50af0 Merge remote-tracking branch 'origin/stable' into dev
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
2014-06-05 22:26:44 +02:00
Oswald Buddenhagen
f9b61eca4e use the right env var in qmlplugindump call
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>
2014-06-05 17:11:55 +02:00
Oswald Buddenhagen
7a1e17a350 unbreak static qml imports again
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>
2014-06-05 17:11:53 +02:00
Oswald Buddenhagen
12bbd15e0f actually don't install qt dlls into lib/ any more
it helps enormously to use the flag correctly.

amends f0c34eb08f.

Change-Id: I04a63cc59e133169d9f6677f2f88ef98fd5c524c
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-06-05 17:11:49 +02:00
Oswald Buddenhagen
2e284a8d7e pass (some) index dirs also during -prepare phase
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>
2014-06-05 17:11:42 +02:00