Commit Graph

2672 Commits

Author SHA1 Message Date
Tor Arne Vestbø
1314d2688c macOS: Fix Objective-C namespaceing with Xcode 10
Xcode 10 ships version 921.0.1 of cctools, which otool is part of. The
defaults have changed in that version to no longer print verbosely
(symbolically), which we relied on. We now request it explicitly.

Change-Id: Ifbe0c97462b9f78cf128c820847eff9c72f17065
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tim Blechmann <tim@klingt.org>
2018-12-03 20:13:13 +00:00
Oswald Buddenhagen
521a85395d configure: actually resolve libraries into full filepaths
this considerably speeds up failures, as no doomed build is attempted,
and produces more reliable results, as no second lookup (which would be
subject to environment changes) is done any more during the build.

in principle, this also opens up possibilities like selecting specific
variants of dependencies, automatically extracting rpaths, etc.

qt_helper_lib.prf also needs to create fully resolved library names now.

Change-Id: I65f13564b635433030e40fa017427bbc72d1c130
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-03 11:25:56 +00:00
Oswald Buddenhagen
46a2b44b2b qmake: fix QMAKE_DEFAULT_LIBDIRS detection on android
amazingly enough, android has different sysroots for the compiler
(shared includes full of #ifdefs) and the linker (per-platform
libraries).

this patch supports only clang for non-darwin, which notably covers all
supported android ndks.

with this fixed, we also remove the hard-coded setting of
QMAKE_DEFAULT_*DIRS from the specs.

amends 353fb118c.

Change-Id: Ie0513de0f7123d7f5b8ca1ffcc72c017cddd126c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-12-03 11:25:47 +00:00
Eskil Abrahamsen Blomfeldt
79e4fe54bf WebAssembly: Fix compilation of application on Windows host
When running configure on a Windows host, it would fail with the
error that the copy statement was invalid, due to the forward
slashes. This makes configure finish without errors.

Task-number: QTBUG-72000
Change-Id: Id315d7436bbbfd2cd5c5f2dfcfe0c3dc3b9e34c2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-12-03 08:48:28 +00:00
Oliver Wolff
10f9bd82ea ctest: Make cmake test pass if it has been run before
We have to check if the directory exists before calling mkdir or the test
will fail on every run but the first one.

Change-Id: I36f10cfc18b3cb99990dc96190349ee00a0c1c4e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-11-30 11:30:13 +00:00
Friedemann Kleint
4447db4465 Active Qt Servers: Fix midl warning about unknown option
Remove the option from msvc-desktop.conf, which duplicates
the /nologo option in idcidl.prf.

Fixes: QTBUG-72046
Change-Id: I906097e0611f4578c307616b3f9ebecdfc4d8812
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2018-11-27 15:24:57 +00:00
Joerg Bornemann
364337a27f Remove duplicated documentation from package_manifest.prf
Descriptions for WINRT_MANIFEST's subkeys are in the documentation.
Having a copy in the prf file is superfluous and is likely to run out
of sync at some point.

Change-Id: Icea49854981990139305f6dc4e73d1b9dcb01dd5
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-11-22 05:59:41 +00:00
Oswald Buddenhagen
b1d6f64a94 integrity: don't mess with QTPLUGIN.platforms
this is an exclusively user-controllable variable. the mkspec may provide
a default via QT_QPA_DEFAULT_PLATFORM when it deviates from the platform
default known to configure, and these specs actually already make use of
that.

Change-Id: I7531063d4c404ebed7b2cc1647c61626db30daef
Reviewed-by: Kyle Edwards <kyle.edwards@kitware.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-11-21 23:08:10 +00:00
Oswald Buddenhagen
54dabdd1e8 wasm: fix qpa plugin build system integration
fix the plugin name (it was missing the leading 'q') and the name used
in configure (the latter making it unnecessary to mess with it in the
mkspec). the qt.prf override which forced linkage of the plugin is also
removed due to being completely redundant.

Change-Id: I94687a34a295c36754e36a298af902b656ba2ecc
Reviewed-by: Kyle Edwards <kyle.edwards@kitware.com>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2018-11-21 23:08:05 +00:00
Oswald Buddenhagen
f5f46aaf42 wasm: fix qmake variable names for optimization flags
Change-Id: I43c0a94312504948c0db390994656d5f655c8d4c
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2018-11-21 23:08:01 +00:00
Oswald Buddenhagen
eea08d376a wasm: remove seemingly pointless -s flags
these libraries are handled by the configure system. i presume this to
be an artifact of an early version.

