Commit Graph

3092 Commits

Author SHA1 Message Date
Liang Qi
947e1f45c7 Merge remote-tracking branch 'origin/5.14' into 5.15
Conflicts:
	tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp

Change-Id: Ifaa56153f5f0d687a6b4d94f84fcfa1e1751afd2
2020-03-31 12:30:18 +02:00
Kai Koehne
0b4ae8e682 MinGW: Fix build with -angle
Since Qt 5.14, debug libs for MinGW don't necessarily have a 'd' suffix anymore.

Fixes: QTBUG-83087
Change-Id: Ia9f499ebed05e96fb056134681a2124c2262fb08
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-03-27 15:34:12 +01:00
Lorn Potter
6434101360 wasm: refactor network to use fetch API
This has better support for threaded use, and gets rid of bind use.

This requires emscripten 1.38.37 and above

Task-number: QTBUG-76891
Change-Id: Ic30a6820c2ce945c314751c06cfc356914a71217
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-03-26 22:36:36 +00:00
Allan Sandfeld Jensen
f7f9977a6f Detect Visual C++ 2019 mode in clang_cl / intel_icl
Change-Id: Icdca1551a56e894f6266b33ac059bbbfa3b18453
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-03-25 19:07:04 +00:00
Morten Johan Sørvig
d00f28afda Revert "wasm: support emsdk >= 1.39.4"
This reverts commit bcdf49bcc6.

This was a 5.14-only commit which accidentally found its
way to 5.15.

Change-Id: Iaef6f05fce20ab61d3afb8cb3c359a037e4c0b28
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2020-03-24 21:50:55 +01:00
Kai Koehne
45a131d465 Fix whitespace in Qt5XXConfig files
Remove some unneeded empty lines, and fix indentation.

Change-Id: Ie35e95f35f9625cc75070074be96bdeb62d5fd4c
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-03-24 17:40:40 +01:00
Kai Koehne
99ace38d22 CMake: Also import Qt plugins that are not literally named *Plugin
There are some plugins in qtlocation, qtdeclarative whose names are not
suffixed with 'Plugin', so the current logic fails to load the
corresponding QtModule_XXX.cmake file.

Work around this by just searching for

  Qt5$${CMAKE_MODULE_NAME}}_*.cmake.

Users can define QT5_STRICT_PLUGIN_GLOB
or Qt5$${CMAKE_MODULE_NAME}_STRICT_PLUGIN_GLOB
to change back to the old behavior.

[ChangeLog][cmake] Fixed an issue where some Qt location and
declarative plugins whose name did not end with "Plugin"
where not imported by the corresponding Qt component package.

You can force the old behavior by setting QT5_STRICT_PLUGIN_GLOB or
Qt5ModuleName_STRICT_PLUGIN_GLOB before the find_package(Qt5 ...)
call.

Fixes: QTBUG-58812
Change-Id: Ic8adf9562841ed49eabc4f7fb2b5ae257ca606cd
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-03-24 17:40:40 +01:00
Mitch Curtis
3f744be923 Merge "Merge remote-tracking branch 'origin/5.14' into 5.15" 2020-03-23 13:55:35 +01:00
Lorn Potter
50c6882e9f wasm: Boost emscripten 1.39.8 as recommended
[ChangeLog][WebAssembly] Updated emscripten to version 1.39.8

Change-Id: I8d19f851eb0c0dd912792cee0db69e61cf4fd5f6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-03-23 03:29:41 +00:00
Mitch Curtis
69a5be7ef0 Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: Ib2a2e3a292af43be3a980c2ccc943c08f4bbf72f
2020-03-20 11:28:14 +01:00
Mitch Curtis
1480922511 Merge remote-tracking branch 'origin/5.14.2' into 5.14
Change-Id: I34ca28c75b88e882c3f35f182bf01acb22b77637
2020-03-19 16:10:31 +01:00
Fabian Kosmale
fd72ed794d Consider qml dependencies from qrc files in static builds
qmlimportscanner already has support for qrc files, however the rule in
qt.prf did not pass the required arguments to it so far. In combination
with the declarative registration of types, this broke static linking.

