Commit Graph

261 Commits

Author SHA1 Message Date
Maurice Kalinowski
99b08dd9d2 WinRT: Add qmake support for Windows 10
This allows creation of applications for
- x86
- x64
- arm

While the arm build theoretically also allows to launch on
a mobile, it currently asserts on runtime. Either we will
create a new mkspec for Windows 10 Mobile in the future,
or do runtime checks for the environment. That also depends
on whether there will be a separate SDK by Microsoft.

Change-Id: I510bfc88410a5b5a1eb7c37f7f43888d1e5dda0d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-05-26 11:09:41 +00:00
Maurice Kalinowski
b6634023fa WinRT: Disable exceptions when turned off
On desktop windows we define _HAS_EXCEPTIONS=0 to also forward this
option. Hence harmonize this with WinRT builds as well.

As a side-effect qtdeclarative now compiles without warnings on WinRT.

Change-Id: I8e343f172160991ffb2ede01303802f321de82b5
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-05-19 11:46:04 +00:00
Allan Sandfeld Jensen
1fce111809 Merge remote-tracking branch 'origin/5.4' into merge5.5
Conflicts:
	src/corelib/global/qglobal.h
	src/corelib/io/qnoncontiguousbytedevice_p.h
	src/gui/image/qjpeghandler.cpp
	src/network/access/qhttpthreaddelegate_p.h
	tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp
	tests/auto/widgets/widgets/qmenubar/BLACKLIST

Change-Id: I01de8c1c28efcedfd7953d05025f54802dc08ab3
2015-05-08 13:26:44 +02:00
Thiago Macieira
36d6eb721e Require -fPIC instead of just -fPIE for -reduce-relocations
GCC 5 combined with a recent binutils have a new optimization that
allows them to generate copy relocations even in -fPIE code. Clang has
the same functionality when compiling an executable with -flto. We need
to let the compilers know that they cannot use copy relocations, so they
need to use really position-independent code.

Position independent code throughout is not really required. We just
need the compilers to use position-independent access to symbols coming
from the Qt libraries, but there's currently no other way of doing that.

Task-number: QTBUG-45755
Change-Id: I0d4913955e3745b69672ffff13db5df7377398c5
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-05-07 19:42:43 +00:00
Oswald Buddenhagen
67a24c260b rpath: use new DTAGS if available
this allows LD_LIBRARY_PATH to take precedence over the hard-coded
rpath, which is the only sane thing to do (which is also why i'm not
adding an option to disable it).
this behavior is consistent with non-linux systems.

the windows version has no auto-detection, just like for gold linker
usage.

Task-number: QTBUG-3069
Change-Id: Ief9ba032291c898d75d76ecc740390954382a804
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-05-05 12:04:15 +00:00
Romain Pokrzywka
6c4b0e443f Move QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO definition to gcc-base.conf
The flags are the same across all GCC flavors so put the definition
in the common gcc-base.conf instead of duplicating it in g++-base.conf
and clang.conf

Change-Id: I1ba2c3c314d3a02b559c384aecef74240f69f659
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-30 20:19:14 +00:00
Allan Sandfeld Jensen
8299e408df Fix clang release with debuginfo builds
The variables used for release with debuginfo was set in g++-base.conf
which is not included by clang builds.

Change-Id: Iec3b23c371c113ff934d2c7f5134ef78b1cf939e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-01 13:07:13 +00:00
Debao Zhang
f624220b10 fix C4275 warnings for MSVC 2010 build
This issue had been fixed by SHA: a12a2fdf68
but re-introduced by SHA: c23d1c7695 again.

Task-number: QTBUG-45085
Change-Id: If98ee108335d80035179a83b1b28f384395d8373
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-03-28 02:34:06 +00:00
Samuli Piippo
a31823176a QNX: enable Neon support to be compiled in for QNX
Neon detection in configure does not work unless correct
flags are passed to compiler.

Task-number: QTBUG-44690
Change-Id: If119cc9ed80275aaa8796c1be8853559a7670d6a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2015-03-09 14:19:24 +00:00
Oswald Buddenhagen
95d385466d centralize setup of shell-related variables in spec_post.prf
it makes no sense to let every spec do that separately, as it's fixed
by the generator+shell.

putting it into a file which is loaded regardless of the spec also
allows us to remove the hardcoded fallbacks from qmake.

if somebody overrode the values in their spec for some weird reasons,
they'll need to override spec_post.prf.

shell-{unix,win32}.conf are now dummies and print warnings.

