Commit Graph

576 Commits

Author SHA1 Message Date
Andy Nichols
d86f045082 iOS: Do not skip building QtMultimedia
QtMultimedia is supported in Qt 5.2 and should be built by default, so
it has been removed from the module "skip list"

Task-number: QTBUG-35039
Change-Id: Id43f997251bf392b7f6c0166ee06b7364ce30b8e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-11-25 15:09:36 +01:00
Oswald Buddenhagen
63606d6a39 simplify setting XPLATFORM_MINGW
no need for a separate case block.

Change-Id: I8e9f460bc28ea29ff688fde0d777b168440196e1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-25 14:28:17 +01:00
Oswald Buddenhagen
dac5fbaa2d move android variable initialization to a sane place
it's beyond me how it landed in the middle of the sql driver detection.

Change-Id: I7d1302e3440b8828a291e3009e9b130a2fdf165f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-25 14:28:14 +01:00
Andreas Holzammer
ca2440e2b1 Add PPS configure check
Plain QNX 6.5.0 does not have a libpps, the new QNX
has a libpps and BlackBerry has it as well. So we need
a configure check to not open another mkspec for this
platform. This fixes the plain QNX 6.5.0 build.

Change-Id: Id4b3876f2385bcb5f3df426945532e7e26133f24
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-11-23 15:45:35 +01:00
Frederik Gladhorn
ff4ad44b69 Merge remote-tracking branch 'origin/release' into stable
Conflicts:
	configure

Change-Id: I0d31f23483ea67c4cac5af16014366e1ba5ac093
2013-11-20 17:16:59 +01:00
Oswald Buddenhagen
02556c0dc5 clean up mess surrounding PLATFORM_MAC
introduce XPLATFORM_MAC which is properly initialized from the spec
instead of from the host.

use that and BUILD_ON_MAC where appropriate.

minor bug: during command line arg validation we use BUILD_ON_MAC even
when XPLATFORM_MAC would be in order, because the latter is not
available at that point yet. the solution would be delaying the
validation, but that doesn't seem worth the effort now.

Task-number: QTBUG-33896
Change-Id: I63f361212961bfdd82efde2ca71a1f48904a85fb
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-20 12:40:06 +01:00
Oswald Buddenhagen
f0524cedda consolidate all license checking in the earliest place possible
... which is right after performing the platform detection, as proper
license checking needs to know the target platform.

we can do that now, as we moved all more expensive or side effect laden
processing to a later point.

as a side effect, we also get rid of the weird early cmdline parsing.

Change-Id: I0fda0a15a1ea2082603f7097e89aa422853f30fa
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-20 12:40:06 +01:00
Oswald Buddenhagen
a6b9729d1c don't initialize build dir earlier than necessary
this way, platform detection (and later license checking) become
(mostly) read-only operations.

Change-Id: I4c5ffcf80feadfeee2c6e927cf0285f46fa6ea43
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-20 12:40:06 +01:00
Oswald Buddenhagen
078ad536c8 print help right after parsing command line
is the only sane thing, and now that there are no dependencies on
anything else any more (in particular anything slow or side effect
laden), we can actually do it.

this removes some nasty OPT_HELP checks spread throughout the code, thus
further reducing data dependencies.

Change-Id: Ib0a00e1514e2aa25ec3b527ba9f5719e3214640b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-20 12:40:06 +01:00
Frederik Gladhorn
c83c08d84f Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-11-20 12:18:23 +01:00
Oswald Buddenhagen
558b0a24d6 make help independent from options and environment
the help would echo the defaults adjusted by command line overrides and
environment variables for some options. this was entirely pointless.
it also printed the result of the os detection, which was mostly
useless.

but the primary reason for doing this is reducing data dependencies,
so the code can be moved up.

not touching the windows configure, as it's a lot harder and currently
that behavior isn't in the way of what i need to do.

Change-Id: Ide62119091c8494fb3bea2b607f140268f057919
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-20 08:04:12 +01:00
Oswald Buddenhagen
925899dcd6 do CONFIG+=silent after configure tests
it's counterproductive to do it earlier: it's passed down to configure
tests, which then log less info than they could.

but primarily, this serves the purpose of minimizing the amount of code
executed before platform detection.

Change-Id: Iff19b8555de19d048ea6d9341af965871b314c54
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-20 08:04:07 +01:00
Oswald Buddenhagen
862fbd98cd move some option validations to more relevant places
minimizing the amount of code executed before platform detection.