Change-Id: Ieee0554163a9fe296097d09e60a70719beee97b4
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2018-11-21 23:07:57 +00:00
Oswald Buddenhagen
ac4dd6e8f6 wasm: fix location and language of comment
Change-Id: I7c9c65d037f808371a778e51d0877ed579ae8b26
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2018-11-21 23:07:52 +00:00
Oswald Buddenhagen
6bea0398ea configure: fix bogus message about not needing to install qt
when building additional modules against an already installed qtbase,
$$[QT_INSTALL_PREFIX/get] is obviously the same as
$$[QT_INSTALL_PREFIX], so we would misdiagnose a non-prefix build.

instead, use the same condition as qt_build_config.prf (we cannot just
rely on what it sets, because in qtbase configure context it's evaluated
before we set up the paths).

Fixes: QTBUG-60541
Change-Id: I37be30e0e682ece76ed460a66f1984ee0fe2ed71
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-11-21 23:07:43 +00:00
Oswald Buddenhagen
7e27afd88f configure: log -I and -L before doing first library check
... for debugging purposes.

this needs to work in every configure run even though the options
(currently) come from qtbase's global scope. this is accomplished by
automatically injecting the test type dependencies declared in the
'builtins' scope (where they generally make no sense whatsoever, because
there are no tests there) into other scopes (the first one that has a
test of the particular type, specifically). we do that *after* the
scope's own test type deps, so it can do its custom stuff first (it can
explicitly activate the required features if it depends on some global
stuff).

Change-Id: I67317da1b55804d39458bdbcf13d39a3e57a13bf
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-11-21 23:07:34 +00:00
Oswald Buddenhagen
659eff9f2d qmake: prune dead assignments from android spec
Change-Id: Ide2bbe7116c24c6b952db835c23ebf2859f18c5f
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2018-11-21 23:07:28 +00:00
Oswald Buddenhagen
175ada2249 qmake: fix test for $ANDROID_NDK_ROOT
there is no reason whatsoever to ignore the variable if it's set to an
invalid value. also, it being empty would lead to a warning from qmake
since a while.
so instead check it for emptiness like every other variable, not for
file existence.

Change-Id: I1119f67520d2986811501cd3f223f8f4a87d067d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-11-21 23:07:22 +00:00
Tor Arne Vestbø
aa75697b63 Add makefile target to generate Xcode project
Removes need to manually build up qmake command line when there's
already a Makefile generated (from a recursive qmake_all run e.g.)

Instead, just run 'make xcodeproj'.

Change-Id: Ibe91b183230721a4bcaddfde53b623df00f7adb5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2018-11-20 19:51:25 +00:00
BogDan Vatra
6fdf398ab4 Android: Prepare for the worst, when the NDK will remove all GNU tools
In NDKr18 Google removed GCC, most probably the massacre will not end
there and they will remove all GNU tools, so we need to start using LLVM
ones.

This patch still keeps the compatibility with GNU tools if the Qt was
built with android-g++ mkspec.

Change-Id: Ibe1979577e08ce63604d55fc5bbd5f64b3737675
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-11-19 11:45:20 +00:00
Kai Koehne
1983abddc0 Remove support for qml1 plugins and modules
The Qt Quick 1 module got dropped in Qt 5.6, and
almost certainly doesn't compile anymore.

Change-Id: Ia1ae6937e9cc4d99508be8eeeff9b12d0f001002
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-11-15 19:52:13 +00:00
Tor Arne Vestbø
74828aa657 macOS: Disable main thread checker for Xcode test target
Change-Id: If9bf63a94b8f2ca1846a502879af5bada9918cd7
Fixes: QTBUG-71636
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-11-12 07:16:26 +00:00
Thomas Miller
fbbe8aba9d Add Windows Desktop arm64 target to Qtbase
Allows a qt build to be configured to target arm64 desktop apps cross
platform and build them with nmake.

Change-Id: I99fed12047b45a504a1644201bcc19b18c69f3e6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-11-11 09:05:10 +00:00
Liang Qi
bc07958f92 Merge remote-tracking branch 'origin/5.11' into 5.12
Conflicts:
	.qmake.conf
	qmake/Makefile.unix
	src/gui/text/qtextdocument.cpp
	src/gui/text/qtextdocument.h

Change-Id: Iba26da0ecbf2aa4ff4b956391cfb373f977f88c9
2018-11-09 10:34:33 +01:00
Samuli Piippo
033cc3403a mkspecs: use cross compile tools with LTCG
AR and NM have different tools when LTCG is used,
override those also when cross compiling.

Fixes: QTBUG-71595
Change-Id: I5347bd1874688dd89395c50ff6dd08fb1c0ebab1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-11-06 10:51:38 +00:00
Liang Qi
b36c5bdc30 Merge remote-tracking branch 'origin/5.11' into 5.12.0
Conflicts:
	src/plugins/platforms/cocoa/qcocoaglcontext.mm
	src/plugins/platforms/xcb/qxcbscreen.h

