Commit Graph

1997 Commits

Author SHA1 Message Date
Oswald Buddenhagen
45e4dfb449 qmake: rewrite msvc/nmake cross-build environment setup
rather than reproducing vcvarsall.bat's functionality as hard-wired code
in the nmake generator, just invoke the actual script from
toolchain.prf. this is much easier, more future proof, and - critically
- makes the detected variables available to configure's new library &
header search facilities.

[ChangeLog][Important Behavior Changes][qmake][WinRT] Cross-builds will
now ignore pre-set values of %INCLUDE% and %LIB% when building target
executables. If necessary, use configure's -I and -L switches when
building Qt, and pass QMAKE_INCDIR and QMAKE_LIBDIR on qmake's command
line when building own projects.

Change-Id: I36f53e8880d6523f3f6f7a44d40d87d04bd06854
Reviewed-by: Thomas Miller <thomaslmiller91@gmail.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-01-05 20:33:24 +00:00
Oswald Buddenhagen
ef14c3dc1a qmake: reshuffle toolchain.prf
swap the order of compiler version detection and default path detection.
this keeps a subsequent commit smaller, which introduces a dependency
between the two.

Change-Id: I2d4cbee1fd3555411c18833bbee0201c994a9942
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2019-01-05 20:33:14 +00:00
Liang Qi
03039979b5 Merge remote-tracking branch 'origin/5.12' into dev
Also blacklist tst_QRawFont::unsupportedWritingSystem() and
tst_QGlyphRun::mixedScripts() on windows for now.

 Conflicts:
	qmake/generators/makefile.cpp
	src/corelib/itemmodels/qstringlistmodel.cpp
	src/platformsupport/fontdatabases/windows/qwindowsfontengine_p.h
	tests/auto/corelib/itemmodels/qstringlistmodel/tst_qstringlistmodel.cpp
	tests/auto/gui/text/qglyphrun/BLACKLIST
	tests/auto/gui/text/qrawfont/BLACKLIST

Task-number: QTBUG-72836
Change-Id: I10fea1493f0ae1a5708e1e48d0a4d7d6b76258b9
2019-01-04 07:33:14 +01:00
Tor Arne Vestbø
5af60d3b37 macOS: Prevent checking for stale SDK without the required SDK name
There's no need to check the SDK at the root exclusive-build Makefile,
we can leave it to the individual build passes where the SDK variable
is available.

Fixes: QTBUG-72449
Change-Id: Ic829babf4c76e6d20812de0b94120199ebfb300c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-23 11:58:48 +00:00
Oswald Buddenhagen
e0926ca426 qmake: remove support for pre-5.6 qt module pris
it seems rather obsolete by now.

Change-Id: I43a84367fbe9f82c3adc0e3825d14198e69eaa1f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-20 21:01:16 +00:00
Oswald Buddenhagen
49c8595bf8 qmake: fix typo in function name
Change-Id: Ie88ae0f13be83d6e63078eeb359d9ddf012c94fb
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-20 21:01:11 +00:00
Oswald Buddenhagen
98689cd2f9 configure: enable inline tests to refer to PWD
... and use that to inline the xlocalescanprint test.

Change-Id: I0973133d7f9ecc9a38b70dc4b83df174a35b2b1f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-19 19:22:10 +00:00
Oswald Buddenhagen
73b8769730 configure: enable inline tests to contain auxiliary files
... and use that to migrate the pch test.

Change-Id: I2ce884442cab6124c37142f571cf6f82191ee4f5
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-19 19:22:06 +00:00
Oswald Buddenhagen
6b39d51a2c configure: enable sharing of inlined source code between tests
this is implemented by means of (multiple) inheritance, which applies
specifically only to the inlined source and header list, but not to
library sources or dependencies.

Change-Id: I8f1d5b34d1d2d12e39225dc50357ad6ec648c6b6
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-19 19:21:54 +00:00
Oswald Buddenhagen
a8207699ce configure: normalize dashes to underscores in exported libraries
it works without it, but technically speaking it's undefined behavior.

