Commit Graph

422 Commits

Author SHA1 Message Date
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
Frederik Gladhorn
85e3c53e5c Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2a54058b64ac69c78b4120fdaf09b96e025a4c6c
2013-04-29 14:17:09 +02:00
Jan Kundrát
adec3f4eaf Do not talk about make confclean in the top-level directory
The configure script does not actually produce a "confclean" make target.

Task-number: QTBUG-27735
Change-Id: Ia0f9e33e50c35cc6bb2941853e518a40fc9edaee
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-23 18:57:45 +02:00
Frederik Gladhorn
4c231d5df3 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I059725e3b7d7ffd5a16a0931e6c17200917172b5
2013-04-22 16:35:43 +02:00
Frederik Gladhorn
94758589fe Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-04-17 10:28:21 +02:00
Thiago Macieira
0e9b0fc1d4 Move the reporting of xkbcommon's warning closer to the bottom
The warning is more likely to be seen if it's closer to the end of the
output.

Also report whether we found xkbcommon in the main output. Note that
xkbcommon is used by Wayland too, so it's not dependent on QPA or on
the XCB backend.

Change-Id: I143327eea4e17fa06bc7c24c677ae0bd00e65711
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-15 15:32:40 +02:00
Thiago Macieira
7a536e1b7b Re-shuffle the configure output
Keep options sorted and use indentation to group together related
options (QPA backends, image formats and SQL drivers).

Change-Id: I97d330a13a4daa4567ff741dc26e11f458ae7f53
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-15 15:32:40 +02:00
Ray Donnelly
6e0f55495d Android: Implement a hack for qmake /dev/null usage on Windows.
Neither /dev/null nor NUL work with Qt on Windows. For now, use
an empty file for the cases where qmake is used with /dev/null.

I filed a bug for this:
https://bugreports.qt-project.org/browse/QTBUG-30562

Change-Id: If5351214ae5a0ebe50ae46b155c327ca0dc59f98
Reviewed-by: Alvaro Burnett <alvaroburnett@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-15 15:32:40 +02:00
Ivan Romanov
f1e74c0741 fix padding periods in configure help text
A gap after option name is needed to select it with double-click.
Also I added padding periods for -testcocoon because it has no them before.

Task-number: QTBUG-30589
Change-Id: Ib5b970f9b17cad43609fbc53dd05a995aaf29b45
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-15 13:17:26 +02:00
Tor Arne Vestbø
60fbb00d59 Scope QT_COMPILER_SUPPORTS_xxx by processor architecture in qconfig.h
Change-Id: Ie306b7b26e7dde641177ad54daf4365085fe9dce
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-13 18:36:52 +02:00
Tor Arne Vestbø
78f3c1fb8e Make QT_CPU_FEATURES a map of features based on architecture
For now there's only one architecture per host/target, but
this will change once we start detecting the CPU features
for both device and simulator on iOS.

For convenience we set QT_CPU_FEATURES to the resolved
value of the current architecture, so that simd.prf still
can use QT_CPU_FEATURES directly.

Change-Id: I28e8b339a5c30a630e276165254dba09a3da6940
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-13 18:36:46 +02:00
Tor Arne Vestbø
be08ef6131 iOS: Automatically disable rpath since it's not supported
Change-Id: If4f707f5d32a1a38b9ca11d4f1703e1f20bb3c20
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-12 14:16:42 +02:00
Tor Arne Vestbø
4731ced45b iOS: Automatically disable pkgconfig, and don't build examples and tests
So that the user doesn't have to pass -no-pkg-config and -nomake, when
we already know that those flags are needed and that the build will break
without them.

Change-Id: Ic07e02bc1800f177cf09f704104c1a76bfc50aa2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-12 13:57:25 +02:00
Frederik Gladhorn
aa3754d105 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Iee73c93067c5822d8dd51a8692e6da9df4ba49f5
2013-04-12 12:53:13 +02:00
Tor Arne Vestbø
a12a67c820 Move QT_CPU_FEATURES from qconfig.pri to qmodule.pri
QT_CPU_FEATURES is internal and only used by simd.prf, which is
also internal. This matches the available CPU features which are
detected using config tests and written to CONFIG in qmodule.pri.