Change-Id: If9b4c67288396ff7346088ce591c7a3588b51979
2018-11-05 09:59:59 +01:00
Tor Arne Vestbø
d555327a57 macOS: Explicitly define lower bound for supported SDK version
We need to support apps building against the 10.13 SDK, so that they
can opt out of dark mode and layer-backing. This does not mean we can't
require 10.14 to build Qt itself, but doing so should not require the
app to also build against the 10.14 SDK.

Change-Id: I53bd0fc8bf56c0be6614acec14d5173589e2620f
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-10-26 08:54:22 +00:00
Tor Arne Vestbø
38afa46c47 macOS: Only detect changes to the SDK version within the same developer dir
We want to inform the user when they have upgraded their Xcode version
and hence have a new SDK version, which requires a complete rebuild.

Explicit changes to the Xcode selection (be it via xcode-select or
$DEVELOPER_DIR) do not affect the existing build directory, so we must
record the Xcode selection inside the build to avoid false triggering.

Change-Id: I7d13da1232226712a4951e8a360cf4b634c6fa2f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-10-25 08:59:45 +00:00
Qt Forward Merge Bot
9ef793ba95 Merge "Merge remote-tracking branch 'origin/5.11' into 5.12" into refs/staging/5.12 2018-10-20 23:19:30 +00:00
Qt Forward Merge Bot
7a252ac467 Merge remote-tracking branch 'origin/5.11' into 5.12
Change-Id: Iaf28977e7ecf566b28b9406dcb005d48621169c2
2018-10-21 01:00:09 +02:00
Jüri Valdmann
cea2b5510c Fix building tests with -no-gui
Change-Id: I37307080e5adc334fcfcdd2fee650d675228a746
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-10-20 20:38:59 +00:00
Andy Shaw
2624676b57 qmake: Remove the extra space before -MT
Removing the extra space before -MT ensures that the vcxproj
generator gets valid input.

Change-Id: Iccf88c5fc4473db406d714b646185a4fb60a3418
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-10-17 19:06:24 +00:00
Liang Qi
ccf26f6a88 Merge remote-tracking branch 'origin/5.11' into 5.12
Conflicts:
	src/plugins/platformthemes/platformthemes.pro
	src/printsupport/kernel/qplatformprintdevice.cpp

Change-Id: Iac01729ad954bb1c7af5867d982eb243b2139ee6
2018-10-17 10:35:28 +02:00
Kai Koehne
27f54076cd Automatically pick up dependencies.json file for qmlplugindump
The dependencies.json file allows to tweak the list of imports the
module is depending on, so that types implicitly imported are not
listed twice.

Task-number: QTBUG-70264
Change-Id: I7a3800e5ea713a8aaae0cddbf4e1607f92c41497
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-10-15 06:47:53 +00:00
Kai Koehne
4522468716 qmake: Add support for CONFIG += c++17
The correct name is c++1z. Anyhow, this is easy enough to get wrong,
so make sure CONFIG += c++17 works as well.

Task-number: QTBUG-67527
Change-Id: Iea26b18824b38b1b5170f85987cf5c750b8e10ab
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2018-10-15 06:47:42 +00:00
BogDan Vatra
56f949ad3c Android: fix compile with NDK r18+
In NDK r18, libc++.so was renamed to libc++.so.XX where XX is the Android
API level.

[ChangeLog][Android] Fixed build issue with NDK r18+.

Task-number: QTBUG-70631
Change-Id: Id0d2955648197e3054e3c69263b5a90d57964f6c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
2018-10-12 18:06:38 +00:00
Kai Koehne
0509383cf2 Bump copyright year in executable metadata
Change-Id: I67d06eae963c7fbbbbf13c5f9ab1195cbc5d7eb1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-10-12 09:36:21 +00:00
Tor Arne Vestbø
a77e2f4cd4 macOS: Only verify the major and minor version of the platform SDK
Change-Id: I8de6c06e8be09483591efdf37c1631134d4ef826
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-10-03 13:04:07 +00:00
Tor Arne Vestbø
55e63ddbd2 macOS: Bump the SDK version we've tested with to 10.14
Change-Id: Ibfdb8be91be46b22e0f0b97105121176a02a8576
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-10-03 13:04:00 +00:00
Liang Qi
1fa5d83ad2 Revert "Android: Compile with NDK r18 + clang"
This broke the build for qtlocation.

This reverts commit 176a216f4f.

Task-number: QTBUG-70779
Change-Id: Ifd8419ffb88c1a9009319f39b11b4529b143477e
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2018-09-28 13:46:11 +00:00
Friedemann Kleint
3c5ad626d4 Export modules' enabled/disabled features to cmake
Add properties enabled_features and disabled_features the respective
library targets.