Fixes: QTBUG-82873
Change-Id: I4462645e0b353265f9953807dee73f94923dab9f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2020-03-18 13:23:24 +01:00
Qt Forward Merge Bot
22daba4ff9 Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: Iaab37b633a8286c2c21425aaac34d30529a3ea82
2020-03-18 11:44:49 +01:00
Morten Johan Sørvig
bcdf49bcc6 wasm: support emsdk >= 1.39.4
Keep using the old/deprecated behavior for the Qt 5.14
series.

Task-number: QTBUG-74601
Change-Id: Icee99803f300dfa0116a4de75f9fb26d1010625d
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2020-03-13 10:18:43 +01:00
Andy Shaw
1309205b8b winrt: Update capability management to include IOT namespace
Change-Id: Ib24ecb70454af5ab2e82ebbdc1fed9ef2a52bbb1
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-03-11 12:01:09 +01:00
BogDan Vatra
519ea72108 Android: Bump gradle (plugin) versions
Move min & target sdk from AndroidManifest.xml to build.gradle

Fixes: QTBUG-70817
Change-Id: Id9bb9825a3232587e0255b2d3d6f0273c5f9b66a
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-03-04 18:02:35 +00:00
Joerg Bornemann
065ace2bca Generate separate debug info for Qt tools too
If Qt was configured with -separate-debug-info, Qt's tools should be
separated from their debug information too.

Fixes: QTBUG-56482
Change-Id: Ief0130db1787b767496d0052716183fe773460bf
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2020-03-03 20:08:56 +01:00
Kai Koehne
e06ce2eb62 Fix regression when doing a debug only build with MSVC
qt helper libs for msvc will always get a 'd' suffix for debug builds.
This is different than for MinGW, where it will only get a 'd' for
mixed debug builds in -debug-and-release scenarios (see commit
1749f9184b).

This amends d32a679, which incorrectly removed the 'd' suffix
when linking helper libs built for MSVC.

Fixes: QTBUG-82620
Change-Id: I8097de0e1bab4d1e58fc37b0c50ee6b07650a626
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-03-03 11:18:13 +01:00
Lars Knoll
5c6c0289f0 Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: I4212d070d5752275085e754b96f0392113604dba
2020-02-27 14:22:01 +01:00
Kai Koehne
d32a6793a4 MinGW: Fix debug-and-release configuration
Make sure that, if Qt was configured with -debug-and-release, winmain
and user apps are generated by default in debug-and-release mode, too.

This amends 9b4ec1393f .

Change-Id: I0f169d63ca98c9bde41114225004a0844425db33
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-02-27 09:59:08 +01:00
Qt Forward Merge Bot
226533fd85 Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: Iad459349ea8b4090d79b4771bfff8f656a8a8189
2020-02-26 01:00:08 +01:00
Andy Shaw
2c35a61025 Delay the processing of the doc features to the end
By delaying it to the end we can be sure that all the Qt modules have
their INCLUDEPATHs set and as a result we can avoid long command lines
on Windows.

Change-Id: I9068f7bf66fe138aad1a633191677a57dfd08d6e
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-02-25 18:58:17 +01:00
Friedemann Kleint
41ecb6abbf Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: Ide8768d0d95aaeec943658aea27a03737d7dbf3f
2020-02-20 08:34:46 +01:00
Kai Koehne
7232c852a6 qmake: Fix handling of QM_FILES_INSTALL_PATH
Do not expect the .qm files to be there at qmake time; they will only be
generated at build time.

Fixes: QTBUG-77398
Change-Id: If73fdb51d40138e52f62eaee0491a5d73d9fe161
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-02-18 18:34:50 +01:00
Liang Qi
b9585277e7 Merge remote-tracking branch 'origin/5.14' into 5.15
Conflicts:
	src/corelib/tools/qlinkedlist.h
	src/plugins/platforms/wasm/qwasmintegration.cpp
	src/plugins/platforms/wasm/qwasmscreen.cpp

Change-Id: Iefca7f9f4966bdc20e7052aca736874861055738
2020-02-18 09:26:53 +01:00
Lorn Potter
1635848d87 wasm: remove dependency on perl to find emscripten version
Change-Id: I0d5224d497b2b5652d1be036f2a90c6c53f0c9df
Fixes: QTBUG-81722
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-02-17 08:22:01 +10:00
Lorn Potter
9354af237b wasm: fix loading of default_pre.prf
This fixes windows build and detection of c++ version

