This partially reverts 37cb787dc1
because it reintroduces the macOS host Android configs which were
removed due to qtbase std::pair shenanigans.
Each android architecture we support is re-added as a separate
configuration, because CMake builds currently don't support multi-abi
builds as tracked in QTBUG-80943.
Task-number: QTBUG-84924
Task-number: QTBUG-86053
Change-Id: Iac48ab41a1eb9cf1e4219f62683355d1bb9a9891
Reviewed-by: Liang Qi <liang.qi@qt.io>
It wasn't added before, because it didn't build due to an issue
in qtbase regarding qdrawhelper.cpp and avx2, which is now fixed
in ff1a44be33f4bc05d502a2ca49171e0408992f61 in qtbase.
Task-number: QTBUG-86053
Change-Id: I425e6a81840276a850bd95db45d5ecdfae5487a8
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
In Qt 5 times, qmake was able to build libraries for multiple Android
ABIs in one build tree.
In Qt 6.0 + CMake we can't do that yet, which is tracked in
QTBUG-80943.
We still need to build and ship libraries for all the ABIs, so use the
old style approach of one configuration per ABI.
Add some of the missing ABIs for the Linux host case:
arm64-v8a, armeabi-v7a, x86.
The x86_64 ABI will be added in a separate change, due to a bug in
qtbase regarding Gui's qdrawhelper.cpp and avx2.
Because it's a lot of copy pasting, move the configs into a separate
yaml file so it's easier to search and replace in the future.
Task-number: QTBUG-86053
Change-Id: If8419ce20ac033b644c49c0bac70196cd30fd679
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Toni Saario <toni.saario@qt.io>
Now that we reuse host artifacts, there's no point in specifying host
configure arguments on target configurations, they aren't used.
Remove them to avoid confusion.
Change-Id: I176fe421bc36772cb29929c082ea76946210f98b
Reviewed-by: Toni Saario <toni.saario@qt.io>
Add a new Ubuntu 20.04 host to be used for the qemu configs.
We might be able to use the RHEL 7.6 host artifacts for qemu target
configs, but i'd rather we test on the same distro / OS for both
host and target.
Use the macOS host for iOS builds.
Task-number: QTBUG-85623
Change-Id: I6305f924b843a5a832bd94e5060211583c9c7f98
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
These are missing from the initial patch:
716144073c
And currently block qtbase integrations.
Change-Id: Ife192aebf93b6344ff0341aed275ea2e104c6799
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This CMake version among other things, fixes a bug with
Ninja Multi-Config writing into the same response file
on Windows, which can cause wrong libraries to be linked
(mixing Debug and Release libs).
Also disable PCH for iOS configs, because that seems to be broken
again.
We can't upgrade to 3.18.2 because that breaks iOS PCH in a different
way than 3.17.4, and because of an AUTOMOC regression introduced when
using Ninja Multi-Config.
Fixes: QTBUG-85586
Change-Id: I04c08d3a8bfb88433f2d50f4d41d11fc0df3d7ec
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Add various CMake configuration flags to enable building of the same
sql plugins that the qmake configurations do.
While qmake has various introspection mechanisms for finding plugins
inside
qtbase/src/plugins/sqldrivers/configure.json and configure.pri,
in CMake-land we sometimes need to be explicit and pass 3rd party lib
paths, so that the FindFoo.cmake modules successfully find the
libraries.
Sometimes it's not necessary because the find modules also do some
introspection in default paths like looking /usr on Linux, or
'C:\Program Files' on Windows.
While some qmake configs provide mysql path hints (like on Windows),
the plugin is actually disabled on purpose due to licensing issues
as per a05bd71ede and QTBUG-76081.
Also the qmake configs specifying arguments like -plugin-sql-sqlite
and -plugin-sql-odbc is redundant. These switches force enable the
corresponding features in src/plugins/sqldrivers/configure.json,
but it's actually not necessary because all the features (except
system sqlite3) are auto-detected and enabled if the actual 3rd party
library is found. The same is the case for the CMake build, so there's
no need to manually enable the features.
While the qmake qemu configs don't explicitly disable the mysql plugin
and actually provide a Yocto SDK mysql path via -mysql_config,
the library does not end up being found. It's unclear whether this is
a bug (despite the licensing issue mentioned above) or on purpose.
But the CMake build doesn't find it either, so it's consistent.
And I suppose -psql_config /dev/null is meant to disable the
postgresql plugin on QEMU configs. The QEMU CMake build doesn't find
the postgresql library by default anyway, so the result is also
consistent.
Sql plugins built per packaging config:
macOS: odbc, postgres, bundled sqlite
RHEL: odbc, postgres, bundled sqlite
Win10 MSVC x64: odbc, postgres, bundled sqlite
Win10 MinGW x64: odbc, postgres, bundled sqlite
Android any arch: bundled sqlite
iOS: bundled sqlite
QEMU any arch: bundled sqlite
Task-number: QTBUG-86053
Change-Id: Ic759eb29fc5350cbdfe2825817af74767c4fb12a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
The -no-qpa-platform-guard configure argument is deprecated and has no
effect.
Pick-to: 5.15
Change-Id: I132ccdf036c52baf54cf0c789fa063cc0455ce09
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
The sccache may significantly reduce build times.
We need to evaluate real cases to see how much is to gain.
This patch enables sccache only on cmake, exluding one msvc target
with debug flag -Zi, which creates separate debug symbols.
Related sccache issue:
https://github.com/mozilla/sccache/issues/242
Task-number: COIN-130
Done-with: Aapo Keskimolo <aapo.keskimolo@qt.io>
Change-Id: Ic1f599c5194bcdee9528a548dabead1097821cd1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
We will ship pre-built binaries for minGW in Qt6 as well so add
packaging feature in it as well
Change-Id: I7b506fd0c8227cef478f461e02ae1d4549f0a507
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Move the configuration from qtbase into a new
cmake_platforms_qemu.yaml file, and include it in qtbase and qtsvg.
Also enable CMAKE_AUTOGEN_VERBOSE to see what moc is being called
and with what parameters.
Task-number: QTBUG-83968
Change-Id: Ib893c6f8cb498b9b5c7da79218de22a28ffdb83f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
CMake is picking up libtiff from the provisioned Strawberry Perl location.
Specify -DFEATURE_system_tiff=OFF in the NON_QTBASE_CONFIGURE_ARGS to
disable usage of that library, and thus fix the crashing test.
Amends 4b4f0be08d
Task-number: QTBUG-84886
Change-Id: Iecc880d367db76e91f8c5f92b0849f1ad43382a3
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
The qtbase Coin instructions will start reading the values of the
environment variables NON_QTBASE_CONFIGURE_ARGS and
NON_QTBASE_TARGET_CONFIGURE_ARGS.
These are used to pass configure args to repositories other
than qtbase to allow disabling certain features per-repo.
Unfortunately we have to explicitly set the env var values to empty
strings so that the instructions work correctly, otherwise Coin
replaces them with a '<no value>' token, which breaks the
CMake configuration phase.
For some reason the issue only happens on the Windows MSVC
configuration, but we set them for the other configurations as well
to avoid any future breakages.
Task-nunber: QTBUG-84886
Change-Id: I4b095f71c6e484a0e67a53eb6ea9d5ca4f2a6a0c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Updated to match new default configurations.
Change-Id: I536454b5c3de4a4917cb8d1f0b391fbb20e6f8d1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
The cmake platform was not updated when other platform were updated
to use -17 image.
Change-Id: Ide69d7d6119f472529570960021de9f05e53d8bd
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
Remove the DisableTests feature to force the qtbase instructions
to build and run the tests.
Task-number: QTBUG-84423
Task-number: QTBUG-83968
Change-Id: Ic904c7b0f3d6d6ab8a546d683b0110b0704bf42c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Switch the configuration to have release + developer-build similar
to the qmake configurations.
Add debug info for extra spiciness.
Specify a new env variable called QT_SYSROOT_FOR_RUNNING_TESTS which
will be used by the qtbase instructions to set QEMU_LD_PREFIX, which
is needed to run the tests via qemu.
Specify the QT_QUICK_BACKEND=software env var as well as the
GST_PLUGIN_SCANNER env var, because the qmake configurations do it.
Make sure to cross-build tools, because some of the tests like
tst_uic and tst_rcc expect the tools to be there.
Note that DisableTests feature is left on purpose, so we can decouple
the building from the testing in 2 different steps.
Task-number: QTBUG-84423
Task-number: QTBUG-83968
Change-Id: Icf6b12e6942c6ae6a0445eeac3f88704ca797148
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
CMake was picking up libtiff and libfreetype from Strawberry Perl
MinGW distribution. By specifying -DFEATURE_system_tiff=OFF and
-DFEATURE_system_freetype=OFF we should fix these problems.
-DFEATURE_system_jpeg=OFF was also added, even though tests are
not failing.
Task-number: QTBUG-84886
Change-Id: I324304bfbf8fcdb2de04ad0481eca1c7534a3cfd
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Remove the "Packaging" feature from the qmake configurations in
qt5.yaml and default.yaml.
Note that "Packaging" configurations in other .yaml files are not
touched yet, because there are no CMake ports for those. These are
qdb.yaml, qtwebkit.yaml. qtwebengine.yaml, etc.
Assign the "Packaging" feature to the closest equivalent CMake
configurations we have.
MinGW is not tagged with Packaging for now, because a decision needs
to be made what will the Windows7 32 bit configuration be replaced
with.
At the moment, not every qmake configuration will have an equivalent
CMake configuraiton. As a result WebAssembly goes away as a
Packaging configuration for Qt 6.0.
Task-number: QTBUG-85047
Change-Id: I09b6956b6b9c7393b5e095f826d72e92b81594d0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
In Qt 6 things get more complicated because we have Vulkan, Metal and
D3D in addition to OpenGL. Qt Quick will only default to the software
backend when no graphics API was available at build time - and this
not true for the QEMU configs because the Ubuntu env has both OpenGL
and Vulkan headers, so they both are enabled, but are not usable at run
time. To simplify life, just state the Qt Quick backend we want the
tests run with.
Change-Id: I63cd9534bc8cd5d0568235bc2035f5613d29ced4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Change the ubuntu developer build to a namespace build.
We need to have namespace build coverage in CMake configurations
like in the qmake ones.
Task-number: QTBUG-84881
Change-Id: I429a11486bd9a0c60a3d0423a9a41dc436f32f1e
Reviewed-by: Simon Hausmann <hausmann@gmail.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
After Coin commit 60a6f795f5923c7c206b3fec4ebad991ce30d633 it is
possible to include other intermediate configuration files.
Create a new cmake_platforms.yaml file which will contain the default
list of platform configurations to be tested in all cmake-enabled
repos and qt5.git.
Task-number: QTBUG-85044
Change-Id: I10e4dff8793a1ffb5776e00dac80f43394d18578
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
For releasing purposes, we should align the configure arguments
(actually CMake arguments) of the Packaging configurations with the
ones we used for Qt 5.15.x releases.
In particular for linux builds this means disabling the use of a few
system libraries (a new one that needs to be disabled is
double-conversion, it was not provisioned for Qt 5.15.x builds, but
was installed for dev builds).
Apply the changes across all repos, to be consistent and build the
same for qt5.git and per-repo builds.
Task-number: QTBUG-85047
Change-Id: I784abc6367bcda574691758942f89257e891647e
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
When building a RelWithDebInfo configuration, the debug symbols for
the libraries are embedded into the .dlls. This causes the file size
to be really big (around 400MB for libQt6Gui.dll). On a 32-bit system,
the Windows loader failed to map such big libraries into memory,
and thus certain tests failed with exit code 0xc0000017
which means STATUS_NO_MEMORY.
The solution is to enable the separate debug info feature, to split
the debug files into separate files, just making they dlls nice and
small.
This should fix quite a few of the failing MinGW 32-bit tests for
qtdeclarative, qtquickcontrols2, etc.
Task-number: QTBUG-84886
Change-Id: I10ae0acca5d7d5523d3ae2f0c49587ace239f301
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
All the qmake MSVC Windows configurations are debug_and_release ones,
so the equivalent CMake configurations should be the same for all
repositories.
Task-number: QTBUG-80900
Task-number: QTBUG-84883
Change-Id: I083d7a355558666a5f66efdffb592f5e93705547
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Everyone forgot to enable it after finishing the port.
We should enable it, so it's tested for per-repo integrations as well.
Task-number: QTBUG-78171
Change-Id: I8e024809b4ece5d0775817e072968b7162d7a38c
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Just to be consistent with the rest of the files.
Amends 803eb987ad
Task-number: QTBUG-80899
Change-Id: I26212c5367da7b8bf14e4a7d46b96ffb82bf9aab
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Add simple instructions to only configure and not build top-level
builds, similar to what the qmake configurations do.
The CMake configurations need to be copy-pasted again into qt5.yaml.
We can't use default.yaml because that would enable CMake
configurations for repositories that are not ported to CMake, and
thus break the integrations.
Update qtqa sha1 to a dev branch one which contains the
module_config.yaml instructions to build qtqa with CMake.
Task-number: QTBUG-84874
Task-number: QTBUG-84918
Change-Id: I8c64f5e0acc96e14a4952abb6c77fe5c8e27a0ec
Reviewed-by: Liang Qi <liang.qi@qt.io>
Coin now has CMake 3.17, so iOS multi-arch builds should
successfully build.
Switch the iOS CMake configurations to simulator_and_device ones.
Task-number: QTBUG-80899
Change-Id: I9c8bde9f1a3c483ea296f3d9d06f089cbfdf2416
Reviewed-by: Liang Qi <liang.qi@qt.io>
We can re-add them later when issue got fixed.
Task-number: QTBUG-84924
Task-number: QTBUG-84925
Change-Id: I2545e5fe03fd44a6016305723b57db8c0d6e9470
Reviewed-by: Liang Qi <liang.qi@qt.io>
There's a new dev branch for qtqa, so we can re-enable CMake builds
of qtqa using that branch, without breaking builds of other branches.
This reverts commit 33e8275ee5.
Task-number: QTBUG-84233
Change-Id: I1e4ca39717768303eca8435d175aa562fcd6f0f5
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>