Task-number: QTBUG-37269
Change-Id: I66c24fb4072ce4d63fdbfc57618daa2a48fa1d80
Reviewed-by: Jochen Seemann <seemann.jochen@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-03-06 19:08:40 +00:00
Tor Arne Vestbø
38e64664a2 Add __APPLE_CC_ to QMAKE_COMPILER_DEFINES for moc.prf
Moc doesn't have the built in defines that clang has, so we need to
hard-code some of these so that moc resolves the Q_OS_IOS define
in the end, based on qsystemdetection.h and TargetConditionals.h

Change-Id: Id9a7f870b940f99f27c55a2a887d0ce93217b821
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-03-04 22:13:41 +00:00
Allan Sandfeld Jensen
b678445901 Fix leaking ISA extensions in LTCG builds
Due to common subexpression elimination instruction set extensions may
leak from the objects where they were enabled when doing link-time
optimizations.

To avoid that this patch disables LTCG/LTO on files built with extra
instruction set extensions.

Change-Id: Ie34ad900be7fb04a0dc4d3562187ee170c183333
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-03-04 16:45:05 +00:00
Kai Koehne
9ddfa43e02 MSVC: Remove use of -Zm argument
We've been setting the -Zm argument since the dawn of times (even before
the first git commit). Anyhow, MSDN from VS2008 onwards indicates
that this is not needed:

"In earlier versions of Visual C++, the compiler used several discrete
heaps, and each had a finite limit. Currently, the compiler dynamically
grows the heaps as necessary up to a total heap size limit, and requires a
fixed-size buffer only to construct precompiled headers. Consequently, the
/Zm compiler option is rarely necessary."

[ChangeLog][Compiler Specific Changes] Visual Studio: -Zm200 (an option to
specify the precompiled header memory allocation limit) is not added anymore
by qmake to the compiler calls. If you encounter an C1076 compiler error you
might need to re-add it in your .pro file.

Change-Id: Ia4bec7eba09d893a7d81886a1814602b9ce7563c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-02-13 21:23:19 +00:00
Allan Sandfeld Jensen
cc67960f8c Configure MSVC builds as C++11
QtWebEngine and QtWebKit uses the Qt config to detect if C++11
is enabled. Since it is always enabled on MSVC, we can safely
set the flag indicating it is a C++11 build when using a newer
MSVC version.

Change-Id: I2efb8d1a9b1cf1496481569403c00358d0cae365
Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-13 17:18:06 +00:00
Jani Heikkinen
83a5694dc2 Update copyright headers
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.

Outdated header.LGPL removed (use header.LGPL21 instead)

Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing
combination. New header.LGPL-COMM taken in the use file which were
using old header.LGPL3 (src/plugins/platforms/android/extract.cpp)

Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license
combination

Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe
Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
2015-02-11 06:49:51 +00:00
Simon Hausmann
112342b326 Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/dev 2015-01-21 11:14:34 +01:00
Frederik Gladhorn
b6191b16d4 Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/global/global.pri
	src/corelib/global/qcompilerdetection.h
	src/corelib/global/qglobal.h
	src/corelib/tools/qdatetime.cpp
	src/plugins/platforms/xcb/qxcbscreen.h
	src/plugins/platforms/xcb/qxcbwindow.h
	src/widgets/dialogs/qcolordialog.cpp
	src/widgets/dialogs/qcolordialog_p.h
	tools/configure/configureapp.cpp

Change-Id: Ie9d6e9df13e570da0a90a67745a0d05f46c532af
2015-01-21 11:10:14 +01:00
Kai Koehne
826d108410 WinRT: Disable compiler warning 4996 for debug builds
Move compiler warning 4996 from level 3 to 4, like we did already for
desktop builds: 0a76b6bc7f .

Change-Id: Ic4bbaeb3104352a915b15eec7a9c9dda9a5cceec
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2015-01-19 11:24:26 +01:00
Rafael Roquetto
a6a865e249 QNX: Rename qcc-base-qnx-armv7le.conf mkspec.
The "new" convention uses armle-v7 instead of armv7le.

Change-Id: Ica7016b7b0b4e374771ff423b7b0bfec4851ee95
Reviewed-by: Wolfgang Bremer <wolfgang@w-bremer.de>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-01-18 00:13:09 +01:00
Maurice Kalinowski
2a02a01709 WinRT: Refactor icon specification usage
Naming for different logo sizes on WinRT has been varying in the
past and evolved from using small/medium/large to some being
explicit (71x71).

Add new values introduced by 8.1 (310x150, 310x310,...) and clean up
mixed usage. Detailed pixel versions overrule general specification
and latter ones stay mostly for compatibility reasons. Still the
preferred way is to use explicit pixel values.