Task-number: QTBUG-80610
Change-Id: I5196e83f9aad6663aea47c31ae4a2da4c4d74e94
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-02-15 05:34:52 +10:00
Qt Forward Merge Bot
9a5df00a61 Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: I8caee4d1ce0eed27d905194df3c3d46c5d07d2b0
2020-02-12 01:00:50 +01:00
Ulf Hermann
673038ebd5 metatypes: Only load qt_build_paths if we need them
Otherwise this fails for user projects.

Fixes: QTBUG-82038
Change-Id: I01bae2aab28bcedf745d1c5ae6932659ed4a7ed5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-02-11 15:36:18 +01:00
BogDan Vatra
59121d2980 Fix ANDROID_XXXX replace qmake function call
The second parameter of replace is a regex, therefore trying to replace strings like
"plugins/sensors/libplugins_sensors_qtsensors_android.so" will result to super strange
results.

Fixes: QTBUG-81974
Change-Id: I887e70f4fd8fa2af482a60f63af371f954b56ce1
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-02-11 09:16:42 +00:00
Cristian Adam
4d798801e0 CMake Support: Fix dependent libraries search for MinGW and CMake 3.17
Fixes: QTBUG-81903
Change-Id: Ie2847e38c196c1f9d664b1a35339cca5ebf424cc
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-02-10 22:36:32 +01:00
Andy Shaw
288d5d8a71 Android: Make sure that it can find qrc files created via the pro file
Since Android will place the created qrc files in their own architecture
then we need to make sure that we account for this when returning a list
of all the resources. This is so that when other files are created that
depend on this list, it is able to find them.

Fixes: QTBUG-81477
Change-Id: I4a083c1c5c3e0aec35649cf7f5419cf3c6a75eae
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-02-10 21:04:03 +00:00
Morten Johan Sørvig
7d19dd7730 wasm: Change compiler flags to target "upstream" llvm
As of version 1.39, Emscripten now uses upstream llvm instead of
the "fastcomp" fork. As a result of this em++ no longer builds
via the asm.js text format, and the performance issues related
to text parsing are gone.

Reducing the binary size for debug builds is no longer needed,
and we can fall back to using the default build flags.

This effectively makes 1.39.x the minimum Emscripten version for
Qt 5.15. The "-fastcomp" SDK variant is not supported.

Change-Id: Id66ef77294a9accd1b103e34785458d71dc188b1
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2020-02-05 09:59:27 +00:00
Qt Forward Merge Bot
97417e8f28 Merge remote-tracking branch 'origin/5.14' into 5.15
Conflicts:
	.qmake.conf
	examples/widgets/widgets/imageviewer/imageviewer.cpp
	src/corelib/text/qchar.cpp
	src/corelib/time/qdatetime.cpp

Change-Id: I9762f5c4ff650799219729d6aee79ac07ce9024a
2020-02-04 10:44:00 +01:00
Thiago Macieira
02eb9df851 Add new AVX512 extensions found in Intel CLX, ICL and ICX processors
Cascade Lake (CLX) added AVX512VNNI, Ice Lake has added that plus the
integer multiplication (IFMA), the vector bit manipulation instructions
(VBMI and VBMI2), bit algorithms (BITALG), the extended vector AES
instructions (VAES), among others.

I haven't turned on the configure check for those yet. I believe the
VBMI and IFMA instructions will be interesting for Qt image algorithms,
but we'll need some Ice Lakes to do benchmarking on.

Change-Id: Ib5d667bf77a740c28d2efffd15cb43dd821d4b2d
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-02-03 11:31:49 -07:00
Joerg Bornemann
495db2cd2b Add function for initializing plugin resources for static builds
Also move the setting of default RCC_DIR into qtFlattenResources as we
need a valid RCC_DIR there.