Change-Id: Ib2c0d97ce5040ced8c4c41d74f428fe7d0f75664
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-20 08:04:04 +01:00
Oswald Buddenhagen
d1990a7132 don't automatically display help on error
it's entirely pointless to flood the user with information and force him
to scroll back when he most likely just made a typo.

apart from that, this reduces the data dependencies, thus easing further
refactoring.

Change-Id: I7b24274d453de54a4f02481a66d77e27d4ab0657
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-20 08:03:59 +01:00
Oswald Buddenhagen
c9692fbd6e remove hacks to support solaris 2.[56] and aix < 5
moving dead code out of the way of further refactoring.

Change-Id: If558406cdf13d61478634dd7eff644dc67b0e53d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-20 08:03:51 +01:00
Oswald Buddenhagen
7faf1a73ef initialize WHICH, AWK, PERL and MAKE a bit earlier
have this option independent code out of the way before starting option
processing.

Change-Id: I5a08caeb25689b155c256ef82505c000112f5039
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-20 08:03:45 +01:00
Jorgen Lind
20272ad6e5 Fix configure script to not dictate OpenGL ES 2 when EGL is enabled
Change-Id: I4d940ef436f21fd915f3d03558fd4fb4c7b3e5b7
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-19 10:14:39 +01:00
Tor Arne Vestbø
08d7bacacc configure: Document that -sdk only applies to the target mkspec
Change-Id: Ie4a9e7c9d2888f92aa891ba8fcc034ea49b22de2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-11-14 19:26:20 +01:00
Stephen Kelly
d35c8fe521 CMake: Add the qreal typedef type to the Qt5::Core target.
This way, a Qt compiled with qreal=float and one linked
with qreal=double can not be linked by a single downstream. That is
diagnosed at cmake-time.

Change-Id: I9183dbcfef181fadea5321d3154948e8258e4a2a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-11-04 16:25:39 +01:00
Lars Knoll
d8bf317546 make qreal double by default on all platforms
On modern ARM CPUs there is no speed difference between
float and double anymore, so let's rather use double for
qreal to avoid rounding and precision issues. Like this
we also get much better compatibility with our desktop
OSes.

This is not binary compatible on ARM, but the old behavior
can be restored by passing -qreal float to configure.

Change-Id: I2a4b61e19a3dfa6b0bd76734cecf2634c97207fc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-10-31 22:01:40 +01:00
Oswald Buddenhagen
3b6b615334 export QT_NO_<foo> equivalents to the build system
this makes it possible to properly exclude entire subprojects based on the
availability of features, rather than stuffing every single source file
with #ifdefs.

the defines are aggregated from the -qconfig <profile>,
-no-feature-<foo> and some other configure flags.

usage:

load(qfeatures)
!contains(QT_DISABLED_FEATURES, textarea): SUBDIRS += textstuff

Task-number: QTBUG-28102
Change-Id: I83400632d64312fa4b907e1318dddfe27c432387
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Tasuku Suzuki <stasuku@gmail.com>
2013-10-31 19:49:15 +01:00
Oswald Buddenhagen
67c9b5ad9f fix filtering of system paths
the path filtering functions assume that DEFAULT_{INC,LIB}DIRS are
newline separated lists of unquoted strings, which 8fbf959be broke.

Task-number: QTBUG-33714
Change-Id: Ie07909963ac5155a8ac79ca9254f34069925e001
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-10-31 12:33:55 +01:00
Oswald Buddenhagen
54c8c7a96a duplicate less work while handling -qconfig
Change-Id: I8ba6b866f98c9fe7609af71c168023097e32828c
Reviewed-by: Tasuku Suzuki <stasuku@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-10-30 23:26:58 +01:00
Tor Arne Vestbø
e7bda8ee10 iOS: Build libs (including Qt itself) for both simulator and device
Conceptually a Qt for iOS SDK or source build should support building
for both simulator and device, based on the same qmake binary and Qt
libraries. Qt Creator or Xcode should then be able to use the same Qt
version while still building for a single target at a time. This
applies to user libraries as well, which shouldn't require switching
to a different Qt when changing target platform from simulator to
device.

We achieve this by using Qt's exclusive_build feature, where we build
for the two targets in parallel, and then teach Xcode how to choose
the right library dynamically at build time.

