Do not link against the GLVND OpenGL libs (libOpenGL.so.0), because
those might not be available on target systems.
In order to do that, we set OpenGL_GL_PREFERENCE to LEGACY.
Fixes: QTBUG-89754
Change-Id: I28e8c62b137f17cf6692b84f438a8ae60ebe0e91
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
(cherry picked from commit f79742edb1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
With CMake 3.19.2 provisioned, iOS will be able to compile with PCH.
Change-Id: Ic9c9eef98d229a7cb8d87fa1e4555cdbeac1f7cf
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit eff3b74d3b)
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
By moving the static build to SLES, we can run autotests on openSUSE.
It also makes sense to move the developer build at the same time.
Change-Id: I5e0c4b0caf2bbd5a0d419555b1e270673adfc890
Reviewed-by: Liang Qi <liang.qi@qt.io>
CentOS 8.1 is now in CI without Insignificant flags so
Rhel 7.6 can be removed.
Task-number: QTQAINFRA-2760
Change-Id: Id797a6ea5bf9c4d64929b4d6e183d0c7146309ca
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
"_ARCH_" was dynamically replaced by either 32 or 64 in
qttools/configure.pri. Anyhow, this is not supported by the
CMake build, and not needed, since we only build with 64
toolchains on Windows.
the qmake builds can still automatically select the "right"
toolchain by either loading LLVM_INSTALL_DIR_msvc,
LLVM_INSTALL_DIR_mingw. But for CMake builds
we now explicitly set LLVM_INSTALL_DIR in each configuration.
Fixes: QTBUG-87215
Change-Id: Iaa7e6eab676c03b34ea723d9f71888ca9ee7bb1f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Replicate the instructions that Coin does for qmake configurations.
Build all of qttools and its dependencies and then build the top-level
docs.
Task-number: QTBUG-87012
Change-Id: Iac70172cf13d8943e60c26a1f2ee3ddf5bae6667
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Builds are passing, but tests still failing
Task-number: QTQAINFRA-3949
Change-Id: Ieca2512e06ca09cabf042ee3c966dae65c9e5e86
Reviewed-by: Simo Fält <simo.falt@qt.io>
Builds are passing now with Ubuntu 20.04, but tests are still failing.
Let's set Insignificant flag to affect only to test phase.
Change-Id: Ib9b4d652c9518d59d6a36c58b3a11f40ce777a74
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
Builds are passing now and almost all autotests. Let's set insignificant
flag to affect only test phase for now.
Task-number: QTQAINFRA-3065
Change-Id: Icd233ef58bf92ec9ebfb6b56e163c16aad045bbd
Reviewed-by: Toni Saario <toni.saario@qt.io>
This doubles the amount of processor power given to the VMs. This
mirrors what Coin does when it detects a -debug-and-release flag in
the configure flags when doing a qmake Qt build.
Change-Id: I33a5c6a50a4ac279d097664d145439c856f132ec
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
Also disable warnings_are_errors. That's the way it is in the qmake CI
config. It was probably an oversight.
Fixes: QTBUG-85438
Change-Id: Id6e6a778dca1bfc5c13289e3f55048ce515e923f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Pass -DFEATURE_msvc_obj_debug_info=ON to enable the /Z7 flag
compilation flag, which will embed debug info into the .obj files,
thus enabling usage of sccache for MSVC CI configs.
Task-number: QTQAINFRA-3934
Change-Id: I151eece0e35ebee8df0c58641727219ee40a7409
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Toni Saario <toni.saario@qt.io>
Insignificant flag is added for two targets. RedHat 7.6
will be kept as parallel until insignificant flag can be
removed from CentOS
Task-number: QTQAINFRA-2760
Task-number: QTQAINFRA-3065
Change-Id: If124600309644e6a066805cd728bf12862006a21
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
To ensure that examples can be built with an xcode project
generated by qmake, we have to ship both debug and release
libraries.
So use Ninja Muli-Config to build both configs.
Note we build Release and not RelWithDebInfo on purpose, so we
don't inflate the package size too much due to the embedded debug
information.
We can probably switch to RelWithDebInfo once we implement the
separate_debug_info feature for static builds.
Fixes: QTBUG-87638
Change-Id: I3e26cd0e47fc96fbdee8b3b0177f78fa266b8cc4
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
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>
Android targets, QEMU and the Ubuntu are capable of caching artifacts.
Change-Id: I417b7e9b7bd85fb21cce6dfbb2ac8985faba58eb
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
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>
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>
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 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>
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>
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>