Fixes: QTBUG-81699
Fixes: QTBUG-81713
Change-Id: I7558d99f3aca75d2e9cad0ec89fbb0aa0758dcc7
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-01-30 16:59:31 +01:00
Qt Forward Merge Bot
a3fc03c130 Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: I98b1a5a11ece3957a1115c1d9be8841759206ffe
2020-01-29 01:00:56 +01:00
Robert Loehning
94bc57213f configure: Add switch for clang's "source-based" code coverage feature
This adds instrumentation to the binaries. At the end of their
execution, these will then write a file containing information which code
was executed. This can be used for code coverage analysis.

[ChangeLog][QtCore][configure] Add switch "-coverage source-based" to
enable clang's "source-based" code coverage feature. This can be used
for code coverage analysis.

Change-Id: If31c6849aa797ff8820e041e85a492a14e2f1a6b
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-01-28 20:26:15 +00:00
Qt Forward Merge Bot
6c3eb39832 Merge "Merge remote-tracking branch 'origin/5.14' into 5.15" 2020-01-28 16:02:04 +01:00
Liang Qi
54b1f1d199 Merge remote-tracking branch 'origin/5.14.1' into 5.14
Conflicts:
	mkspecs/features/create_cmake.prf

Done-With: Artem Pisarenko <artem.k.pisarenko@gmail.com>
Change-Id: I2ecb9fdca06fe687be8ab3457a58dd81e5e81c4c
2020-01-28 09:16:11 +01:00
Qt Forward Merge Bot
082faeff9c Merge remote-tracking branch 'origin/5.14' into 5.15
Conflicts:
	src/gui/image/qpnghandler.cpp

Change-Id: I8630f363457bb613d8fb88470a71d95d97cdb301
2020-01-28 08:09:51 +01:00
Joerg Bornemann
fcd3a20059 macOS build: Fix 'direct access in function...' warning
For every executable that uses a static Qt library (e.g. rcc using
libQt5Bootstrap.a) we got a warning: 'direct access in function...to
global weak symbol'.

This was because we've built all libraries with -fvisibility=hidden
-fvisibility-inlines-hidden but not the executables linking against
them. On macOS however, all translation units must have the same
visibility setting.

We're now setting the same visibilty for libs and executables on
darwin.

Fixes: QTBUG-81297
Change-Id: I2668e9385caa7f0ce78bf3727b4e5322bc4a294f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-01-28 07:52:58 +01:00
Alexandru Croitor
e9a797799e CMake: Add Qt6 forward compatible CMake API and targets
Create Qt:: versionless targets for libraries and tools. So
Qt::Core will link to Qt5::Core.

Add additional feature properties to targets, with the same name
they have in Qt6: QT_ENABLED_PUBLIC_FEATURES,
QT_DISABLED_PUBLIC_FEATURES, QT_ENABLED_PRIVATE_FEATURES,
QT_DISABLED_PRIVATE_FEATURES, to be forward-compatible with Qt6.
Prefix properties with INTERFACE_ for interface libraries.

Create functions with no major version in their prefix, so qt_foo
instead of qt5_foo.
The non-versioned functions will call the versioned functions,
depending on the value of QT_DEFAULT_MAJOR_VERSION, which can be
set by an application developer before finding the Qt package.

Set QT_DEFAULT_MAJOR_VERSION to 5 if the value has not been defined
in the current scope.

Application developers can set QT_NO_CREATE_VERSIONLESS_FUNCTIONS to
TRUE before calling find_package(Qt5) to suppress creation of the
non-versioned functions.

Application developers can set QT_NO_CREATE_VERSIONLESS_TARGETS to
TRUE before calling find_package(Qt5) to suppress creation of the
non-versioned targets.

Setting these can be useful when both find_package(Qt5) and
find_package(Qt6) are in the same project.
If none of these are set by the user, then the first find_package(Qt5)
will create versionless targets with the major version being "5",
which means the second find_package(Qt6) will not create versionless
targets.

Handle versionless plugin names in qt_import_plugins, so both
Qt::QCocoaIntegrationPlugin and Qt5/6::QCocoaIntegrationPlugin
are recognized by the function.

Allow specifying multiple types in EXCLUDE_BY_TYPE in
qt_import_plugins, to be consitent with the Qt 6 version.