Change-Id: Icdcdd5b923ce4cecd9dc9e75f9d5d66d0fa8a032
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-19 19:21:49 +00:00
Oswald Buddenhagen
32aa6734d4 configure: add support for multiple libdirs in inline library sources
while the command line doesn't actually permit it (that can be
re-evaluated separately), derivatives of the inline source type may want
to inject additional paths, as is the case with opcua.

the incdir field supports multiple entries without additional action.

Change-Id: I3860ca1fc8fab25c04eb63bdb2f855b77ff3b9a4
Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-19 19:21:41 +00:00
Kai Koehne
5fd48d78d5 Bump copyright year to 2019
Task-number: QTBUG-72635
Change-Id: Idc9bd97fe873b332d7ff72cb44a00334a472404f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2018-12-18 07:51:10 +00:00
Oswald Buddenhagen
cf51bcba10 configure: allow libraries to create explicitly empty tests
this allows compile-testing the specified headers with no further tests.

Change-Id: I268ff328deee221d9b92386fe2bd133b19a6f8e2
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-12-17 21:29:51 +00:00
Oswald Buddenhagen
bd05a009f0 configure: add "we mean it" blurb
like all qt_*.prf files (exceptions prove the rule), the configure
system counts as private api.

Change-Id: Iea3057445e430029ecd8449e604e2d5c499ae10a
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-12-17 21:28:59 +00:00
Qt Forward Merge Bot
4b04e47be9 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: Iad06d8c07dfc288c9d1a9f7ee3520285cea60546
2018-12-15 01:00:31 +01:00
Oswald Buddenhagen
e80bf655e9 configure: verify header presence against sources
in addition to the actual library resolution, also resolve the headers
belonging to the library, to validate the include path, and possibly
ensure that the right version of the library is present.

the "include" entries were moved out of the "test" objects, and renamed
to "headers". this cleanly permits libraries without compile tests.

the headers were not put into the sources, because the variance among
the includes is generally orthogonal to the variance among the
libraries.

note that this - like the library resolution - provides no support for
darwin frameworks. consequently, the opengl libraries are excluded from
the conversion on darwin.

similarly, wasm is excluded (centrally), because emcc is magic and would
need advanced wizardry to be dealt with.

Change-Id: Ib390c75371efa2badcfec9b74274047ce67c3e5a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2018-12-14 23:44:30 +00:00
Thiago Macieira
e9c08f8287 Mark ICC 18 & 19 as warning-free
Change-Id: I052407b777ec43f78378fffd15311de83f978817
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
2018-12-14 18:25:46 +00:00
Friedemann Kleint
a8cb177d31 Fix build with win32-clang-msvc and win32-icc
fbbe8aba9d introduced a check for
MSVC_VER to qmake, which is not set in win32-clang-msvc,
causing the build to fail:

Mkspec does not specify MSVC_VER. Cannot continue.
Unable to generate output for: .../config.tests/verifyspec/Makefile

Extract a minimal msvc-based-version.conf which determines
MSVC_VER from QMAKE_MSC_VER for win32-clang-msvc and win32-icc.

Task-number: QTBUG-63512
Change-Id: Ia6de8c4b1aae2ae1962cf4e60e3e6d51fdbbbabe
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-12-14 18:20:26 +00:00
Oswald Buddenhagen
852b1afa56 qmake: don't misuse cache()
... when QMAKE_DEFAULT_{INC,LIB}DIRS cannot be determined.

it would have been nicer to actually persist empty results, but cache()
won't do that, and fixing it doesn't seem worth the effort now.

Change-Id: I95d5645e40a0da572f0def16462703373eaeb804
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-14 17:57:20 +00:00
Oswald Buddenhagen
74cdd89e0f qmake: don't assign fallbacks for QMAKE_DEFAULT_{INC,LIB}DIRS in x-builds
these cannot be possibly correct, and might mislead.