Change-Id: I06d60e120d986085fb8686ced98f22f7047c4f23
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-10-30 13:09:47 +01:00
Oswald Buddenhagen
d7a0d243a9 validate qconfig-*.h against qfeatures.txt
Change-Id: I59b7e30cfaa2b1bf2c5d4a3e04b5169f3c9439b5
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-29 15:38:06 +01:00
Tor Arne Vestbø
c760d2dbfd Rewrite qmake's exclusive-build feature
We used to compute the default exclusive build directory, eg 'debug', at
configure time, and then set OBJECTS_DIR, MOC_DIR, etc to include this
hard-coded default exclusive build directory. We then had to run a post-
process step where we replaced the 'debug' part with the current actual
exclusive build pass, eg 'release', resulting in long-standing bugs such
as QTBUG-491 where we end up replacing parts of the build output dirs
that were not part of the original exclusive build directory.

We now set the OBJECTS_DIR, MOC_DIR, etc defaults in configure like
before, but they do not include any exclusive-build information. The
exclusive build directory is handled as a separate step in default_post
where we adjust all entries in QMAKE_DIR_REPLACE to be exclusive
directories.

For backwards compatibility the new exclusive build behavior is only
enabled for variables named by QMAKE_DIR_REPLACE_SANE, which for Qt
itself applies globally to everything but DESTDIR, and for libs and
tools also applies to DESTDIR. The reason for leaving out DESTDIR in
the general case is because many tests and examples assume the old
behavior for DESTDIR. A side effect of including all the other
variables for Qt libs and tools is that the PCH output dir will be
uniformly set, which has been an issue on Windows in the past.

The addExclusiveBuilds function now takes two or more arguments,
each argument being the key for an exclusive build, which can be
customized eg. using $$key.{name,target,dir_affix}. Passing more
than two arguments results in three/four/etc-way exclusive builds,
eg debug/release/profile. Exclusive builds can also be combined, eg
static/shared + debug/release by making two calls to the function.

We also handle individual targets of combined exclusive builds,
eg static/shared + debug/release, meaning it is possible to run
'make debug' to build both static-debug and shared-debug.

Task-number: QTBUG-491
Change-Id: I02841dbbd065ac07d413dfb45cfcfe4c013674ac
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-25 20:50:51 +02:00
Roger Maclean
10014e0831 Add configuration for building with imf support on QNX
Avoid need to modify qnx.pro in src/plugins/platforms/qnx to
build with imf support.  By default detects if necessary headers
and libraries are available.  Can also be explicitly requested or
disabled with -imf and -no-imf options.

Change-Id: I3f9780fc189a33e4c93fb4f950111121f8e947c3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-25 20:17:40 +02:00
Kai Koehne
39cffc4e34 Remove superfluous 'libudev ...' line
Status for LIBUDEV printed again in the configure output under 'udev ....'

Change-Id: I3e0beca4c6de315dc2dfbdc24d83f4d9cd2b8856
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-25 14:51:30 +02:00
Robin Burchell
e25a4faf4a Remove gstreamer configure test.
Nothing in qtbase uses gstreamer, so this is just a red herring.

Change-Id: I93fb20a70928d84fed8f33ca4c5df38779928f1a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-24 20:20:59 +02:00
Oswald Buddenhagen
c7d34a6cd0 more escaping of slashes in awk regexp
apparently some awks need the regexp delimiters to be escaped even
within a character list.

Change-Id: I74a77022e134cafa269960c5c88a9a88589f1b95
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-10-18 18:01:54 +02:00
Oswald Buddenhagen
15188f2599 de-duplicate QMAKE_DEFAULT_LIBDIRS after all
but this time without reshuffling it. it's actually easy with awk.

this makes the resulting qconfig.pri cleaner (and thus easier to debug).
and configure needs a few millisecs less to finish. ^^

QMAKE_DEFAULT_INCDIRS doesn't appear to contain dupes to start with.

Change-Id: I9eed2cf853cd15d0d24a885b1c3d69f22ffafb36
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-10-16 17:10:15 +02:00
Oswald Buddenhagen
c026405093 normalize QMAKE_DEFAULT_{LIB,INC}DIRS
the consumers of these variables use the strings for naive text-based
"subtraction", which of course doesn't work particularly well when the
paths contain "../", "./", and trailing slashes.

