Commit Graph

2296 Commits

Author SHA1 Message Date
Laszlo Agocs
f1a23a5467 Basic Vulkan enablers
For Android, Windows and xcb. Verified on Win10 with NVIDIA, Win10
with AMD, Android with Tegra K1, Android aarch64 with Tegra X1, and
Linux aarch64 with Tegra X1 (Jetson TX1, L4T).

Introduce QPA-based Vulkan library loader, core function resolver, and
instance creation support. In addition to creating a new VkInstance,
adopting an existing one from an external engine is supported as well.

The WSI specifics are hidden in the platform plugins. Vulkan-capable
windows use the new surface type VulkanSurface and are associated with
a QVulkanInstance.

On Windows VULKAN_SDK is picked up automatically so finding vulkan.h
needs no additional manual steps once the LunarG SDK is installed.

[ChangeLog][QtGui] Added support for rendering to QWindow via the Vulkan
graphics API.

Task-number: QTBUG-55981
Change-Id: I50fa92d313fa440e0cc73939c6d7510ca317fbc9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2017-03-17 16:12:03 +00:00
Liang Qi
0c034a649f Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
	src/widgets/widgets/qpushbutton.cpp

Change-Id: I615de00e6e64540c50f658d4d8ab3e002d701a81
2017-03-14 10:52:24 +01:00
Kai Koehne
032d402485 mkspecs: Replace LGPL21 with LGPL license header
Also use canonical contact url.

Change-Id: I04c403f81bb8a8d6d6222573030d1e6d09ec4c3d
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2017-03-03 07:26:43 +00:00
Liang Qi
71264bae08 Merge remote-tracking branch 'origin/5.9' into dev
Change-Id: I84097f8e7b3b2128028bd7693c913d6968b82bfe
2017-03-02 09:04:38 +01:00
Liang Qi
de49839df8 Merge remote-tracking branch 'origin/5.8' into 5.9
Conflicts:
	mkspecs/features/moc.prf

Change-Id: Ia71c8e3b3185f7c999bf226d0675051b10b8740b
2017-02-24 20:01:42 +01:00
Thiago Macieira
6282948e96 Add CONFIG += no_moc_predefs to allow one to escape problems
Sometimes, users need to add compiler flags to QMAKE_CXXFLAGS that
aren't supposed to be passed to the predefs dump. That's especially true
for -include options, as that would change completely what's
defined. Not to mention that -include is a preprocessor option and
shouldn't be in CXXFLAGS in the first place (Automake has CPPFLAGS, but
qmake only has INCLUDEPATH and DEFINES).

[ChangeLog][qmake] Added the ability to suppress the collection of the
compiler predefined macros for moc's use. To disable the collection, use
CONFIG += no_moc_predefs.

Task-number: QTBUG-58857
Change-Id: I4139d5f93dcb4b429ae9fffd14a34d49825d9b85
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-02-23 07:51:50 +00:00
Oswald Buddenhagen
421bbefb9d configure: fix 'use' for detecting static libraries
these statements are assumed to provide dependencies for the currently
detected library. this implies that their resolved content must be
passed to the linker after the to be detected static library.

Change-Id: Ifaaee2ac71bf176e8a0033765fb979fe119deaba
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-02-22 07:47:02 +00:00
Oswald Buddenhagen
fcf0aee044 configure: make it possible to make 'use' conditional
Change-Id: I8390634c5b23bf34692b4f532ab00a7aba690037
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-02-22 07:46:59 +00:00
Oswald Buddenhagen
52b260fb0f configure: support using libraries by their exported name
Change-Id: Ibe43c587e83e679baa5f0fc91f452ee06c1e293f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-02-22 07:46:55 +00:00
Oswald Buddenhagen
8ccb46d80e configure: fix cross-module library uses
this went unnoticed, because the only cross-module 'use' so far is that
of egl, for which the code path provided for modular builds happens to
(mostly) work due to the specs already providing the library definition.

amends cc842ca4.

Change-Id: I58c638d896eabd26f27d5cd90e3a7f8eeece9bc0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-02-22 07:46:50 +00:00
Oswald Buddenhagen
2408166f5a clash-check configure sub-config names
we derive the keys from the last fragment of the parent directory, which
is potentially not globally unique.

Change-Id: I57cf13394984e6e3d902c0f1bb495bd3920bfc75
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-02-22 07:46:45 +00:00
Oswald Buddenhagen
0f16ac3d64 configure: propagate errors from libraries' transitive dependencies
if a library uses another library which happens to be absent, then the
former must also fail.

amends cc842ca4.