Task-number: QTBUG-43644
Change-Id: I9173ec2951a82e5eac9d8c9956bfb0bb4d1a2459
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-01-13 11:29:42 +01:00
Thiago Macieira
0f569f5900 Clean up ltcg.prf with variables, including a new static mode
By using the special "ar" and "ranlib" tools, the symbol table is made
visible, so we don't need fat LTO binaries. Since we need to store the
new tool names, we may as well clean up ltcg.prf with variable names for
the fat mode too.

Change-Id: I7e53af0c74a3d069313f38500b72538af1d61128
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-01-11 03:41:48 +01:00
Kai Koehne
0a76b6bc7f MSVC: Disable compiler warning 4996 for debug builds
Move compiler warning 4996 from level 3 to 4. This is needed to avoid
warnings about the use of C++ standard library functions like std::copy,
which is used e.g. in qvector.h (since c6752c5aa1):

'std::copy': Function call with parameters that may be unsafe -
this call relies on the caller to check that the passed values are
correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See
documentation on how to use Visual C++ 'Checked Iterators'

Because the warning has to be disabled before any standard C++ header
is included one cannot just fix this locally in qvector.h.

Change-Id: I929f1535656bca9f5beb7fd0d557178370c232c6
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-01-09 13:14:59 +01:00
Andy Shaw
bca693e0c1 Remove the -load_all option from the linker enabling static builds
With the -load_all option turned on then it will cause a problem with
the network bearer plugins as they share the same files and on OS X
two plugins will be built and potentially linked against when building
statically.

This only effects gcc builds because clang does not turn this option on
when linking by default either.

Task-number: QTBUG-39238
Change-Id: Ib259304c3da74b6b4f6fcc6e3766427303af3bbe
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-01-07 09:57:07 +01:00
Andrew Knight
affba56094 remove unsupported winrt mkspecs
These mkspecs are not supported and no longer compile. Related support in
qmake has also been removed.

Change-Id: I7706dcfa5471e55e2ae3d580d65e9371e2c652d5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2014-12-16 11:56:26 +01:00
Thiago Macieira
ce1c53b413 Add detection of and support for Visual Studio 2015
Tested with the Preview release of November 2014.

Differences to the 2013 detection and support:
 - Option -Zc:strictStrings is present in both debug and release mode
   and is passed to qmake's own build
 - New warnings 4456, 4457 and 4458 (shadowing) are disabled
 - Compiler supports -arch:AVX2

Change-Id: I9572ff4d4aded4004c1fa5d6f13ffee5462043d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-12-13 05:11:25 +01:00
Thiago Macieira
c23d1c7695 Create a common qmake configuration for all MSVC versions
Most files are exactly the same, so it's silly to duplicate this all
over. The differences could have been kept in each of the qmake.conf
files, but I preferred to centralize because they apply to each newer
version and, soon enough, version-specific configuration would grow
again.

Change-Id: I5c5ed58055c954acf4851d87c70cc5af49c98738
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-12-13 05:11:16 +01:00
Frederik Gladhorn
34aba4724f Merge remote-tracking branch 'origin/5.4' into dev
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
2014-11-24 13:39:13 +01:00
Oswald Buddenhagen
0d02a06517 Merge remote-tracking branch 'origin/5.4' into 5.4.0
Change-Id: I85e3dfa62f217b76447276dd7cce6b9eac3a144e
2014-11-10 11:45:49 +01:00
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
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
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
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
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
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
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
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
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
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
Andrew Knight
dd73975bee WinRT app manifest: update namespace prefix
If the prefix isn't "m2" for the 2013 namespace, Visual Studio Update 2
won't open the document in the designer view. Even though there is
nothing technically wrong with the way it's currently done, change it to
"m2" to keep VS happy.

Change-Id: I62721114610de5396eb507828b39db89c1e96b1a
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-05-22 11:16:45 +02:00
Andrew Knight
9d3b169bda Add build support for Windows Phone 8.1
Tweak qmake, add mkspecs for emulator and device, adjust the
manifest template for WP8.1, and add missing icons.

Change-Id: I7a6405fa85297ae4cc8522015274e65fb7a315a6
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-05-22 07:59:49 +02:00
Simon Hausmann
508b95899d Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Ia36e93771066d8abcf8123dbe2362c5c9d9260fc
2014-05-22 07:46:17 +02:00
Thiago Macieira
6315745770 Strip bootstrapped binaries of unused sections
This matches the -ffunction-sections from bootstrap.pro, which tells the
compiler to create a section for each function. The -gc-sections option
tells the linker to drop what wasn't used (normally, it only drops
entire files).