Task-number: QTBUG-33714
Change-Id: I893c90e6f5c7cf18c9e6cb1e5be825a16509a2a4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-16 17:10:15 +02:00
Oswald Buddenhagen
5d4eda7833 use pkg-config supplied CFLAGS when building with EGL
e.g., -DEGL_API_FB=1 is required for freescale's gpu-viv-bin-imx6 fb
driver.

Initial-patch-by: Fatih Aşıcı <fatih.asici@gmail.com>
Change-Id: I8c8cd60591605e0bc33fcf9de3bfb6ea0d86a570
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-10-16 17:10:15 +02:00
Thiago Macieira
74f2a1bd47 Fix the printing of qmake's output when OPT_VERBOSE=yes
Don't discard stdout, it might contain important information. For
example, if qmake crashes, the segfault or similar notification comes
to stdout.

Change-Id: I53def75f37f134544922cf01b4f2ba7c903351cb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-15 23:58:15 +02:00
Mark Brand
407ac121b9 configure: gif driver is always bundled code, so say so
Change-Id: Ibd228cc63b1f4feb6364e052daa239be14253ec0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-10-15 12:16:26 +02:00
Fatih Aşıcı
4723f3fd04 configure: Parse -device-option value correctly
The regular expression does not parse correctly when a device option value
contains the character '=' (e.g. QMAKE_CFLAGS="-D_FILE_OFFSET_BITS=64").

In order to break string at the first equal sign and to simplify code,
use "cut" command as in other places in configure script.

Task-number: QTBUG-33584
Change-Id: I05b474d2ba6bff84c1e40d00475963bab36d94b6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-11 21:03:18 +02:00
Tor Arne Vestbø
f9889534d1 Remove last traces of CoreServices/QT_NO_CORESERVICES on Mac
Change-Id: Ia603e717f3b37dc982468eb2b7eb781d7529ccb0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-10-11 18:49:25 +02:00
Sergio Ahumada
65855d9d68 iOS: Skip qtmacextras module
This module doesn't make much sense for iOS.

Change-Id: Iadcf3006e1e2bdd97c460e836e91717856cb118c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2013-10-11 18:47:27 +02:00
Sergio Ahumada
51c04e292e iOS: Skip qtconnectivity and qtlocation modules
These modules don't build for iOS or don't have a backend yet
Also organizing the list a bit while we are it.

Change-Id: Ic72e897325c9478f66af8e8f879fe6342eb327dc
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-10-07 19:09:37 +02:00
Teo Mrnjavac
060b862b61 Bring back Qt4 X11 session management functionality.
Added QXcbSessionManager to the Xcb plugin.
QXcbSessionManager inherits from QPlatformSessionManager, it's a port of
QSessionManager as it is in Qt 4.8.
Minor changes also in QPlatformSessionManager and QGuiApplication to
hook it up.

Task-number: QTBUG-28228
Task-number: QTBUG-30011
Task-number: QTBUG-33033
Change-Id: I50b33d05a1e32c5278dea339f693713acc870a70
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2013-09-13 11:47:06 +02:00
Konstantin Ritt
69e21f1a86 Add FreeType2 "no/qt/system" configure option with description
Change-Id: I9510a492efadc0262e689de8fb2ac1750bf253ff
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-08 10:29:08 +02:00
Konstantin Ritt
1ae448acbd Rename CFG_LIBFREETYPE to CFG_FREETYPE for consistency
Change-Id: Id1c240a849792e6196162662429a72ce2e293ba3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-08 10:29:04 +02:00
Konstantin Ritt
3493b8058a Add FontConfig "yes/no" configure option descriptions
Change-Id: I30514905d2c5bb3ca4ab176d02f3094badedd0a3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-08 10:29:00 +02:00
Sergio Ahumada
89ee4a50b0 iOS: Skip qtserialport module
This module doesn't build for iOS yet

Change-Id: I625b27a39637c0b816a9136d3eabfe2c0073f108
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-09-03 14:31:06 +02:00
Frederik Gladhorn
190fa97c83 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	examples/widgets/doc/src/addressbook-fr.qdoc