Change-Id: Ie10531807978def04768e2429304949415cafb2a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-14 17:57:11 +00:00
Daniel Wingerd
27d3c14ab6 qmake: enable rtti config option for g++/clang
Fixes: QTBUG-26595
Change-Id: Ic996c8e27ef4b79c91c5afa0ad55ef0fc07b6004
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-12-13 20:51:39 +00:00
Qt Forward Merge Bot
ad4f359f80 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I0fe623517af28e408b642c879efd59f633ab63ac
2018-12-13 01:00:11 +01:00
Oswald Buddenhagen
69f6d3bd44 configure: fix $$qtConfFindInPath() on windows
uses of this function (or the "files" stanza in configure.json) which
don't explicitly target windows don't specify the .exe extension, so we
need to add it automatically if it's missing.

Task-number: QTBUG-57436
Change-Id: I1994378399bc3466c32ee065e752516f42652975
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-12 17:35:27 +00:00
Oswald Buddenhagen
bccb964b9a escape literal backslashes in qmake files
Task-number: QTBUG-70765
Change-Id: I56abbf19be88d01b2964980fb741567f28e4f0fa
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-12 17:24:39 +00:00
Ville Voutilainen
76f11b0eda Silence GCC 9 warnings
Change-Id: I5654881a3adac6f67a38837321c8e1c3ce1e2d8f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-12-11 17:57:32 +00:00
Qt Forward Merge Bot
a2fd99c430 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I91e684e74c36467efda8ded6ed19791baa0c1a1f
2018-12-11 01:00:13 +01:00
Richard Moe Gustavsen
826b09f0c5 Fix build of static plugins with resources
This patch reverts 388c4ef9f7. The reason is that it generates a symbol
(resource_init_function) based on the name of the pro-file. But if different
plugins are built from a pro-file with the same name, you end up linking in
many symbols with the same name as well. Which one that ends up being used at
runtime will typically depend on the linking order of the plugins.

This problem will happen if you build an app for iOS that uses both controls 1
and controls 2. In that case, both QML plugins are built from a "controls.pro"
file. At runtime, only one of the plugins will be imported correctly.

This patch therefore reverts 388c4ef9f7, but at the same time, to not
re-introduce the problem it fixed, we instead genereate both a debug and release
version of the plugin_resources.cpp file. That way we can still depend on the
TARGET variable for generating both the resource_init_function symbol and the
cpp file.

Fixes: QTBUG-62647
Fixes: QTBUG-71386
Fixes: QTBUG-72108
Change-Id: I3d8c53132458b30ed9f47a259f1f8e4fa4d44130
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-12-10 12:18:52 +00:00
Qt Forward Merge Bot
fc11604964 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I10ae61ec6867b38601d85d6fc34e1f6a6ba0cc11
2018-12-09 01:00:43 +01:00
Qt Forward Merge Bot
f8c5c13564 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: Ied1194730e75a6f30839bbf5429aa2699230288e
2018-12-08 01:01:00 +01:00
Oswald Buddenhagen
33276e1cf1 add support for transitive deps to QMAKE_USE
we already knew the dependencies (as they are declared in the json
files), but failed to export them in any way, which made linking against
statically built external deps which have deps in turn fail (unless the
project happened to pull in the dep anyway, as is the case with qtcore +
zlib).

the previous assumption was that the USE-able library objects would be
self-contained, but that is conceptually unclean. instead, properly
export the raw dependencies and resolve them only in qmake_use.prf.

note that pkg-config produces self-contained output, so we need to
actively subtract the dependencies we know.

Change-Id: I4b41a7efc05bbd309a6d66275d7557a80efd5af4
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-12-07 23:48:11 +00:00
Oswald Buddenhagen
d941ebc150 qmake: fix QMAKE_DEFAULT_LIBDIRS detection for android on windows
clearly, nobody told clang that on windows you're supposed to use
semicolons instead of colons to separate elements of a path list ...

Fixes: QTBUG-72268
Change-Id: Ia7adc8de3bca586d4c15b069cb04e4cb647ae823
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-07 23:47:45 +00:00
Kyle Edwards
eda28621f6 Add support for linking against static builds in CMake
This change reinstates functionality that was removed in
commit 102e1822ff. However, it
differs from the original implementation in several ways:

* It uses the QMAKE_PRL_LIBS variable, replacing whitespace with
  semicolons, rather than using a dedicated QMAKE_PRL_LIBS_FOR_CMAKE
  variable.