Before (on Linux, built with -O3, no LTO):
   text    data     bss     dec     hex filename
1746385    7920    3750 1758055  1ad367 bin/moc
1444101    6664    1894 1452659  162a73 bin/rcc
4407725    1568    4896 4414189  435aed bin/qmake

After:
   text    data     bss     dec     hex filename
1131655    6520    3494 1141669  116ba5 bin/moc
1027043    5480    1766 1034289   fc831 bin/rcc
3578489    1656    5313 3585458  36b5b2 bin/qmake

Gain: 35% on moc, 28% on rcc, 19% on qmake

Before (on OS X):
__TEXT	__DATA	__OBJC	others	dec	hex
1495040	12288	0	4294993008	4296500336	100176470	bin/moc
1265664	8192	0	4294983904	4296257760	10013b0e0	bin/rcc
5279744	81920	0	4297912320	4303273984	1007ec000	bin/qmake

After:
__TEXT	__DATA	__OBJC	others	dec	hex
806912	8192	0	4294988132	4295803236	1000cc164	bin/moc
720896	8192	0	4294979764	4295708852	1000b50b4	bin/rcc
4841472	77824	0	4295580688	4300499984	100546c10	bin/qmake

Gain: 46% on moc, 43% on rcc, 8% on qmake.

Change-Id: Icc7cdc9fd6f5db15537b4adabaac7e7a27e539d4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-05-19 19:33:15 +02:00
Thiago Macieira
199b2594ff Make the use of -ffunction-sections more generic in Qt
Move it from bootstrap.pro into qt_module.prf so it will apply to any
other bootstrapped libraries, like libQmlDevTools.

Variable called "SPLIT_SECTIONS" because -fdata-sections could be added
in the future, if it proves to be a benefit.

Change-Id: I3fbb004f111620a84e58e9112e9bce3afd95631e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-05-19 19:33:15 +02:00
Frederik Gladhorn
1326cd15f7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/qnx-x86-qcc/qplatformdefs.h
	src/corelib/global/qglobal.h
	src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
	src/opengl/qgl.cpp
	src/opengl/qglpixelbuffer.cpp
	src/opengl/qglshaderprogram.cpp
	tests/auto/opengl/qglthreads/tst_qglthreads.cpp

Change-Id: Iaba137884d3526a139000ca26fee02bb27b5cdb5
2014-05-06 16:50:03 +02:00
Oswald Buddenhagen
f73b9e4af8 make QMAKE_DIRLIST_SEP consistent with QMAKE_DIR_SEP
that is, make it match the shell used by the make command.

this is unlike DIRLIST_SEPARATOR and DIR_SEPARATOR, which always match
the actual system shell.

Change-Id: I0fb277d75b32be029808623a3b77e1358c4e265e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-30 16:57:01 +02:00
Andrew Knight
7c12cd0ebb Windows Phone: add language control to the package manifest
This allows the developer to provide a list of languages to the manifest
by listing them in WINRT_MANIFEST.languages. It also allows setting the
default language with WINRT_MANIFEST.default_language.

Task-number: QTBUG-38557
Change-Id: I5cb94c9f45146e3068d0833b9e669dc17dca14b2
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-04-30 08:48:15 +02:00
Frederik Gladhorn
98d3e40fb7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/qnx-armv7le-qcc/qplatformdefs.h
	src/printsupport/kernel/qcups.cpp
	src/widgets/styles/qstyle.h
	tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp

Change-Id: Ia41e13051169a6d4a8a1267548e7d47b859bb267
2014-04-11 14:36:55 +02:00
Oswald Buddenhagen
a4ec90175c purge vestiges of opengl es 1 support
amends 0d5170256c.

Change-Id: Ifa178d38f602bb7c66ef13334673ff47e332af5b
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-04 19:32:21 +02:00
Wolfgang Bremer
bc4590a780 BlackBerry,QNX: Switch to QMAKE_PLATFORM from CONFIG
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>
2014-04-03 14:19:15 +02:00
Frederik Gladhorn
3b5c0bc078 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/gui/image/qjpeghandler.cpp

Change-Id: I9db3acea7d5c82f5da679c8eaeb29431136665f0
2014-03-24 16:10:15 +01:00
Janne Anttila
e07684294d Fix WinRT manifest for Visual Studio.
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>
2014-03-20 08:35:24 +01:00
Sergio Ahumada
27016b89ae Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Idec54e19963e8d88c711cb179cffc81596323899
2014-03-13 15:57:11 +01:00
Allan Sandfeld Jensen
cd652500af Add optimize_full qmake config option
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>
2014-03-06 12:21:14 +01:00
Simon Hausmann
846cc4c75c Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/network/access/qhttpthreaddelegate.cpp