Change-Id: I8eb35448e2954a54c228d3617f29afc0283a7db5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-11 16:27:55 +02:00
Sergio Ahumada
ec6e1f0b9f Merge "Merge branch 'stable' into dev" into refs/staging/dev 2013-04-10 18:49:28 +02:00
Thiago Macieira
2c5188f077 Don't use UNAME_MACHINE on Linux
We don't need it. Let linux-g++ be the default on all Linux builds,
period.

Task-number: QTBUG-30590
Change-Id: I26c73bf4f054684763b64ef5651b3488363ea7a1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-10 17:51:36 +02:00
Sergio Ahumada
90297a64f2 Merge branch 'stable' into dev
Change-Id: Icff019d74ae04c628a80f66aa478e4db40fae464
2013-04-10 15:42:22 +02:00
Tor Arne Vestbø
382d99173a Only set QMAKE_DEFAULT_LIB/INCDIRS for target builds
The default lib and include dirs are resolved using the target
compiler and with a sysroot, so they are not relevant for host
builds.

Change-Id: Iceb2eb865d0732b9a6f5896ad126200ae8e8a04e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-10 14:16:36 +02:00
Tor Arne Vestbø
83f473b2cd Don't use custom namespace for QT_HOST_ARCH/CPUFEATURES
We now have host_build to distinguish the two, and we load
qconfig.pri from both the host and the target mkspec, with
host_build set correctly.

Change-Id: I8b8b80d5487d10bb1d4585d27d10300f609a7775
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-10 14:16:36 +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ø
f65bfe11e1 iOS: Skip modules that don't build yet
Change-Id: Ic0f39d7fb5a7f435f31dc6897a0a9266d1d7b0ef
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-08 17:23:15 +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
4b069486cb Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-04-04 14:45:28 +02:00
Tor Arne Vestbø
182d6292ce iOS: Enable NEON optimizations, except for the pixman draw-helpers
We used to disable NEON completely, as the iOS toolchain does not
handle the GAS syntax of the pixman draw-helpers. But we can limit
the disabling to just the draw-helpers, which means we get NEON
optimization of eg. QImage and QString.

Change-Id: If350b06ce521cca8b24468be5a168ff21e9e7124
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-04-04 06:13:16 +02:00
Frederik Gladhorn
a4121a21c0 Merge remote-tracking branch 'origin/release' into stable
Change-Id: Icedabda08961326a0a447ec71f1b0f0f5df075eb
2013-04-03 15:43:39 +02:00
Thiago Macieira
782cd9ef2e Ensure GCC prints its messages in English when we parse them
We're trying to parse GCC output, so let's make sure that they are in
English. I've seen some reports that "search starts here" was
translated to some locales.

Change-Id: If09b1f45607f65d054496db65418e413b8aa8d48
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-02 18:58:33 +02:00
Oswald Buddenhagen
d8a127fdcc don't try to de-duplicate QMAKE_DEFAULT_{INC,LIB}DIRS
the de-duplication has the side effect of sorting, which is a very bad
idea: x-compilers tend to append the host library paths at the end, and
we really want them to stay at the end.

and the lists should have no duplicates to start with. should we find a
compiler which breaks this assumption, we can use qmake's $$unique()
strategically.

Change-Id: I01560e3c33736c2dfffdb05d5c960c492439c946
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-04-02 18:58:30 +02:00
Michael Brasser
87b3aa9f4f Revert "eglfs: Disable eglfs when evdev is not present"
evdev support in eglfs is now guarded by QT_NO_EVDEV, so this
check is no longer required. This allows eglfs + tslib to be
a supported combination.

This reverts commit a95e396a83.

Change-Id: Icf7c15121b7eca1131d412b05b956cd5d7f189ae
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-26 21:44:15 +01:00
Michael Brasser
bb4e2e4faf Allow tslib to be specified at configure time.
Change-Id: I0ebf0eeea7e6a0b8136fb805f34f04082bc58c5e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-26 21:44:15 +01:00
Oswald Buddenhagen
d8406d0e09 make the libexec default on windows bin/ after all
the dlls being in lib/ is kind of an accident (a side effect of how
qmake builds them). in fact, the libdir should be entirely irrelevant
for windows deployments (and indeed, the SDK is delivered with dlls only
in bin/).