Change-Id: Id1196e8e0c6445f1616c3f29234c974d809f8e48
2013-08-27 22:51:09 +02:00
Konstantin Ritt
3aa163491c Add configure options for [experimental] HarfBuzz-NG support
Change-Id: I15f49b56f49ae53c16db904e03f668c3135edaa5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-08-27 18:05:08 +02:00
Konstantin Ritt
370ea08f77 Add freetype result info to unix configure output
Change-Id: I0393a593a721ec0cd7e7a2490e0fe0453f092934
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-08-27 18:04:55 +02:00
BogDan Vatra
9863188431 Android: Set default to gcc 4.8
The 4.7 version of the toolchain in the NDK has been
obsoleted by the introduction of version 4.8. The default
can still be overridden if necessary.


Change-Id: I042ded92e50dc5ebc4d54ffccc2e6856fc3edba0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-08-22 21:34:35 +02:00
Thiago Macieira
c374f4441a Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-08-22 02:04:39 +02:00
Nicolás Alvarez
683451e7c7 configure: Abort if Xlib isn't present when building for XCB.
The XCB port is still incomplete and needs Xlib in several places.
The configure script should reflect that and make sure Xlib is present.

Change-Id: I6d81ea6cacef56084cf7ccfbcf908d597aae918f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-08-21 23:50:18 +02:00
Nicolás Alvarez
2e9345b627 configure: Check for Xrender only when building for XCB.
The XCB platform plugin is the only one that requires Xrender.

Change-Id: Iac2efa31b4b51e38305ee5f635fe38b75c7752de
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-08-21 21:13:09 +02:00
Frederik Gladhorn
c8ca300e49 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	qmake/doc/src/qmake-manual.qdoc
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/src.pro

Change-Id: I0a560826c420e46988da3776bd8f9160c365459a
2013-08-21 11:03:18 +02:00
Sergio Ahumada
1696f45d92 configure: Remove v8snapshot vestiges
Change-Id: I0a43320ca0ab7cc416b07396ebc795215d84fe10
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-08-20 23:00:34 +02:00
Oswald Buddenhagen
a6eb28d3f6 add configure -extprefix option
this adds the possibility to put the actual qt installation outside the
sysroot it is configured for. this makes it possible to install an
x-built qt without "polluting" the sysroot, which makes it possible to
have read-only sysroots, and multiple qt builds for one sysroot.

-prefix is the location within the sysroot as seen by the target itself,
and gets "burned" into QLibraryInfo in QtCore.
-extprefix is the location in the host file system and gets "burned"
into QLibraryInfo in qmake. if it is not specified, it defaults to the
sysrootified prefix, which is the previous behavior.

Task-number: QTBUG-26680
Change-Id: Ia43833c4e27733159afeb8c8b9b2d981378d0cd1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-08-15 18:02:42 +02:00
Frederik Gladhorn
5c23199d4e Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	configure
	mkspecs/macx-xcode/Info.plist.app
	mkspecs/macx-xcode/Info.plist.lib
	qmake/doc/qmake.qdocconf
	src/corelib/global/qglobal.h
	tests/auto/other/exceptionsafety/exceptionsafety.pro
	tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp

Change-Id: I3c769a4a82dc2e99a12c69123fbf17613fd2ac2a
2013-08-14 09:06:31 +02:00
Oswald Buddenhagen
ae95f28997 bye-bye .qmake.cache
well, not really - qt_parts.prf will still create one, but it will be
empty.

apart from being cleaner, this now finally makes it possible to load an
unconfigured qt source tree into qtcreator without random parts of the
tree being missing from the project explorer.

Change-Id: Ida7ee77ecb450af05bfa66106caf2067b02f1a7f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-12 19:01:45 +02:00
Sergio Ahumada
4780e5326f Integrate gcov support into Qt build system.
To instrument a Qt application or library with the gcov coverage
tool, do `CONFIG+=gcov' in the application .pro file.

To instrument Qt itself with gcov, use the `-gcov' configure
option.

Change-Id: If24e91d95318609b0df1a76ed6d679bd92bcaab2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-08-07 13:38:07 +02:00
Oswald Buddenhagen
6901d21c1d reject unrecognized -no-l* options
the -l* fallback is for adding libraries. it obviously makes no sense in
its negated form.

Task-number: QTBUG-32550
Change-Id: I9f3af9a2fc059ba39987d4b197ed4778cc7f35b6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-05 20:15:53 +02:00
Sergio Ahumada
8c35db5c72 configure: Fix xkbcommon summary output
On systems where xkbcommon >= 0.2.0 the output should be

  xkbcommon .............. yes (system library)