Change-Id: Ia15372687c93cd585967b006c0baaac3a5f29e91
2014-02-28 13:14:15 +01:00
Bernd Weimer
946d6bc329 QNX: Unified qplatformdefs
ARM and x86 platform defines are identical, so they can be kept in a
common file.

Change-Id: I6f79cadb2e5ce265e4a5a7a0806379dc8793e539
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Wolfgang Bremer <wbremer@blackberry.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-02-27 10:35:41 +01:00
Andrew Knight
2d22e73775 WinRT package_manifest: Remove comment about manifest overwrite
This comment is wrong and should be removed. The manifest is always
generated.

Change-Id: I281737dd6a358380fb557063eadae88909f5078b
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-02-20 12:04:32 +01:00
Frederik Gladhorn
a1fe728fa5 Merge remote-tracking branch 'origin/stable' into dev
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
2014-02-07 13:07:25 +01:00
Andrew Knight
f125822ee6 WinRT: Provide qmake feature for generating a package manifest
This feature (package_manifest) generates a basic application manifest
from a template provided by the mkspec or the developer. It is meant to
deliver an out-of-the-box build experience without attempting to
exhaustively cover all manifest options. It is meant to be a starting
point which allows the developer to customize the manifest further. It
also becomes the default package manifest generator for Windows Phone,
replacing autogen_wmappmanifest.

Common variables, such as the target executable, are populated by qmake
in the newly created manifest. Default icons are also created if needed,
as the build will fail without them. The input manifest can be set by
assigning a file name to WINRT_MANIFEST. Additional options are
documented in the .prf file. If an existing (non-generated) manifest is
already in the directory, it will not be overwritten.

Task-number: QTBUG-35328

Change-Id: I57576a17ff9d2b564c0828f815949cb26d276bfd
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-01-24 08:19:00 +01:00
Erik Verbruggen
3277233c2f Do not limit clang generated debug info to dwarf-2 on mac.
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>
2014-01-21 15:18:24 +01:00
Thiago Macieira
0b144bc76a Add support for using -isystem in qmake
This commit will make qmake use -isystem automatically for any
compilers that declare support for it for any paths that are listed in
QMAKE_DEFAULT_INCDIRS.

Change-Id: I36fefc6d5bba61671f65669f0ea42704b3c3cf31
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-20 02:42:31 +01:00
Oswald Buddenhagen
882bf3475c expand tabs and related whitespace fixes in *.{cpp,h,qdoc}
the diff -w for this commit is empty.

Started-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: I77bb84e71c63ce75e0709e5b94bee18e3ce6ab9e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-13 22:46:50 +01:00
Maurice Kalinowski
3227929d21 Change entry point for WinRT apps to WinMain
Using wmain causes the problem that the linker seems to create some code
around it, which calls ExitProcess. That function however is forbidden by
the Windows Store Certification process and hence you cannot publish an
application currently. This does not apply to Windows Phone, which links
in such a way that this problem does not occur there.

With WinMain as the entry point this does not happen and also is the
default entry point. Testing locally shows that certification goes fine.
Since it does not pass the full command line string, the C-runtime method
__getmainargs is used instead. This also gives access to any environment
strings which may be passed.

Note that MSDN states that this function should only be used for desktop
applications. For XAML/C++ scenarios there is no entry function at all,
but rather the App object gets instantiated in the default template. But
this only works for XAML itself and not for plain C++ applications,
probably some other entry wrapper is created on the fly here.

Done-with: Andrew Knight <andrew.knight@digia.com>
Change-Id: I8a118eddf6cfeddeca7d676267e979af17123e02
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-01-06 12:44:01 +01:00
Maurice Kalinowski
e35c2c57cf apply WinRT store certification linker flags
Those flags are required to pass the Windows Store App Certification
process. Otherwise apps are not allowed to be published.

The SAFESEH option is only required for x86.

According to documentation APPCONTAINER only talks about the
executable, but when running through the certification, the Qt modules
are reported to be errornous as well.

Change-Id: I5450687dcd5bc537149e331332e253c4617df55d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2013-12-20 11:23:14 +01:00
Frederik Gladhorn
f6dbdd9c16 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/sql/drivers/sqlite/qsql_sqlite.cpp

Change-Id: Ia7cffd2c99ae3d5eea6b5740683c06e921336dcd
2013-12-05 18:52:38 +01:00
Oswald Buddenhagen
c31ab2139a disable incremental linking for release_with_debug_info builds
it's very unlikely that these artifacts will need rebuilding during a
debugging session (these pdbs are meant to support crash dump analysis).