Change-Id: If47e72b24774721a61ba63847f6132f88ff110be
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
2013-03-26 07:49:11 +01:00
Thiago Macieira
a3c802e7e5 Make sure that we check that pkg-config knows sqlite3 before using it
Otherwise, we end up with an empty QT_LFLAGS_SQLITE and the plugin
won't link.

Change-Id: I026f60bf9cd075218dbe2888fbb7fc82782b27ca
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-25 23:11:22 +01:00
Thiago Macieira
7067c3268a Suppress warning about xkbcommon unless we're building XCB
I don't need that warning on my Mac.

Change-Id: I18c06135ba88a037103fdda0982976f4a87c553e
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-23 04:33:11 +01:00
Thiago Macieira
93acff7883 Add support for the Clang compiler bundled with XCode
Since c45595d648, we use the toolchain
based on the XCode SDK, not the one in $PATH. Turns out that the Clang
that comes bundled with XCode 4.6 reports its version as

     Apple LLVM version 4.2 (clang-425.0.27) (based on LLVM 3.2svn)

Instead of "Apple clang". So we need to match for (clang|LLVM).

Extended regular expressions (with -E) were necessary because the sed
that comes with Mac OS X is apparently broken and will not work with
\(clang\|LLVM\). GNU sed accepts -E as an alias for -r, meaning
extended regexps.

Change-Id: I5a15de30721216b086c3d39a080cc6496c503985
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-03-23 04:33:11 +01:00
Eskil Abrahamsen Blomfeldt
f8c9f960ad Fix crosscompiling for Android on Mac
There is no logic in configure to detect compiler capabilities
in the host- and cross-compilers separately, so if the
cross-compiler has more capabilities than the host compiler, the
compilation will break. This was the case for c++11 on Mac, which
is supported by the Android cross-compiler but not by default on
the host. There is a fix planned to enable c++11 on Mac, so
this is a temporary patch to work around the problem by disabling
c++11 explicitly until it has been fixed.

Change-Id: I2048dc7f63991c97b11b3980ac91292d2c9b7ce4
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-21 15:27:38 +01:00
Samuel Rødal
2ab9b747fc Merge remote-tracking branch 'gerrit/release' into stable
Conflicts:
	configure
	mkspecs/features/qt_module_headers.prf
	mkspecs/features/qt_tool.prf
	src/angle/angle.pro
	src/tools/bootstrap/bootstrap.pro
	tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp

Change-Id: Ide5759fe419a50f1c944211a48f7c66f662684e0
2013-03-21 08:49:01 +01:00
Oswald Buddenhagen
e79e1c1a16 pass module version to syncqt
this is cleaner than having it parse qmake project files.
the only remaining built-in version extraction is the fallback to
qglobal.h needed for bootstrapping.

as a "side effect", this fixes the build of modules with mismatched
versions centralized in .qmake.conf, as this was simply not handled so
far.

the -mkspecsdir syncqt option goes away, as there is no use case for it
any more.

Task-number: QTBUG-29838
Change-Id: I6912a38f0e93a26bc267a9e3d738506fd3ad431b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-20 19:03:45 +01:00
Gatis Paeglis
247643a602 Add check for libxkbcommon to the configure script
It is needed for implementing the shortcut functionality in the xcb platform
plugin and for the compose key input context plugin.

As announced on the wayland-devel mailing list - the libxkbcommon 0.2.0 is
the first grown-up release of the library (Tue Oct 23, 2012). [1]

[1] http://lists.freedesktop.org/archives/wayland-devel/2012-October/005976.html

Change-Id: Id5d45e1a5afe49cf9ec5312318bd173f5a067f62
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-19 10:33:40 +01:00
Oswald Buddenhagen
0189cd123d add/unify progress messages to/from the configures
it's weird that the output from the two variants is differing, and that
after building qmake it appears to hang.