This makes it possible to query the enabled classes in dependent libraries
(for example, Qt for Python).

Add a test verifying whether the Open GL configuration is reflected
correctly in the feature properties to the existing test_opengl_lib
autotest.

Change-Id: I645c947073dbb36da3be81de6bc62ee0ba1e73d6
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-09-28 13:10:28 +00:00
Eskil Abrahamsen Blomfeldt
176a216f4f Android: Compile with NDK r18 + clang
In NDK version r18, the libc++.so file we used for clang has been
removed. However, in r17 this was actually just redirecting to
libc++_shared.so, which is still available in r18, so we can
link directly to that instead.

[ChangeLog][Android] Fix build issue with Android NDK r18 and clang.

Task-number: QTBUG-70631
Change-Id: I658c0cabf49f27a47f38305de3c86067c8b18b25
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2018-09-25 19:29:54 +00:00
Qt Forward Merge Bot
307d0b32f0 Merge "Merge remote-tracking branch 'origin/5.11.2' into 5.12" into refs/staging/5.12 2018-09-12 08:48:05 +00:00
Qt Forward Merge Bot
8e3dcd686b Merge remote-tracking branch 'origin/5.11.2' into 5.12
Change-Id: Ic9024fac14ff01154e10aa524293d8e3e7caa021
2018-09-12 10:37:18 +02:00
Oswald Buddenhagen
2aa779e893 syncqt: fix forwarding injected headers, take ~3
in non-prefix builds, the forwarding headers always end up in qtbase's
build dir, while the injected headers always live in the build dir of
the module they belong to. to deal with that, we now record the target
path relative to the module root dir instead of relative to the base
directory of the forwarding header itself.

Fixes: QTBUG-70056
Change-Id: Ic4346148a125b13e2610f6965cdf4f5266ac763e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-09-12 06:53:02 +00:00
Oliver Wolff
003a356403 winrt: Fix build with MSVC >= 15.8
39cb9ac873 moved the _ENABLE_EXTENDED_ALIGNED_STORAGE define from
msvc-version.conf to msvc-desktop.conf which basically removed the
define from winrt builds. By adding it to winrt's common qmake.conf
these builds are fixed.

Change-Id: I3d87c55fb52685859713f7466012b45c46145678
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-09-12 06:19:42 +00:00
Liang Qi
683e144efb Merge remote-tracking branch 'origin/5.11' into 5.12
Conflicts:
	mkspecs/common/macx.conf

Change-Id: I8576493b417912fa5e5501bc2c1b935d186ac209
2018-09-10 12:12:46 +02:00
Kai Koehne
9273969107 Allow passing custom arguments to qmlplugindump
Add QMAKE_QMLPLUGINDUMP_FLAGS variable that allows plugins to set
qmlplugindump options like -app, -noforceqtquick.

The naming follows the example of e.g. QMAKE_LRELEASE_FLAGS.

Task-number: QTBUG-70264
Change-Id: I1d11b7f3b03fab79ab9e06188cecf31650789302
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2018-09-03 09:21:03 +00:00
Tor Arne Vestbø
b02fe1bfe7 Remove codepaths and checks for unsupported Apple platforms
We no longer support macOS 10.11, iOS/tvOS 10, or watchOS 3.

Change-Id: Ide03d8fac06185ef4162ba75ee54a0adf6916905
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-08-31 12:35:45 +00:00
Tor Arne Vestbø
4e4057460a macOS: Warn the user when using incompatible or untested platform SDKs
Task-number: QTBUG-70263
Change-Id: Ic946d1efc69ebb8ba65bbba956ed55ab7183957e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-08-31 12:25:23 +00:00
Tor Arne Vestbø
3ed306772e macOS: Detect changes to the platform SDK and ask the user to deal with it
Otherwise the SDK upgrade (or downgrade) may subtly and silently affect
the resulting binary, or if it results in build breaks, the user won't
know why.

We limit it to applications for now, as that's the point where it's
most important to catch the SDK upgrade, but technically we should
also do this for intermediate libraries. Doing it for everything
will likely incur a performance cost, so we skip that for now.

Change-Id: I8a0604aad8b1e9fba99848ab8ab031c07fd50dc4
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-08-31 12:25:19 +00:00
Morten Johan Sørvig
29c0377f07 WebAssembly for QtBase
This is the squashed diff from wip/webassembly to dev.

Done-with: Peng Wu <peng.wu@intopalo.com>
Done-with: Sami Enne <sami.enne@intopalo.com>
Done-with: Morten Johan Sørvig <morten.sorvig@qt.io>
Started-by: Andrew Knight <andrew.knight@intopalo.com>
Change-Id: I6562433c0a38d6ec49ab675e0f104f2665f3392d
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-08-30 06:48:33 +00:00