Commit Graph

278 Commits

Author SHA1 Message Date
Alexandru Croitor
eff43863fc CMake: Enable separate debug info for the macOS packaging config
Task-number: QTBUG-86053
Change-Id: I9e8c7bceaab781bbe8f1ea507145b3521f17bbdd
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-09-29 11:41:41 +02:00
Alexandru Croitor
87b043139e CMake: Partially mirror Ubuntu developer build config
Still missing the -qtlibinfix TestInfix and Documentation feature.

Task-number: QTBUG-86053
Change-Id: Ie0acc5bbdd9b2eb4fb070c59bd0e359f40b45d72
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-09-29 11:41:38 +02:00
Alexandru Croitor
87889aa18d CMake: Mirror missing default.yaml non-framework macOS config
Task-number: QTBUG-86053
Change-Id: I7e8138a64c1f13ee8be2995579575de1fe1e6a7f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-09-29 11:41:35 +02:00
Toni Saario
7ca4c85774 Enable sccache for test building
The sccache can also be used to speed up building tests. Test related
Environment variables are read by instructions and appended to tests
CMake call by: 7545511e37d69a119bbec861226700832799331f

Change-Id: I9b350f73b89e15d6b372417335acbf2312b67691
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-09-25 14:31:38 +00:00
Toni Saario
cc913ca25a Enable sccache for compatible platforms
Android targets, QEMU and the Ubuntu are capable of caching artifacts.

Change-Id: I417b7e9b7bd85fb21cce6dfbb2ac8985faba58eb
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-09-25 14:14:51 +03:00
Alexandru Croitor
195a8210c1 CMake: Add Windows10 x64 MinGW 8.1 host Android CMake targets
Adds the missing Windows host Android target configurations.

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-86053
Task-number: QTBUG-85911
Change-Id: I421c6fc726a4813dbab5fcd67961ae4124eccb13
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2020-09-17 12:48:32 +02:00
Alexandru Croitor
89dc32b516 CMake: Add macOS host Android target configs
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>
2020-09-17 12:48:29 +02:00
Alexandru Croitor
bfe83a7ea2 CMake: Add SLES config to mirror qmake one
Task-number: QTBUG-86053
Change-Id: Ia4159d2293597542f34a9fe847f29acc4743551c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-09-08 13:52:05 +02:00
Alexandru Croitor
465e18ee10 CMake: Add some missing Linux host Android target architectures
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>
2020-09-08 13:52:05 +02:00
Alexandru Croitor
4da335cfda CMake: Remove superfluous host configure arguments on target configs
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>
2020-09-08 13:52:05 +02:00
Alexandru Croitor
a87493aede CMake: Switch Linux host Android target build to RelWithDebInfo
Change-Id: I9e96339019e56b847ddf1125cc7465cfc9506eae
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-09-08 13:52:05 +02:00
Alexandru Croitor
22af804aee CMake: Reuse host artifacts for all our cross-builds
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>
2020-08-25 17:39:34 +02:00
Toni Saario
2920b36fa7 CMake: Build Android with artifacts from host RHEL build
Task-number: QTBUG-85623
Change-Id: I93bdbc9fda00fbe2b65d6e4e8ac5fa407f3469db
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2020-08-25 17:39:28 +02:00
Toni Saario
8f15d5af86 Mark module specific ubuntu20.04 configs insignificant
These are missing from the initial patch:
  716144073c
And currently block qtbase integrations.

Change-Id: Ife192aebf93b6344ff0341aed275ea2e104c6799
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-08-21 18:45:53 +03:00
Alexandru Croitor
177b0b0ea4 CMake: Update provisioned CMake version to 3.17.4
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>
2020-08-21 17:45:48 +02:00
Alexandru Croitor
d44a1dafcc CMake: Add configuration flags to build sql plugins
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>
2020-08-21 10:05:46 +02:00
Tony Sarajärvi
a509883207 Replace Ubuntu 18.04 with 20.04
Task-number: QTQAINFRA-3699
Change-Id: Id8c2bc2160d6805339c29961cec784d64c5f0c4d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2020-08-20 21:44:32 +00:00
Jędrzej Nowacki
015c86534c Enable use of sccache in the CI
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>
2020-08-19 12:59:16 +03:00
Heikki Halmet
ba4eb4929e Provisioning: Update Windows 10 x86_64 to version 2004
MSVC 2019 version 16.6.2
MSVC 2019 Build Tools version 16.6.2
Virtio driver
Virtio Balloon driver
NetKVM driver

Task-number: QTQAINFRA-3818
Task-number: QTQAINFRA-3817
Change-Id: Id0edee66d4eb42730a70495dbb063a0d379f026c
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2020-08-18 04:35:50 +00:00
Jani Heikkinen
0d6b74083e Add 'Packaging' feature for mingGW build as well
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>
2020-08-05 12:55:41 +03:00
Alexandru Croitor
a97bdde4d4 CMake: fix tst_qtiff on MinGW
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>
2020-07-13 15:57:07 +02:00
Alexandru Croitor
b2014f2eff CMake: Add non-qtbase configure argument placeholders
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>
2020-07-13 15:57:01 +02:00
Toni Saario
5fb198a159 Use same tier 2 template for all windows 10 targets
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>
2020-06-29 12:38:02 +03:00
Alexandru Croitor
55c1953288 CMake: Switch the MinGW config to 64 bit and Windows 10
Change-Id: I45e60289bc508b5e82167d5c5be1e27506729833
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2020-06-25 13:25:38 +02:00
Cristian Adam
4b4f0be08d CMake: fix tst_qtiff, tst_qrawfont on MinGW x86
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>
2020-06-24 21:05:50 +02:00
Alexandru Croitor
4a0429a82f CMake: Use CMake configurations as packaging ones
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>
2020-06-17 15:44:17 +02:00
Alexandru Croitor
ae1cf52b64 CMake: Add a Qt namespace build
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>
2020-06-16 18:04:02 +02:00
Toni Saario
0cc1973ba8 CMake: Deduplicate the cmake platforms
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>
2020-06-16 15:46:50 +02:00