* More importantly, it parses the -L and -l flags and uses CMake's
  find_library() command to look for the libraries in the specified
  search paths, and then converts them to absolute paths. This is the
  same approach that CMake's own FindPkgConfig module uses to find
  libraries specified in this form. Any other flags not of the form
  -L or -l (for instance, -s flags passed to Emscripten) are added to
  the new INTERFACE_LINK_OPTIONS target property if the CMake version
  is 3.13 or newer.

The original implementation of this functionality was removed because
of the lack of absolute library paths. At the time, it was believed
that qmake would have to be modified to do its own equivalent of
find_library() to get the absolute paths to the libraries. However,
the approach taken by FindPkgConfig has proven robust enough to be
used here, allowing CMake to find the absolute paths to the libraries
without having to modify qmake.

[ChangeLog][CMake] Added support for automatic linking of transitive
dependencies in static builds

Fixes: QTBUG-38913
Change-Id: I7d9cdb0d339c6ef697b04099d129481c770fc0fc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-12-07 21:06:53 +00:00
Liang Qi
153726bc16 Merge "Merge remote-tracking branch 'origin/5.12.0' into 5.12" into refs/staging/5.12 2018-12-07 20:55:07 +00:00
Oswald Buddenhagen
90507f53c0 configure: query pkg-config for deps of static libs
note that pkg-config is a tad stupid: it won't tell us if the package is
built statically, but one needs to explicitly ask it to output
transitive deps for static packages. we can do that, as we resolve the
pkg-config output to actual libraries, so we know if they are static.
always asking it would print the transitive deps also if we found a
dynamically linked library, which would inappropriately extend the link
interface. the latter actually happens on windows (because we can't
easily tell apart real static libs from import libs), but that doesn't
matter, as under windows, the linker transitively resolves dlls anyway.

Change-Id: If1be3b3df476374d5c8e62f4b185477c988223b3
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-07 15:20:30 +00:00
Qt Forward Merge Bot
aec026fe1e Merge remote-tracking branch 'origin/5.12.0' into 5.12
Change-Id: I54b4c14bed5150d3034ac87907a09254fd78face
2018-12-05 09:18:01 +01:00
Sergio Martins
0669cafac7 Enable Werror for clang 7.0 too
Change-Id: Idc8d39d198500632cfb7a3ec6b471ba6ec1ce4ee
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-12-05 00:02:12 +00:00
Liang Qi
5d5c00c676 Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
	src/gui/painting/qdrawhelper.cpp

Change-Id: I4916e07b635e1d3830e9b46ef7914f99bec3098e
2018-12-04 09:58:43 +01:00
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
Tor Arne Vestbø
2aef845c03 macOS: Don't link to debug versions of frameworks unless requested
The failure mode of this behavior is worse than the surprises that the
non-explicit library dependency chain has, so it should be opt-in.

This reverts back to the behavior in Qt 5.11, but lets our tests
opt in to the feature.

Fixes: QTBUG-71724
Change-Id: Iede11f02d978b637324ddf71d29e7c99fe3ee99f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2018-11-27 07:53:42 +00:00
Qt Forward Merge Bot
ec5e692c1c Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I04afffdce6b78856d0301eb583f21d334c7466b0
2018-11-27 01:00:36 +01: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
Liang Qi
bf58c70546 Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
	src/corelib/io/qdir.cpp
	src/corelib/kernel/qtimer.cpp
	src/corelib/kernel/qtimer.h

Done-With: Edward Welbourne <edward.welbourne@qt.io>
Change-Id: I683d897760ec06593136d77955f8bc87fdef3f9f
2018-11-22 01:53:29 +01: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
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
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
Joerg Bornemann
6e34552638 Enable users to specify WindowsTargetPlatform[Min]Version in VS projects
[ChangeLog][qmake] Introduced the variables
WINDOWS_TARGET_PLATFORM_VERSION and
WINDOWS_TARGET_PLATFORM_MIN_VERSION for overriding the default values
of WindowsTargetPlatformVersion and WindowsTargetPlatformMinVersion in
Visual Studio project files.