Change-Id: I91f157a6d1ed40b66e196340a282ebe493fcf40e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-02-22 07:46:39 +00:00
Oswald Buddenhagen
632b1c1345 configure: error out on activating conflicting libraries
Change-Id: I5d7dbeb3b3a653f7151279c7eba9387c107f9c42
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-02-22 07:46:35 +00:00
Oswald Buddenhagen
59a3abd1f1 configure: generalize command line overrides of library parameters
the outdated ones remain for backwards compatibility; some remain
unchanged.

Task-number: QTBUG-30083
Change-Id: Ia596b854d26b00fcb4f48df0da7ad893650ac1c8
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-02-22 07:46:25 +00:00
Oswald Buddenhagen
5f20954291 add configure -list-libraries
currently mostly for debugging purposes (especially with -verbose).

Change-Id: I8af32c61df0b19861aa79bc4bbdd3f6095dbe9b7
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-02-22 07:46:11 +00:00
Oswald Buddenhagen
7509ccc0f7 add configure -list-features
also actually deletes qfeatures.txt, which was already claimed by
a668c6a6, but not actually done.

Task-number: QTBUG-58411
Change-Id: I686760632fee7c10b01bd2e83f2481b01bc2b774
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-02-22 07:46:05 +00:00
Oswald Buddenhagen
4f2a571f09 fix usage of "empty" libraries
a header-only library in a default location would produce no variables
at all, making it appear undefined. fix this by forcing the writeout of
the QMAKE_LIBS_* variable, and use its definedness (rather than
non-emptiness) as a signifier.

this works for both QMAKE_USE and configure tests'/libraries' 'use'
entries.

Change-Id: Id7a1e23725caba1a91ea4db448b4aeb7fe632393
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-02-22 07:45:52 +00:00
Oswald Buddenhagen
980daa49b2 prefer library's export name when looking up input variables
if multiple library entries provide the same export (as openssl is going
to), it makes sense to make them recognize the same input variables, as
it would be rather counterproductive to require different configure
arguments for each.

Change-Id: Ia32842e95294296d50220297f85689bc92de2d05
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-02-22 07:45:46 +00:00
Oswald Buddenhagen
4a93adba60 configure: refactor qtConfExportLibrary()'s interface
pass the library name instead of a library source object.
improves overall legibility at a marginal runtime cost.

Change-Id: I248ee9622af2b2c37daa2dbc0cc0bca5701d7925
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-02-22 07:45:42 +00:00
Thiago Macieira
0f1b6acab7 x86: Add detection of the AES and SHA New Instructions
The AES instructions were first introduced with the Westmere shrink
(22nm) of the Nehalem architecture. The SHA instructions are still
pending on Intel architecture, but is available on AMD family 17h (gcc
argument -march=znver1).

Both features operate on SSE registers, so that's why the MSVC command-
line argument is the SSE2 one and the configure-time tests depend on
features.sse2.

The qmake feature names end in "ni" because "aes" and "sha" are too
simple and could clash with other uses. The QT_COMPILER_SUPPORTS_ macro
doesn't have the "NI" suffix because it has to match the GCC/Clang
predefined macro.

Change-Id: I445bb15619f6401494e8fffd149dbd1f862ff51c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2017-02-21 23:48:30 +00:00
Thiago Macieira
370bfc0b0d Disable optimizations for macx-icc debug
icc defaults to -O2, so this was causing debug code to be built like
that, making debugging very hard. This change also hardcodes -O2 for
release builds, just in case.

Change-Id: Ibc5c715fda334a75bd2efffd14a478ce539a3a3f
Reviewed-by: Robert Pancoast <RobertPancoast77@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-02-21 23:42:05 +00:00
Thiago Macieira
53139a8c0a Remove alias options from linux-icc/qmake.conf
They are the default with icc.

Change-Id: Ibc5c715fda334a75bd2efffd14a478c20b527d7c
Reviewed-by: Robert Pancoast <RobertPancoast77@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-02-21 23:41:39 +00:00
Robert Mancoast
b5a7746571 linux-icc-k1om build
Change-Id: I6262b14640118482621c95c3988c068cf72271d8
Reviewed-by: Robert Pancoast <RobertPancoast77@gmail.com>
Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
2017-02-21 14:27:16 +00:00
Allan Sandfeld Jensen
925a3c6529 Use native support for fp16 where available
Use F16C or ARM FP16 if available at compile time.

Configure check added because older clang compilers have F16C defines
and flags but not all the intrinsics.

Change-Id: I71f358b8fd003e70ab8fcf35097414591e485112
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-02-16 12:03:45 +00:00
Liang Qi
27432d40f2 Merge remote-tracking branch 'origin/5.8' into 5.9
Change-Id: I2bd2e61bae1eab4fc74fa6accd741ed9ae1f0669
2017-02-14 11:33:02 +01:00
Julien Gueytat
aa1631d76c Replace gstrip by strip due to ELF corruption
This is an old error of the gstrip binutils. The bug has been corrected
and re-introduced.