Change-Id: Ia8138f9298355b402d8dd3f042f85b669693de64
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-12-03 09:14:41 +01:00
Maurice Kalinowski
88609e6da4 Make console a no-op for WinRT
Compared to other platforms there is no concept of a console
application in WinRT. Hence all applications need to be UI
applications and use winmain.
Furthermore winmain takes care of launch arguments to be
properly converted to arguments passed to user's main().

There is a chicken and egg problem with config.tests as
compilation needs to have an existing entry point which is not
available at configure time.
Hence hardcode the entry point to main for configuring to WinRT.
Those tests are pure compile tests, so the logic of the test
does not change.

Change-Id: I4d3186691a8440845c24b2529cc9646e86dfd8da
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-11-14 18:53:48 +01:00
Andrew Knight
fac56f3866 WinRT: Remove Windows metadata flags from common mkspec
Winmd is not used, so there is no reason to embed it.

Change-Id: I0820256aecd9c3c71b0b0c8afa53941b03f97363
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2013-11-04 11:16:41 +01:00
Oliver Wolff
2ced0cb08d Clean up common winrt/winphone mkspec
Change-Id: I010bf977e01fab2f39184bbe730ec70128cc2982
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-25 09:19:01 +02:00
Oliver Wolff
c241e4aa49 WinRT: Added msvc2013 mkspecs
Change-Id: I052f6ba19056e7c0df6d7ea5548eb4dac4db125e
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2013-10-25 09:00:35 +02:00
Frederik Gladhorn
840f6a40e6 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Ie56539b2e0be611a363b5f15ae5412a78d6945a2
2013-10-24 12:48:42 +02:00
Oswald Buddenhagen
40d4c1b2ed make sure that installed meta files are always postprocessed
the problem is that there is no sed command on windows ... so build it
into qmake and invoke that from the generated makefiles. cmake does the
same, after all. ^^

Task-number: QTBUG-33794
Change-Id: Ib7077e18acbc5edd79f714c5779a5ed31ea6c093
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-11 21:04:04 +02:00
Andrew Knight
fc0f784e54 Windows RT and Windows Phone QPA
Change-Id: I6ab8af31f73439172e43fb709831821482b1cc99
Done-with: Kamil Trzcinski
Done-with: Oliver Wolff
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-10-02 12:36:13 +02:00
Oliver Wolff
c097670bf8 WinRT: Added missing WIN32 define to qmake.conf
Without that define here moc cannot handle qsystemdetection
properly. While having to touch the mkspecs I also removed
the no longer needed WINRT define.

Change-Id: I0609bd173c7bc14ccdd862afc777d7793dda02b8
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2013-10-02 12:36:03 +02:00
Oliver Wolff
f89d30aa34 WinRT: Introduced qfunctions_winrt
Using the same approach as, wince qfunctions_winrt
is introduced to replace functions not available
on Windows Runtime by their successor functions/
equivalents.

Additionally this functionality is used for implementing
a fake environment because WinRT does not support
getting/setting of environment variables. The approach
here is also the same that is used for wince.

Change-Id: Ifc3b6b796ab8e8ea41456f4c929f9c3f65f24a0e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-26 17:26:58 +02:00
Oliver Wolff
81dea57593 add WinRT event dispatcher
Change-Id: I40b3f896b89b99e271e1a5ca625a5193f4a7f59e
Done-with: Kamil Trzcinski
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-26 17:26:53 +02:00
Andrew Knight
f6e6dde369 winmain for winrt
WinRT passes the executable and Appx server info to the CRT main, and
supports several additional activation arguments as well. This handles the
arguments passed to main as well as the case where a modern app is
launched from an external application (e.g. Qt Creator).


Task-number: QTBUG-30198
Change-Id: Ia843e98c7843d5705f5f6d1c809de0b6bcdb5d26
Done-with: Kamil Trzcinski
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2013-09-14 15:42:24 +02:00
Oliver Wolff
6afbb46264 build system support for WinRT
Done-With: Andrew Knight
Done-With: Oswald Buddenhagen

Change-Id: Ief4e921072a03229bb342480a85024a1fc09fa56
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-14 09:51:14 +02:00
Sergio Ahumada
1866c13b7d Merge "Merge branch 'stable' into dev" into refs/staging/dev 2013-07-12 14:03:21 +02:00
Jake Petroules
5b648d4d79 Add osx and darwin scopes to qmake.
This gives us better consistency across the Qt ecosystem.