The code to determine the default values is moved to qmake feature
files. A common/windows-desktop.conf file is introduced for variables
common to all non-UWP Windows mkspecs.

The package_manifest feature uses WINDOWS_TARGET_PLATFORM_VERSION as
default value for WINRT_MANIFEST.minVersion, and
WINDOWS_TARGET_PLATFORM_MIN_VERSION for
WINRT_MANIFEST.maxVersionTested respectively.

Task-number: QTBUG-53654
Change-Id: I251ec7f9b804c9bc9f7d571f5b43d52b2a2d99d3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-11-16 10:55:16 +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
Liang Qi
58437fb125 Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
	src/corelib/serialization/qcborcommon.h
	src/corelib/tools/qlocale_data_p.h
	tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp

Done-with: Edward Welbourne <edward.welbourne@qt.io>
Change-Id: Ibed987f6d77a0294f78f67d78625237616082416
2018-11-10 11:38:40 +01: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
Robert Loehning
cc9645f11b configure: Add switch for adding coverage info
Change-Id: If6f3d4f29233206ef911f48e63872d28bf7b8e71
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-10-31 15:08:59 +00: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
Liang Qi
e28e91ae99 Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
	src/corelib/animation/qpropertyanimation.cpp
	src/gui/image/qicon.cpp
	tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp

Change-Id: I3698172b7b44ebb487cb38f50fd2c4a9f8a35b21
2018-10-25 07:21:53 +02: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
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
Martin Smith
eeb6ceb192 Revert "qdoc: Add default include dirs to qdoc command line"
This reverts commit 4bdd8d4eca.

It contains an error.

Change-Id: I51052029f001b9e82c2a53de15b4ba354aafdbae
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2018-10-09 10:12:48 +00:00
Liang Qi
7344987c20 Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
	src/widgets/styles/qstylesheetstyle.cpp

Change-Id: I3a503b44ae413fbc0a90f4af70b8f84daffd86ad
2018-10-08 10:56:25 +02:00
Johan Klokkhammer Helsing
a8148e5157 waylandscanner: use --include-core-only
In order to ship our own version of wayland.xml protocol code we need
to get rid of all includes of system versions of
wayland-client-protocol.h and wayland-server-portocol.h.

These were unfortunately included by wayland-client.h and
wayland-server.h and now can't be removed because of compatibility
issues. To solve this, wayland-client-core.h and wayland-server-core.h
can be included instead, which don't include any generated protocol
code. Again, due to compatibility concerns, wayland-scanner does not use
these versions unless invoked with --include-core-only, which is what
this patch fixes.

Task-number: QTBUG-70553
Change-Id: Icf7c870bd4d5bf891628cbddce2a9de3dda50164
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2018-10-05 08:15:38 +00:00
Martin Smith
4bdd8d4eca qdoc: Add default include dirs to qdoc command line
This change applies to darwin. It adds each include path in the
QMAKE_DEFAULT_INCDIRS variable to the qdoc command line with the -I
flag for both the prepare and the generate phase. These include paths
provide access to the standard c++ and c headers, which clang needs
to see. This change should work on all platforms, but it increased
the qdoc warning count on the linuxsystem where it was tested, so
now it only applies to darwin.

Change-Id: I16e2e0d744e2cf68743dc12d39155dda2ece1536
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-10-05 05:15:06 +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
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
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
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
Oswald Buddenhagen
89f2a731cf qmake: add default path and version detection for ghs toolchain
Change-Id: Ic35f3e25078909e212864218835663989f647aae
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Nikola Velinov <nvelinov@ghs.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-08-17 15:07:00 +00:00
Oswald Buddenhagen
32b4cb1b54 qmake: remove pointless input redirections from compiler calls
Change-Id: I1b5d2b33ec62d24f1d6a9bd155bf3f28ab8bbf4e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-08-17 15:06:53 +00:00
Liang Qi
8559bf934d Merge remote-tracking branch 'origin/5.11' into dev
Conflicts:
	src/corelib/global/qconfig-bootstrapped.h
	src/plugins/platforms/xcb/qxcbbackingstore.cpp