Change-Id: I2ac3ace11e958effe787b13e1300eb1d2839ae98
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-15 21:30:26 +01:00
Oswald Buddenhagen
1b69786a3f fix all "qt style yes options" which start with -l
7de9d3709 broke them, because suddenly every -l* switch was parsed as a
library. fix this by re-arranging how the options are parsed.
this obsoletes d7ab351cdd as well, by being more generic.

fwiw, this syntax is stupid to start with, because all unknown -l*
options are implicitly libraries and create confusing configure
failures. emulating the compiler/linker command lines isn't such a great
idea ...

Task-number: QTBUG-29174
Change-Id: I11bac7a6f458664dff8cbe57ed9cd33a08d5e9ec
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-15 21:30:23 +01:00
Oswald Buddenhagen
79a144d746 allow passing values with spaces to -device-option
note that the value is written verbatim to the qmake file, so additional
quoting may be required on the command line.

Task-number: QTBUG-30102
Change-Id: I02ca9a44fae82b6932982e6385508b8a304cc1e7
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-15 18:04:34 +01:00
Tor Arne Vestbø
36a5873fac Detect Clang availability on Mac based on the SDK, not the OS X version
Since we use the Clang from Xcode's toolchain now, the OS version is
not relevant.

In practice this means we will use clang for Xcode 4.2 and up, which
means it's possible to use clang also on Mac OS 10.6 (Snow Leopard),
where Xcode 4.3 is not available.

Change-Id: I9817e237cdd82d10b93aaaa3c90e35767cdca751
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-14 19:49:38 +01:00
Tor Arne Vestbø
c45595d648 Use tools from the SDK's toolchain instead of the ones in /usr/bin
For Mac OS X we currently specify build tools without an absolute path,
which means we end up using the ones in /usr/bin. This is wrong, we
should be using the tools from the toolchain of the chosen SDK.

For iOS we do specify an absolute path, by resolving the toolchain
path in the iOS makespecs.

To solve the situation on Mac OS X, we move the logic of resolving the
toolchain path to sdk.prf, and share it between OSX and iOS.

For configure we need to duplicate some of the logic from sdk.prf, as
configure pulls out QMAKE_CC and QMAKE_CXX for running some initial
tests and building qmake. The new macSDKify function also solves
the issue of missing sysroot and deployment version in the flags.

Change-Id: Ib1d239c9904cf3ccee5214b313cf6205869a1462
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-13 18:40:26 +01:00
Tor Arne Vestbø
e9837f7938 Teach configure's pro-file parser to understand host_build scopes
Is needed now that we write QMAKE_MAC_SDK with a !host_build scope
in qdevice.pri.

Change-Id: I298cc660b496460190337c175aef684a5522d5cb
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-03-13 18:40:26 +01:00
Tor Arne Vestbø
75ee22dab0 Fix build of host_build when a -sdk was passed to configure
qdevice.pri is not target/host specific yet, so we were loading
it and overriding QMAKE_MAC_SDK to iphonesimulator eg., even
for host tools such as moc.

Change-Id: I10277e60e1da84dda239e32a6f19b40dc48f084a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-06 19:03:39 +01:00
Frederik Gladhorn
b861063873 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-03-06 00:11:52 +01:00
Tor Arne Vestbø
1c90590768 Disable AVX for the whole Apple Clang 3.x series, not just 3.0
Version 3.1, shipped with Xcode 4.3, has the same issues compiling Qt's
AVX code.

Change-Id: Icb778fbd9d61f01aa84365661af050c9442d4d7f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-05 18:39:35 +01:00
Tor Arne Vestbø
0c768600f7 Rename configure's getQMakeConfN functions to more descriptive names
Change-Id: I2f0ad6c3978c4bbb20d6d5b854b5f49e9bb96d2b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-05 18:39:35 +01:00
Frederik Gladhorn
5e8ae03578 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	configure
	qmake/generators/mac/pbuilder_pbx.cpp
	src/corelib/kernel/qtimerinfo_unix.cpp
	src/plugins/platforms/cocoa/qcocoabackingstore.mm
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/windows/qwindowswindow.cpp
	src/plugins/platforms/xcb/qglxintegration.cpp

Change-Id: I8d125fe498f5304874e6976b53f588d3e98a66ac
2013-03-05 13:42:11 +01:00