instead of

  xkbcommon .............. yes

Change-Id: I5807946e61814d414a68a15ad96c91f25c9482ee
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-08-05 13:26:15 +02:00
Sergio Ahumada
ded8c6a08f configure: Fix qtwebkit-examples-and-demos -> qtwebkit-examples
Change-Id: I950912a883c263ee4bbae4d1da53c66aa870be70
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-31 14:52:07 +02:00
Simon Hausmann
d37db71323 Remove hard-coded disabling of qtdeclarative on iOS
Instead the module decides now itself whether it supports iOS or not, because
soon it will enable itself :)

Change-Id: I4802441f0a01ed62966a7a0e66f5a8ccfe843cb8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-31 10:20:52 +02:00
Tor Arne Vestbø
a52d634440 Fix warning in configure about not using 'macx-xcode' for Qt itself
Change-Id: I08f68813ac99f071b6f59a332c99afd75d3de41c
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-30 15:27:07 +02:00
Sergio Ahumada
509ed01c85 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-07-24 15:09:38 +02:00
Oswald Buddenhagen
d24b4a5548 set QT_TARGET_ARCH when building for the host
the built host tool may need to know what the target architecture is,
e.g. mkv8snapshot does.

Change-Id: Ie5b1f6a07fa082d212e7c5b54289de49fd74dbcf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-23 16:30:06 +02:00
Frederik Gladhorn
084c5b3db7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp

Change-Id: I18a9d83fc14f4a9afdb1e40523ec51e3fa1d7754
2013-07-23 11:18:11 +02:00
Oswald Buddenhagen
54987c6bf5 default to -compile-examples
because of popular confusion.
the packaging scripts now need to use -no-compile-examples explicitly.