The command *elfdump -d xxx* on the ELF does bring lines like those :
.SUNW_syminfo: invalid sh_info: 0

Task-number: QTBUG-58814
Change-Id: I330c4031dcf4ba64297df4b333b41cf0a003914f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-02-13 20:06:53 +00:00
Thiago Macieira
b2ffc4d0a0 moc: remember to quote the path to moc_predefs.h
Task-number: QTBUG-58764
Change-Id: I4baef2edf7624ad69d96fffd14a22209a2bb90be
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-02-12 18:10:36 +00:00
Julien Gueytat
6c8aabbe52 Remove out of date comments related to Xorg and GCC
Task-number: QTBUG-56293
Change-Id: I8d2245755d08b528e2041a16aabb390f3796e545
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-02-08 23:41:35 +00:00
Julien Gueytat
5f8fc8395f Remove _XOPEN_SOURCE=500 -D__EXTENSIONS__
The value _XOPEN_SOURCE=600 should be used for C99 as we compile at
least with C++11. By doing so the compilation reaches another error in
a third library. Simply removing the option makes the compilation
working normally.

Task-number: QTBUG-56293
Change-Id: Ie040325936591958d05cc0a2d43643fa5d0c43b5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-02-08 23:41:29 +00:00
Julien Gueytat
91f8a41404 Complete solaris.conf following linux.conf template
Task-number: QTBUG-56293
Change-Id: I9e0240b3d4766f5c740a044d6eff44d21b340dc0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-02-08 23:41:24 +00:00
Julien Gueytat
9d6d9984f5 Update Solaris include path and library path
The path match OpenIndiana distribution based on Illumos.

Task-number: QTBUG-56293
Change-Id: I44e7defa63809dc4f413b46329481b53e5e74c30
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-02-08 23:41:18 +00:00
Julien Gueytat
ba43ecade3 Move configuration into includes
Use of gcc-base.conf, g++-base.conf files and creation of solaris.conf.
The content of solaris.conf should follow the content of linux.conf.

Task-number: QTBUG-56293
Change-Id: I59cf9efa82ab0a2b22ea1a58f6339280460e5f92
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-02-08 23:41:11 +00:00
Oswald Buddenhagen
9e579f64d7 don't litter configure test build dirs with .qmake.cache files
there should be only one, at the level of the isolating .qmake.conf.

Change-Id: I25f05864d6f5c1bb5caf2fb4138adb4bb9cc2f22
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-02-08 23:39:36 +00:00
Liang Qi
dd756011da Merge remote-tracking branch 'origin/5.8' into 5.9
Conflicts:
	configure.json
	mkspecs/win32-icc/qmake.conf

Change-Id: Ibf40546b024d644c7d9ed490bee15b82597f4d3f
2017-02-08 15:49:18 +01:00
Thiago Macieira
e6a67bb9ec Update the mkspec for win32-icc to use the MSVC config files
Change-Id: Ib57b52598e2f452985e9fffd1458a6b534111c23
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-02-08 00:02:41 +00:00
Oswald Buddenhagen
2982d327f7 adjust configure to native build optimizations
don't fail to set up cross_compile early enough. otherwise, we'd
populate the cache for target builds with data for the host.

amends 6b8666c7 and 5060740f.

conversely, pass on extra flags to configure tests when not cross
building.

amends d8be8110 (and 2c5eb3e6).

Task-number: QTBUG-58556
Change-Id: I531d71e06204a0b17ae6dabf017a52e0f2efd9a7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-02-06 16:34:22 +00:00
Oswald Buddenhagen
4e5b013e32 stop exporting QT.*.{libexecs,plugins,imports,qml} in module pris
these are not referenced anywhere, and neither should they, as they are
not relevant to _using_ these modules in any way.

notably, QT.*.bins remains exported - this is because dlls reside there,
so it is necessary for setting up a launch environment.

Change-Id: I7a33c72be6e4789ea29a2fbbcac9588213900b6e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-02-06 16:33:25 +00:00
Oswald Buddenhagen
f8607045c4 stop exporting QT.*.{MAJOR,MINOR,PATCH}_VERSION in module pris
the only users of module versions in the first place are found within
qt's own prfs; even qbs' qt module importer ignores them. but arguably,
the information makes sense.

however, exporting the same barely useful information redundantly is
plain over the top, so remove the pre-split representation.