Done-with: Gatis Paeglis <gatis.paeglis@qt.io>
Change-Id: I4af138ffb2f5306373244523768209e8873b2798
2018-08-16 18:48:59 +02:00
Oswald Buddenhagen
9742ee681b configure: fix passing of -L and -F to configure tests
the global flags are deprecated in favor of per-library paths, but they
obviously should still work. but apparently no-one cares, because there
isn't even a bug report about it ...

amends 90eee08b3.

Change-Id: I85aee41ca11de1715d1c750ae8e663093e012fb7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-08-09 17:11:17 +00:00
Oswald Buddenhagen
133fb029a6 make it possible to override the basename of module config files
using qt$$MODULE isn't enough if the module is composed of submodules
which need the final module's headers, because that would require two
modules having the same module .pri file.

the first thought to fix this was to just use $$lower($$TARGET), but
that breaks for testlib (QtTest). while the config file name isn't
public api, it's included by a public header, so changing it is risky.

so instead stay with the original pattern, but make it explicitly
overrideable.

the cherry-pick is needed to support QtWebEngine 5.12 with Qt 5.11,
a requirement that was raised too late.

Change-Id: I758c46ed403620620d577ae16866ce751271b63e
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 95b0e4c956)
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-08-03 14:15:41 +00:00
Edward Welbourne
23c9d4c98f Merge branch '5.11' into dev
Conflicts:
	qmake/library/qmakebuiltins.cpp
	src/plugins/platforms/windows/qwindowstabletsupport.h
	src/plugins/platforms/xcb/qxcbconnection.cpp
	src/plugins/platforms/xcb/qxcbconnection.h
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/plugins/platforms/xcb/qxcbwindow.cpp
	src/widgets/styles/qstylesheetstyle.cpp
	tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp

Done-With: Gatis Paeglis <gatis.paeglis@qt.io>
Change-Id: I000b0eb3cea2a5c7a99b95732bfdd41507cf916e
2018-07-31 13:33:14 +02:00
Kai Koehne
01d2f35b69 qmake: Add support for running lrelease
CONFIG+=lrelease enables that all .ts files in
TRANSLATIONS or EXTRA_TRANSLATIONS are compiled by
lrelease.

EXTRA_TRANSLATIONS is a new variable that is only
processed by lrelease, but not lupdate - this
is useful for translation files that are supposed to
be empty, because they match the language of the
original translation sources.

If embed_translations is also set, the generated .qm
files will be made available through the Qt resource
system under :/i18n/. Alternatively, the user can
specify an installation target by setting
QM_FILES_INSTALL_PATH.

Note that relative paths in TRANSLATIONS are not taken
into account. That is,

  TRANSLATIONS = component1/de.ts component2/de.ts

will cause a conflict.

[ChangeLog][qmake] New CONFIG options lrelease and
embed_translations were added. CONFIG+=lrelease does
run lrelease on translation files listed in TRANSLATIONS
and EXTRA_TRANSLATIONS. CONFIG+=embed_translations does
include the generated .qm files as resources under
:/i18n/.

Change-Id: I94db5b8431d07b24f59b2c332ede91450f9c0c58
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-07-28 14:43:28 +00:00
Oliver Wolff
92c5f3fb7b Add qt_test_helper feature
To avoid (even more) duplicated code, "qt_test_helper" ensures the
policy of putting a test's helper application next to the test's
own executable.
The helper executable is suffixed with "_helper" to avoid name
clashes with its folder.

Change-Id: Ic50cb1daa257e7ffc75440c10a3b90fd39424683
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-07-25 05:17:47 +00:00
Oliver Wolff
64d63d036c Change tests' default installation folder from TARGET to folder name
Instead of having tests installed into a folder named like their
target, we now use their source folder name for the installation.

An upcoming patch will rely on this behavior and simplify creation
of tests that need helper applications.