Task-number: QTBUG-32449
Change-Id: Iecab1f345afe21e540204fe69a2292ef932cbb61
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-22 19:52:06 +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
Thiago Macieira
bc7e63e3f9 Don't enable EGL support if OpenGL is disabled.
QtPlatformSupport fails to build if EGL support is enabled but OpenGL
isn't. It tries to compile eglconvenience, but qplatformopenglcontext.h
is empty (#ifndef QT_NO_OPENGL).

It makes no sense to have EGL with no OpenGL ES, so make sure we don't
try it.

The current test to disable EGL if OpenGL desktop is active is upside
down. With -opengl desktop -no-egl, it would complain that EGL support
was requested.

Task-number: QTBUG-28763
Change-Id: I80c780ec78181f3fa85f43e41be21d1217d76610
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-03 01:24:12 +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
Sergio Ahumada
4fdf33a800 configure: Use $AWK instead of plain 'awk'
The $AWK variable already contains the best awk version
available. Possible values for this variable are: gawk, nawk or
awk.

Using just awk fails on Solaris with:

  user@localhost:~/qtbase$ ./configure -platform solaris-g++
  awk: syntax error near line 4
  awk: bailing out near line 4

  This is the Qt Open Source Edition.

Change-Id: I02a17915e8b27a5ce7e831a1225872cf460b3a6b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-26 16:28:32 +02:00
Sergio Ahumada
f30a905ea4 configure: Don't use 'local' in report_support()
The 'local' keyword doesn't exist in Solaris' bourne shell as a
reserved word.

Change-Id: I3270c74f79842ee10481a40a9f82d9fb74aff2e5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-26 16:28:28 +02:00
Oswald Buddenhagen
e9d539623a introduce "secret" configure -top-level option
shifts the makefile generation one directory level up.
this allows the top-level configure to leave the makefile creation
entirely to the qtbase configure.
this is not very clean modularization-wise, but consistent with -skip.

Change-Id: I7ee2d2f29f2e6619d61fe9b55faa0bacdf3c44c1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-26 05:53:41 +02:00
Frederik Gladhorn
6213b81457 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
	src/plugins/platforms/qnx/qqnxrasterbackingstore.cpp
	tools/configure/configureapp.cpp

Change-Id: I3092bd3276af14304b7ab3ae1e1cc05d11cdede0
2013-06-20 16:45:12 +02:00
Oswald Buddenhagen
77d903ae1a catch accidental use of -no-make
the option the user most likely meant is called -nomake.

Task-number: QTBUG-21778
Change-Id: I6d8c4d5a984c929804f49ffc2ac75f6945f76e81
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-19 20:02:21 +02:00
Oswald Buddenhagen
1aaeb9538b complain about bad arguments to -make/-nomake
Task-number: QTBUG-5366
Change-Id: I461a6c85fcee4a0216571d294171652b05ee6a34
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-19 20:01:45 +02:00
Oswald Buddenhagen
7f709861ec don't claim that "make install" is needed for non-prefix shadow builds
Change-Id: I3a72fa8f5f849fba1a4bc79788b090c1a23b0198
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-17 15:42:58 +02:00
Oswald Buddenhagen
d0c9fb8585 normalize file list assignments
not quoting the variable references allows the shell to word-split the
contents and thus convert the embedded linebreaks into spaces.

Change-Id: Id834f02d7a501fb6fe48b45f409f599a8b70b7ed
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Ray Donnelly <mingw.android@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-17 15:42:52 +02:00
Oswald Buddenhagen
864b3b9918 don't write unused QT_INSTALL_* to qmake Makefiles
the installation has been moved to the qtbase top-level project a long
time ago.

Change-Id: I25f1658d1a6544da4bdaa5be6b19f9076c19b7f9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-17 15:42:44 +02:00
Oswald Buddenhagen
70805d852a wrap the horrendeous monster switch case
Change-Id: Ia8619a9e75006d9a95ae325de7aa326b5dd928a6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-17 15:42:34 +02:00
Frederik Gladhorn
9b102e953f Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-06-13 10:05:49 +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
Oswald Buddenhagen
23d8a7fb23 don't copy/symlink doc/global to build dir
instead, use the files directly from the source dir.

Change-Id: I03b728c66de6e03cade6dc153dcc78cea8e3f606
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-12 16:27:28 +02:00
Oswald Buddenhagen
0d463c05fc don't copy mkspecs to build directory
instead, teach qmake to use the mkspecs dir from the source dir as well.

Change-Id: I9edac11f8997fcb0594d0a67419d4733dd4ed86b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-12 16:27:24 +02:00
Oswald Buddenhagen
49bee21d57 don't make qconfig.h read-only
not much point in it, really.

Change-Id: If984aa137993ae6b95cb3591fceac729ae3aa819
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-12 13:02:55 +02:00
Thiago Macieira
8fbf959bee Update the code detecting the default include and library paths
Make it be one big AWK script instead of a ton of smaller
processes. Also handle the defaults inside the AWK script for
simplicity.

Since the output is a qmake variable, we do not need to surround with
quotes strings that don't contain spaces.

Also, use a tee trick to print the verbose output: we get the actual
output from awk.

Change-Id: I4a48a917c988a6b03d2c3b6990765301287713ef
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-06-07 05:27:15 +02:00
Oswald Buddenhagen
930dc240d1 remove pointless symlink fallback for qconfig.h
syncqt does that nowadays.

Change-Id: Iffc465cce86a7c6370afaa543ba9b9ed8d478eea
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-05 12:36:58 +02:00
Frederik Gladhorn
80604a0786 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/global/qglobal.h
	src/plugins/platforms/cocoa/qnsview.mm

Change-Id: I6fe345df5c417cb7a55a3f91285d9b47a22c04fa
2013-06-04 19:34:36 +02:00
Oswald Buddenhagen
0a1b89bff5 run syncqt only for builds from git
the logic in the configures was even trying to express that, only that
nowadays we always ship syncqt, so the tests were kinda pointless.

this frees us from the perl dependency for non-developer builds of
packaged modules (except for webkit, which needs almost every scripting
language on earth anyway).

obviously, this requires that the packaging scripts run syncqt in the
source dir before tarring up the sources. note that for repositories
other than qtbase, the -version argument needs to be passed to syncqt.

Task-number: QTBUG-29465
Change-Id: Ic929ab17a5de4b30fbf48b3aa9bfa3b4d2ef37d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-03 17:59:47 +02:00
Oswald Buddenhagen
8d69232b28 let configure create the forwarding qconfig.h again
this avoids that syncqt needs to forward to a yet unexisting file (which
will have a yet unknown location, when syncqt is run at packaging time
already).

the %inject_headers syncqt config variable remains, so it can be told
not to purge "foreign" files.

Change-Id: I127ff6e0b7d5702fb0acaee9a5b7940b482d3608
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-03 17:59:31 +02:00
Oswald Buddenhagen
c3bec846ac remove bizarre perl detection magic
the code makes no sense, and was added with the QNX port without comment.
there is already a detection a few lines up.

Change-Id: I18ec18604c37c7c42f2649a658dd22324d481dd3
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-05-30 09:56:03 +02:00
Oswald Buddenhagen
8ea19caacf add -compile-examples configure option
this overrides the magic that makes examples only install their sources
in production builds.

packagers may want to force the build of the examples, so they can
package them up for demo purposes.
this is actually why we formerly had the split between demos and
examples ...

Task-number: QTBUG-30788
Change-Id: I5633f69404c5aa6846f5496e8f161a273a7a7da3
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-26 10:09:58 +02:00
Paul Olav Tvete
07b34d934e Android: detect Linux 64 bit host architecture
This is the easy fix: looking at what is supported by the NDK. If people
have weird setups, then they have to specify -android-ndk-host. We do
actually detect the host architecture later, but using that would be
a much bigger (and riskier) change.

Task-number: QTBUG-31275

Change-Id: I18db878031baa2e1ee2fa4beff364d58d8bd3c7a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-24 21:40:24 +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
Ray Donnelly
c3488be438 Android: Remove libgnustl_shared.so copy hack.
It's not needed, and when $outpath/lib doesn't already exist
(when shadow-building for example), $outpath/lib ends up being
a copy of libgnustl_shared.so, when it really must be a folder.

Change-Id: Iaf3af6f4183090137043549cb8d9899c2bc92f24
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-05-23 12:49:39 +02:00
Friedemann Kleint
0feb1aadfd configure/Mac: Handle errors by xcrun.
xcrun occasionally prompts for a license or outputs errors which
results in:

configure: line 2488: [: : integer expression expected

Check the output and bail out on error.

Change-Id: Ic1ae62b5f19cf87365c38901e98d6b385cdb39a4
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-20 15:20:26 +02:00
Oswald Buddenhagen
6b38524bba get rid of syncqt wrapper scripts
instead, rename it to syncqt.pl and rely on qtPrepareTool()'s new
ability to correctly invoke it as a perl script even under windows.
the wrappers themselves have been trivial at this point, so there is no
added value in keeping them, either.

Change-Id: I77cf65edbcfaa48ed1900defe940d4eb4b82d5b9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-05-13 21:54:48 +02:00
Oswald Buddenhagen
7db165d9e0 don't try to shadow scripts which are not even there
Change-Id: Ia8517ebc43488b8b92b142fa6b9f483b8fbe8a32
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-05-13 21:54:43 +02:00
Oswald Buddenhagen
8739487b1c install host libraries into -hostprefix
... and introduce -hostlibdir configure option for symmetry.

the libraries built for the host have no business in the target prefix.

in principle this code would even support dynamically linked host
libraries, but that's currently unused.

Task-number: QTBUG-30591
Change-Id: I8e600fa4911a020fb0e87fbf7ef2f35647c7c4d5
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Ivan Romanov <drizt@land.ru>
2013-05-13 21:54:40 +02:00
Ray Donnelly
a9952689c7 MSYS: Force relpath and outpath into same pathing namespace.
MSYS bash (and other msys-compiled executables) perform path
transformation much like Cygwin. This causes syncqt path
substitution to not work correctly, so use 'pwd -W' to get
the Windows version (though with forward slashes) of both
relpath and outpath.

Change-Id: I808e3ef9206ed5f5bd8b6879d12afe664e589e0c
Reviewed-by: Alvaro Burnett <alvaroburnett@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-13 15:39:35 +02:00
Tor Arne Vestbø
1b2d3be446 Sanitize QT_COMPILER_SUPPORTS_xxx in qcompilerdetection.h
... instead of scoping the defines in qconfig.h, which relied on the
Q_PROCESSOR_xxx defines and meant that we had to include qconfig.h
after qprocessordetection.h, which added a whole bunch of other
dependency issues.

We now let configure write QT_COMPILER_SUPPORTS_xxx to qconfig.h as
before, without any scoping, and then undefine the ones that don't
apply for the given processor. This means we need to include
qprocessordetection.h before qcompilerdetection.h in qglobal.h,
but the former does not depend on the latter, so this should be
fine.

Change-Id: If00c00d405463e9626fa0f7f5e6b17f68778904f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-10 01:12:40 +02:00