Change-Id: Iaee69c86d8b7c8b8ef4f3580b8da333aeb8ade2c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-02-06 16:33:18 +00:00
Oswald Buddenhagen
8286399b9e fix installation of header-only frameworks
in a framework build, the headers are inside the "library", so it's
obviously not very wise to suppress its installation on the basis of
it not being there.

Task-number: QTBUG-57656
Change-Id: I026a3e486a2aad6ee0b8e0d264af4385af945e42
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Harald Fernengel <harryf@gmx.com>
2017-02-02 16:09:35 +00:00
Oswald Buddenhagen
dcd5cb9736 Merge remote-tracking branch 'gerrit/dev' into HEAD 2017-02-01 21:00:55 +01:00
Jian Liang
015b53e9b4 Turn on -utf-8 compiler option for msvc2015 update 2 and up
Building qt with msvc would fail with the -developer-build configure
option turned on under simplified chinese locale.
This is because msvc will emit warnings for source files with utf-8
characters which are not representable in CP936, and -developer-build
implies treating warnings as errors.
This patch turn on -utf-8 compiler option for msvc2015 update 2
and up only for building qt.

Task-number: QTBUG-58161
Change-Id: If38ea11eb1f39f8e08efa1cccb92e0eea50daf92
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-02-01 15:04:02 +00:00
Laszlo Agocs
fa8edcba0d Fix Android deployment for 64-bit targets
Match the logic that is used for building.

Change-Id: I9ce6db2357b9b3e19a1e932fae57d376aae406f7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2017-02-01 09:06:42 +00:00
Thiago Macieira
796517b589 win32/default_pre.prf: remove unused incremental_off CONFIG
Nothing uses this and there's no incremental_off.prf since the MSVC6 purge
in 99f390f9 (dec 2009).

Change-Id: I2bc52f3c7a574209b213fffd149b4bf378805969
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-01-31 23:14:28 +00:00
Thiago Macieira
b9e82f206c Mark Clang 4.0 as warning-free
Change-Id: If337c17c98844a98b196fffd146e63c38ce1ee7b
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-01-31 23:13:44 +00:00
Thiago Macieira
b7247ac945 linux-icc: Remove -falign-functions=16
There's no reason to have that. Let the compiler decide whether it wants
to align or not. Current versions seem not to want to align beyond
multiple of 2.

Change-Id: Iab7c358838e1487387a2fffd149d73e0a218d3c2
Reviewed-by: Dominik Haumann <dhaumann@kde.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-01-31 19:55:07 +00:00
Kimmo Ollila
60f48dd09a Remove -uvfd flag on INTEGRITY
The uvfd flag is implicitly defined when -Olink is used.
This causes the compiler to generate a warning for every
file being compiled in release mode.

Change-Id: I75759151864da7cf2f6d9c812e466a52c1208444
Reviewed-by: Nikola Velinov <nvelinov@ghs.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-01-31 09:27:53 +00:00
Jake Petroules
ad4f7b59ea Fix iOS build
This fixes a regression introduced in the merge 318b5856.

Due to the removal of actual simulator_and_device in 5.8 (397f345a6),
conditions using it have become meaningless.

Task-number: QTBUG-58440
Change-Id: I9f874f9f85efa590c40602dbcd07793ff17d35f5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
2017-01-30 17:31:28 +00:00
Liang Qi
246799d8a7 Merge remote-tracking branch 'origin/5.8' into dev
Conflicts:
	examples/network/network-chat/peermanager.cpp
	src/widgets/util/qsystemtrayicon.cpp
	src/widgets/util/qsystemtrayicon_qpa.cpp
	src/widgets/util/qsystemtrayicon_win.cpp
	src/widgets/util/qsystemtrayicon_x11.cpp

Change-Id: I1c026df83818c0ccaf956980370e7522960627db
2017-01-30 12:46:20 +01:00
Jake Petroules
944110089d Build Qt libraries with -fapplication-extension
This ensures at compile-time that Qt libraries do not use any APIs that
are not safe for use in application extensions, and fixes warning
messages that appear when linking to Qt libraries that are not built
with this flag, when used in an application extension.

This is especially important on watchOS where *all* "applications" are
actually application extensions, and on other Apple platforms if
application extensions are developed using Qt.

Task-number: QTBUG-40101
Change-Id: I022046f2584e0222253d33052b0abc221d7c93d6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-01-27 22:10:01 +00:00
Allan Sandfeld Jensen
099f286870 Fix MIPS DSP configuration
The patch fixes a number of bugs in code, and removes dead logic
clarifying that MIPS DSP, like ARM NEON, has no runtime detecton.

Change-Id: If2f4eea68da5b2eaa80b8e9c8258206d8c1b7173
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-01-27 15:08:57 +00:00