Change-Id: Ie12ebb6e8c826ed2e0445eb37de0b79595da41c2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-11 18:26:45 +02:00
Sergio Ahumada
3ef6cf060e Merge branch 'stable' into dev
Conflicts:
	qmake/generators/mac/pbuilder_pbx.cpp
	src/corelib/json/qjsonwriter.cpp
	src/corelib/kernel/qeventdispatcher_blackberry.cpp
	src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm

Change-Id: I24df576c4cbd18fa51b03122f71e32bb83b9028f
2013-07-11 16:42:01 +02:00
Jake Petroules
cf10131d44 Refer to Apple products by their actual names.
This is a comment-only change.

Change-Id: I2432b1135ef21d781c9486df06699710f2696ee3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-07-10 17:32:48 +02:00
Frederik Gladhorn
572200989b Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	configure
	mkspecs/features/create_cmake.prf

Change-Id: I94aea83b83833395d5db399209e0e51b92ef23b5
2013-06-27 13:06:38 +02:00
Tor Arne Vestbø
47ab2edd01 Make the macx-xcode spec a wrapper around the default spec
... except for MAKEFILE_GENERATOR = XCODE. This means the spec no longer
hard-codes g++, and will work regardless of whether the default spec was
clang or g++.

This require us to set QMAKE_XCODE_GCC_VERSION properly for GCC, so that
additional compilation flags passed by Xcode will match the actual
compiler used.

Task-number: QTBUG-31713
Change-Id: If65140a7471cd16f483036742f1d5b86d0485c52
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-06-24 18:22:34 +02:00
Frederik Gladhorn
e2776b44a0 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/platforms/cocoa/qcocoamenubar.mm

Change-Id: I4a699fc8a7f30b2af9de8e496c3d5f027b7495bb
2013-06-12 19:17:07 +02:00
Thiago Macieira
bea3ae7669 Add QMAKE_NM to the mkspecs
We'll use nm to get the listing of symbols in the next commit.

The -P option is "portable", which sounds like a good idea. I don't
have access to any of the commercial Unix systems, but I do remember
them printing a different format than GNU binutils's nm.

Change-Id: If6f80624bedaf2b1dabf608e16aa097d9910d739
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-06-10 16:46:06 +02:00
Frederik Gladhorn
d3a8bc803c Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/io/qdatastream.cpp
	src/corelib/io/qdatastream.h
	src/corelib/json/qjsonwriter.cpp
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/xcb/qxcbkeyboard.cpp

Change-Id: I46fef1455f5a9f2ce1ec394a3c65881093c51b62
2013-05-23 21:27:07 +02:00
Tor Arne Vestbø
1308aa25fb Cache Xcode and SDK settings in .qmake.cache if it exists
The Xcode and SDK settings are expensive to resolve, as we're using
system() calls to resolve them. We now try to detect the presence of
a .qmake.cache file (and inform the user that creating one would be
a good idea), and use the file to cache the various settings after
resolving them.

The Xcode logic had to be moved form xcode.conf as part of the mkspec,
into default_pre/post.prf, so that we could cache() the resolved values.

Task-number: QTBUG-30586
Change-Id: Ib5368cfee6f7e4a4a33f6be70d0e20d96896fe56
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-08 14:07:41 +02:00
Frederik Gladhorn
4c231d5df3 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I059725e3b7d7ffd5a16a0931e6c17200917172b5
2013-04-22 16:35:43 +02:00
Bjoern Breitmeyer
59f1152ec7 added QMAKE_EXTENSION_STATICLIB to wince mkspec
Qmake requires the information which extension is
used for static libs on a platform. As the ci for
windows ce is pretty new, this was not noticed before.

Change-Id: I45b0c9c59980cd352371c00aa59502e5a394e337
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
2013-04-15 15:32:40 +02:00
Sergio Ahumada
90297a64f2 Merge branch 'stable' into dev
Change-Id: Icff019d74ae04c628a80f66aa478e4db40fae464
2013-04-10 15:42:22 +02:00
Tor Arne Vestbø
537a4bc401 Don't duplicate SIMD QMAKE_CFLAGS for Clang
The correct CFLAGS are already present in gcc-base.conf, which is
used as a basis for g++, LLVM, and Clang.

Change-Id: Ic19e28edc55e109ecfe372826b295b817afcd36e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-10 11:47:05 +02:00
Tor Arne Vestbø
f73a7ca46c Verify Xcode installation more thoroughly before relying on it
We depend on Xcode for building Qt itself and user application on Mac OS.
The user may have an Xcode install that is not set up properly, in which
case we would fail compilation in mysterious ways. Instead we try to
detect misconfigured or missing Xcode installs as early as possible.