Change-Id: I17d9ff15edf502d82ab698627189532b83e72546
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-07-25 05:17:41 +00:00
Oswald Buddenhagen
9b48b3514f qmake: add line-based mode for .depend_commands
Task-number: QTBUG-48919
Change-Id: I6988fb2f26fd62ab40eb7392ccb0e033ad291fe6
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2018-07-23 17:39:21 +00:00
Oswald Buddenhagen
6bc6e6d388 qmake: skip license check while building qt
configure already does it for qt itself, so it's pointless to ever invoke
in default_pre.prf.

to make the exclusion work during the makespec reload during early setup,
we pull ahead the restoration of CONFIG, hoping it won't cause too many
side effects.
another change in qt5 will ensure that top-level builds are also covered.
finally, configure tests also need an explicit exclusion.

that way, attempts to re-configure build trees of commercial builds
after the day of the first configuration do not fail anymore.

Task-number: QTBUG-63452
Change-Id: I42264f64d7621784d4d67bde885a8e501f5ca413
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2018-07-20 18:07:48 +00:00
Tor Arne Vestbø
8316131dab macOS: Don't try to install lldb debug script unless the module provides one
Change-Id: Ib22d2fdca6a4819c1b4056e3207940ceebfbe365
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-07-20 06:40:05 +00:00
Jarek Kobus
ff18b02f21 uic: Revert the microoptimization patch introducing QStringLiteral
This reverts the following commits:
d12d2949d1
26c3bec09b
49b08f96e8

We can't easily predict all code paths for QDesigner
with such a microoptimization. We also don't want
to generate three different string constructions
depending on some sophisticated heuristics.

[ChangeLog][uic] The -no-stringliteral option is now deprecated and
UIC will not generate QStringLiteral anymore.

Task-number: QTBUG-65251
Task-number: QTBUG-51602
Change-Id: I34a5a1934a8df19c5c84ac2ba8e5168ce5665037
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-07-19 12:38:45 +00:00
Andy Shaw
3c2ffd7457 macOS: Use QMAKE_BUNDLE for the app part of the bundle identifier value
If QMAKE_BUNDLE is set then this should be used for the bundle
identifier value instead of the product name. This ensures that when an
application provisioning profile is used that it will correctly match
against it. This also brings it in line with the documented behavior.

Change-Id: I627d212f59d862e7a881941748db5ef98ab4f463
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-07-18 16:58:47 +00:00
Qt Forward Merge Bot
1783fca897 Merge remote-tracking branch 'origin/5.11' into dev
Conflicts:
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/xcb/qxcbintegration.cpp

 Conflicts git missed:
	src/plugins/platforms/qnx/qqnxglcontext.cpp

Change-Id: I0582cdc9e66e43efe79038b9c43d4f9572ac88fc
2018-07-17 10:19:22 +02:00
Oswald Buddenhagen
3303715099 configure: pull ahead gcc-sysroot processing
the sysroot flags need to be established even before setting up the
spec, because as soon as that happens, toolchain.prf will try to
determine the default paths and cache them.

this also fixes sysroot use in toolchain flag support tests, which run
(somewhat) independently from the toolchain setup.

Task-number: QTBUG-63483
Change-Id: I7be1540e766dac58fb16f63176aa8d2879b51ae0
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-07-13 11:09:07 +00:00
Oswald Buddenhagen
6d0878db1b configure: move qtConfTest_verifySpec() out of qt_configure.prf
the callback is specific to qtbase/configure.json, so it belongs into
qtbase/configure.pri.

amends d90db0f136.

Change-Id: I905f985e2d3d2e42c4587cbacdea8dc3eb09a5be
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-07-10 15:19:44 +00:00
Thiago Macieira
c3a4ec5d0b SIMD: Add a haswell sub-architecture selection to our support
As the comment says, Haswell is a nice divider and is a good
optimization target.

I'm using -march=core-avx2 instead of -march=haswell because the latter
form was only added to GCC 4.9 but we still support 4.7 and that has
support for AVX2.

This commit changes the AVX2-optimized code in QtGui to Haswell-
optimized instead. That means, for example, that qdrawhelper_avx2.cpp
can now use the FMA instructions.

Change-Id: If025d476890745368955fffd153129c1716ba006
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-07-09 00:18:24 +00:00