Make sure to set the QT_PLUGIN_CLASS_NAME property to compatible with
Qt 6.

Task-number: QTBUG-74137
Task-number: QTBUG-80477
Change-Id: Ib89d090ea6f7794d7debd64f03f29da963a17ca7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-01-25 18:10:26 +01:00
Joerg Bornemann
474a5e2f3f Fix handling of the DEFINES_DEBUG/DEFINES_RELEASE variables
Modifications of the CONFIG variable in the project file wasn't taken
into account in the handling of DEFINES_DEBUG and DEFINES_RELEASE,
because it was happening before the evaluation of the project file.

Moved the handling code into default_post.prf where the other *_DEBUG
and *_RELEASE variables are handled.

In practice that means: to avoid the addition of the NDEBUG define one
has to remove NDEBUG from DEFINES_RELEASE.

This amends commit 1456b809.

[ChangeLog][qmake] To remove the NDEBUG define that is added by
default in MSVC mkspecs, write DEFINES_RELEASE -= NDEBUG in your .pro
file.

Fixes: QTBUG-81569
Change-Id: I2ea5628653275a4e48ad002977d34969c0663815
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-01-23 19:44:09 +01:00
Joerg Bornemann
0ab53fbdda Fix qtPlatformTargetSuffix for darwin platforms
Commit 1749f918 changed a "mac" scope to a "macos" scope (thanks to the
enormously helpful hint from in^Wsanity bot). Instead it should use
"darwin", because that's what is equivalent to "mac".

Fixes: QTBUG-81599
Change-Id: I0fd82f984945836a5b7b1bea5ed2117a2f676947
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2020-01-23 13:37:32 +01:00
Alexandra Cherdantseva
0a4c5b5119 wasm: fix redundant string conversions between wasm and JavaScript
Avoid redundant conversions from UTF16 to UTF8 to UTF16 with
help of new class QWasmString static methods:
+ QWasmString::fromQString to convert QString to js string
using js Module.UTF16ToString
+ QWasmString::toQString to convert js string to QString
using js Module.stringToUTF16

Fixed document.getElementById calls for cavasId with unicode characters.

Change-Id: I3fc55bfeb6aeda75fa3acd85d22cea667b542f38
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2020-01-22 19:26:22 +03:00
Kai Koehne
1749f9184b MinGW: Fix debug builds of applications
Only expect debug Qt libs with 'd' suffix if Qt was configured with
-debug-and-release.

This partially amends 9b4ec1393f and 4d289edb1 .

Fixes: QTBUG-81325
Change-Id: I56c8965272265cf0a91351aae29d648b8687ec77
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-01-22 09:07:40 +01:00
Artem Pisarenko
78a6b80719 Fix win32 support for linking against static builds in CMake
CMake mkspec feature sets CMAKE_PRL_FILE_LOCATION_* values inconsistent
with actual .prl file names being generated/installed, causing
dependency extraction mechanism in Qt5BasicConfig.cmake.in to not work
(function _qt5_$${CMAKE_MODULE_NAME}_process_prl_file silently fails
to find file at given location and skips filling libs deps).

[ChangeLog][CMake][Windows] Fixed linking with Qt static build

Fixes: QTBUG-81401
Change-Id: I5861cc0c42163d898ba55ad83cbad1994dcb1db2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-01-19 02:50:32 +06:00
Alexandru Croitor
d5c9d88885 [CMake] Fix handling Qt frameworks link flags in static lib deps
QMAKE_PRL_LIBS_FOR_CMAKE can contain "-F/foo/bar" entries which
are search paths for where frameworks should be found.

These should be passed as HINTS to find_library when searching for
frameworks.

Fixes: QTBUG-81369
Change-Id: I4f699800bd49a1f368b6132823e23d08d1fae604
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-01-18 14:01:59 +01:00
Andy Shaw
12df6c63a0 Android: Use the values rather than the variables with str_member
This amends ce04fa345d to correctly get
the information out of the variables when using str_member and str_size,
as it wants a string rather than a variable for these.

Fixes: QTBUG-80582
Change-Id: I8e18e05c605ba1596a7ed7a013f5c6677ab76891
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2020-01-18 14:01:46 +01:00