We try to detect if an Xcode install has not been chosen yet, and
if the user has not accepted the Xcode license agreement. We need to
do these checks both in configure, as early as possible, and in mkspecs
on Mac OS, as we need to error out if the user tries to build an app
with the Qt SDK, but with a broken Xcode install.

Change-Id: I4e3a11077a61dc5d4ee2c686d01044a9bb2c1c79
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-09 10:03:26 +02:00
Tor Arne Vestbø
4f002f3256 Use absolute paths for Xcode helpers such as xcodebuild/xcrun/xcode-select
We always use the xcodebuild/xcrun/xcode-select binaries in /usr/bin,
as these will dispatch to the right binary based on what Xcode version
has been chosen using xcode-select -switch. This fixes an issue where
a tool was in the path from another Xcode installation. We can rely on
the tools as they are present on a clean Mac OS install.

Change-Id: I1d3cc1e92604f9be6d6f14639cb6322234edd696
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-09 10:03:20 +02:00
Tor Arne Vestbø
3d0a60aaa4 Enable C++11 on OSX when using Clang
This means we have to bump the deployment target to Lion (10.7), as the
LLVM 'libc++' C++ standard library does not support Snow Leopard (10.6).

For iOS the deployment target has to be bumped from 4.3 to 5.0, but we
don't enable C++11 by default yet as it's not tested enough on iOS.

Users who wish to deploy to 10.6 need to build their own Qt,
passing -no-c++11 to configure.

Change-Id: I7b5d20ab002db889d1091a4b7ff600f62caa7f06
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-05 14:23:23 +02:00
Frederik Gladhorn
814f713f01 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Id96d4076610366a7cc66c8d8382ca25c33eaa71d
2013-04-03 14:40:26 +02:00
Ray Donnelly
ff58c27347 Android on Windows: Add 2 missing qmake variables.
In order to build Android Qt on Windows via
cmd.exe using the unix makefile generator,
mkspecs/common/shell-win32.conf needs
QMAKE_SYMBOLIC_LINK and QMAKE_LN_SHLIB

Change-Id: I1b3eded66cec06ab131f127c1d46b99124613561
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-03 00:37:48 +02:00
Tor Arne Vestbø
d817da8797 iOS: Specify framework dependencies in the right place
Instead of unconditionally linking to Foundation, UIKit, and QuartzCore,
we leave the dependencies for the iOS platform plugin, where the libs
are actually used.

Change-Id: Ie8cfad2c8230d1f1af6933b831e443fecb0c93f1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-03-31 23:46:37 +02:00
Axel Waggershauser
5fcf441392 Fix '=' alignment and replace tabs in *.conf (whitespace only change)
Replace all tabs with proper space characters and consistently align
the '=' characters. The default alignment for the '=' of 25 characters
has been left as is to get a minimal diff. Lines with the '=' further
to the right and those belonging to 'proper code (TM)' have not been
touched.

The work was mostly done using the following python script (might
come in handy again...):

import sys, re
indent_eq = 25 + 0*4 # 25 characters was the most widely used indentation for the '=' character
p = re.compile(r'(\w+)[ \t]*([\-\+]?)(=$|= )[ \t]*(.*$)')

for fn in sys.argv[1:]:
    with open(fn, 'r+') as f:
        lines = []
        nl_count = 0
        continuity_indent = None
        for l in f:
            m = p.match(l)
            nl = l
            if m:
                n_spaces = max(m.start(3), indent_eq - 1) - len(m.group(2)) - len(m.group(1))
                if m.group(2) and m.start(2) >= indent_eq-1 and m.start(2) % 4 == 0:
                    n_spaces -= 1 # left-shift '+=' by one if the '+' is aligned to a multiple of 4
                n_spaces = max(1, n_spaces) # we want at least one space before '='/'+='
                nl = m.group(1) + ' '*n_spaces + ''.join(m.group(2,3,4)) + '\n'
                continuity_indent = nl.find('= ') + 2 if l[-2] == '\\' else None # remember indent on '\\$'
            elif continuity_indent:
                nl = ' '*continuity_indent + l.lstrip()
                if l[-2] != '\\': # check when to stop the continuation
                    continuity_indent = None
            elif l.startswith('#'):
                nl = l.expandtabs(2)
            if l != nl:
                nl_count += 1
            lines.append(nl)
        if nl_count > 0:
            print fn, nl_count, len(lines)
            f.seek(0)
            f.writelines(lines)
            f.truncate()

Change-Id: I1d2870d0a2fe2e30d398c140fe523e69dd20c81b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-27 17:16:37 +01:00