Prefer static linking for now, to bypass the deployment issues.
We will switch to dynamic libraries once online installer deliver the
vcpkg installed libraries.
Change-Id: Iac9a888237742ae886df8fb9b742b45f4727e28a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Provision protobuf and gRPC packages using vcpkg.
Change-Id: I4d834236408938e228fb0721474edfad946a8dc8
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Add a script to download windows app sdk and webview2 to be used for CI
This script downloads NUGET, then tries to download Windows App SDK,
WebView2 and CppWinRT libraries and sets appropriate environment paths
to be used later by webview2 plugin.
Task-number: QTBUG-128447
Task-number: QTBUG-75747
Pick-to: 6.10
Change-Id: I1b7ff29b1870d0445034590d01caa503c9e3ae0f
Reviewed-by: Toni Saario <toni.saario@qt.io>
It's needed for static linking with static xcb libs.
xcb-image depends on xcb_aux.h which is in xcb-util package.
Debian-11.6, Ubuntu, openSUSE, SLES already have it.
Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-137004
Change-Id: Iffb9ab7d62a2bea3cb8e27354d25957c49911859
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Commit b0e38f6ace22f9e8ff8dbbe16e8e1cdf8e75648c introduces a new
QML tree model class and the feature definition to go with it. This
model is not needed in the minimal configuration => disable it.
Amends: 30aadf11aa
Task-number: QTBUG-134299
Change-Id: Ie0adcc17f8cecd02c1c5c8bb47f8a085c029539a
Reviewed-by: Mate Barany <mate.barany@qt.io>
The clipboard is unconditionally needed by recent changes to
(qtbase) qnsview_complextext.mm (QTBUG-126238). After discussion
with Tor Arne, decided to drop the clipboard size optimization.
Its size impact is not large and the platform is a desktop
plaform where size is typically not so critical.
Amends: 30aadf11aa
Task-number: QTBUG-134299
Change-Id: I342cdd8cd37e8a54c1f70fda680ca6e9743ed2d5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
We already have same config in u2404.
Replace the usage of ubuntu-22.04-developer-build with u2404 one.
Pick-to: 6.10 6.9 6.8
Task-number: QTQAINFRA-7146
Change-Id: Ie304b3abbe6da9b203c1ce7eec45d7f9254a7392
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
We already have two tests on u2404.
Replace the usage of ubuntu-22.04-developer-build-x11-tests with u2404
one.
Pick-to: 6.10 6.9 6.8
Task-number: QTQAINFRA-7146
Change-Id: Ib3b1888e1bbb70637432ac70f6116b723e71320d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Qt Wayland client was moved into qtbase. We will try to enable
them from qtbase to all modules in the future in dev. For 6.9
and 6.8, they are InsignificantTests, waste some CI resources.
Perhaps we can fix them later, but I don't think it's worthy.
Pick-to: 6.10 6.9 6.8
Change-Id: I0f26312284bec4f02da915e829d3a68aac820ceb
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit adds size-optimized Qt configuration for Qt
Quick apps. By having a CI configuration helps in ensuring
that the configuration doesn't break over time.
The goal of the configurations is to provide a size-optimized
build while typical Quick applications should still work. The
latter point was checked by checking several example apps:
Coffeemachine, Calqlatr, Gallery, Colorpalette, and few
smaller test applications. Space-savings are in 60%
ballpark when comparing optimized with non-optimized
static builds. Optimizations also include stripping the
binaries where applicable.
Tested platforms: iOS, macOS, Windows, Linux, WebAssembly
and Android. Autotests are compiled and run only on one
platform (macOS) to preserve CI compute. Configurations
are 'Insignificant' to avoid interruptions - this should
be changed once proven stable.
Notably all except Android builds are static builds;
static build optimizations (LTO in particular) are very
powerful in optimizing size. Qt for Android OTOH
does not support static builds.
There are more features and options that user can disable
for further space savings. Prior art for Linux show-cases
taking the optimizations further (QTBUG-117638).
This commit is preceded by numerous compilation fixes to
qtbase and qtdeclarative (now merged).
Fixes: QTBUG-134299
Change-Id: Iaec0aea3e9d475220161ca8d00f0ec15eaa637a9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
The Gnome session type boots into the autostart user's Activty Overview.
This overview doesn't allow window activation and fails tst_selftest.
This can't be prevented with gnome-settings or gnome-tweaks.
Add pre-provisioning instruction to select Gnome Classic session type,
which boots into the normal desktop mode.
Fixes: QTBUG-136467
Pick-to: 6.10 6.9
Change-Id: Id189dd948a9a912179e0c86a6cf56f4a2417dfce
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
gcc10 was removed from official and SUSE community repositories for SP6.
The missing gcc10 is blocking provisioning so install gcc11 instead. SP5
still has gcc10 and it is active in dev branch.
Pick-to: 6.10 6.9
Task-number: QTQAINFRA-7187
Change-Id: Ie7c9f2175553c29654cf5b358ead6dd76e635d60
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
We used to build the documentation with these configurations but they
changed to developer-builds and the documentation was moved to a
separate configurations (documentation-warnings, offline-documentation).
We added those configurations but ignored the developer-builds, and at
the moment they are not doing anything expect wasting resources when
acquiring VMs, so let's get rid of them.
Pick-to: 6.10 6.9
Fixes: QAA-2976
Change-Id: Ia9509e43aec2974bae098de8a2d13ac9d29e2fad
Reviewed-by: Petri Virkkunen <petri.virkkunen@qt.io>
Enables WOA test running in webengine. Which is unable to
build the native WOA target.
Add 'fake' configure argument -corss-compiled to
so test instruction on native windows arm have
a chance to bailout (qquickeffect maker is never
cross-compiled)
Task-number: COIN-1211
Change-Id: Ie920f65f9ec260c0c1a7111e495fd9a86adee5f6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
In the provisioning script 'install-ffmpeg-macos.sh', we have a variable
'prefix' controlling where to install the finalized library. The value
of this prefix is sometimes hardcoded into some of the temporary build
directories, making the script break if we actually modify the 'prefix'
variable. This means we currently cannot easily change the output directory.
This patch modifies 'install-ffmpeg-macos.sh' so that the 'prefix' is
applied consistently throughout the script, allowing us to change
the output directory in the future.
Pick-to: 6.9 6.8
Change-Id: Id0b1bb23513b7bccf02f0c4073e4177f651792dd
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
This is needed for building cmdbridge for remote Linux support
in Qt Creator. This got lost for Linux/ARM prebuilt packages for
Qt Creator when moving from Debian/ARM to Ubuntu24/ARM.
Task-number: QTCREATORBUG-32928
Pick-to: 6.9 6.8
Change-Id: Ic993eaadacec21882e1e2f1b6e0d73bc4ffbf6d4
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Add a new nightly platform configuration to run qt5.git RunCMake
tests.
Currently this will test the init-repository script, and will also
attempt to build and install Qt in various configurations that
developers use locally.
Change-Id: I74e0befc76ef0702c9036d30c85b8cf16b0b98a3
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Coin CI only tests 'prefix' builds of Qt, because that's what we use
for packaging.
But many developers configure and build Qt in various ways which are
not covered by tests.
Introduce a new suite of RunCMake tests that configure and build Qt
in all the different permutations that we know people use.
This includes various combinations of:
- prefix vs no-prefix
- out-of-source vs in-source
- per-repo vs top-level
- building tests and examples in-tree vs out-of-tree
- building examples as in-tree vs external projects
- building more than one repo
The aim is to run all or some subset of these tests in a nightly Coin
CI run.
It can also be a useful way to test "risky" unmerged changes in an
automated way, instead of manually doing the various builds.
The current default set of repos that are built are:
qtbase, qtshadertools and qtdeclarative.
The submodules that are built can be controlled by setting various
cmake or env vars when configuring or running the test:
- QT_CI_BUILD_QT_SYNC_MODULE - the main repo that should be checked
out. Its dependencies will also be checked out, based on its
dependencies.yaml info.
- QT_CI_BUILD_QT_PIN_GIT_REF - the git sha1 or ref of the main repo
that should be checked out
- QT_CI_BUILD_QT_SKIP_SUBMODULES - a list of submodules that should be
skipped, can be useful to skip optional dependencies
- QT_CI_BUILD_QT_EXTRA_CHECKOUT_CHANGES - a list of gerrit commit
sha1s or refs for each submodule to be checked out to specifically.
- QT_CI_BUILD_QT_EXTRA_CHERRYPICK_CHANGES - a list of gerrit commit
sha1s or refs to be cherry-picked on top of whatever commits the
submodules were synced to.
- QT_CI_BUILD_QT_FILTER - a list of filters to include or exclude
test cases to run.
Sample usage:
mkdir build && cd build
cmake ~/qt5/tests/manual/RunCMake
# Run regular tests
ctest -V -R RunCMake.ConfigureBuildQt
# Skip some optional submodules of qtdeclarative
export QT_CI_BUILD_QT_SYNC_MODULE=qtdeclarative
export QT_CI_BUILD_QT_SKIP_SUBMODULES='qtimageformats,qtlanguageserver"
ctest -V -R RunCMake.ConfigureBuildQt
# Cherry-pick extra changes on top of the synced commits
# repos are split by '|', commits by ','
export QT_CI_BUILD_QT_EXTRA_CHERRYPICK_CHANGES='qtbase aaabbbccc|qtshadertools a12,b23,b45,refs/changes/57/628457/2'
ctest -V -R RunCMake.ConfigureBuildQt
# Checkout specific commits for each submodule
export QT_CI_BUILD_QT_EXTRA_CHECKOUT_CHANGES='qtbase refs/changes/54/634554/5|qtshadertools 3bb8a41c44fa69c30f6887685ad70ef7e84c10a6'
ctest -V -R RunCMake.ConfigureBuildQt
# Only run top-level no-prefix, but not in-source source builds
export QT_CI_BUILD_QT_FILTER='top_level,no_prefix,-per_repo,-in_source'
ctest -V -R RunCMake.ConfigureBuildQt
Change-Id: I355084081dd7b48cdf75c03eb001b64ab7ba96fb
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Cristian Le <cristian.le@qt.io>
We don't want Windows VMs to spam mDNS messages about optimizing
Windows updates, when the updates themselves are disabled.
Pick-to: 6.9 6.8
Task-number: QTQAINFRA-6761
Change-Id: I1452ebbb612f784c96f07de0a29cb2cfb54f1e75
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
The <Package>_ROOT should point to the package prefix, where
CMake should look for the respective cmake/, lib/cmake, and other
CMake package directories. Setting directly it to package path is
incorrect.
Pick-to: 6.8 6.9
Change-Id: Id8859c29da08144c60ed3d6301d2c65c8d602d1f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
We may read the installed package information from the 'vcpkg list'
command instead of parsing the vcpkg.json. Also instead of using
the jq as a parser, use the cmake script. This allows skipping the
jq installation.
Change-Id: Id3ace62f8f40ff1bd059878da3fd13e466861830
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Provision and run the test script on Windows in warn-only mode.
Task-number: QTQAINFRA-6796
Change-Id: I06fdfc44109017deb5eaacd3811930b98f1a10f7
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Virtio drivers were updated 0.1.204 -> 0.1.271 which seems to fix
network issues in CI. System OS name is also changed to 'WIN-23H2-X64-55' (15 character limit).
At the same time, 23h2 -54 began to receive a popup about incoming
Windows license expiration which was fixed by changing its ipk key in
-55.
Pick-to: 6.9 6.8
Task-number: QTQAINFRA-6761
Change-Id: Iace589156f878ec63e277ab5e30db3264fb29ebc
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
These modules build, but their tests do not. Remove tests from the
config to allow it to be blocking.
Change-Id: I5913835b7621494aa59671bb34b1faeaeaf3442c
Reviewed-by: Simo Fält <simo.falt@qt.io>
On iOS we no longer deploy FFmpeg .dylibs directly. As such, there is
no need to install the .dylibs during provisoning.
This patch removes this installation step during provisioning.
Pick-to: 6.9 6.8
Change-Id: I6f901113caca4b8d602490ba05db0c9dacb8f80d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Which gets us Xcode 16, with the macOS 15 SDK.
Pick-to: 6.9
Change-Id: I3c7936885e97e479873c4d012adca0d67765c907
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Native WoA builds are done with -no-opengl switch,
therefore native test coin nodes do not need to have
openglsw installed.
(ms-windows-store://pdp/?productid=9NQPSL29BFFF)
However, when trying to run cross compiled WoA on native
test nodes this ends up with:
tst_QOpenGLWindow::create() Failed to load opengl32sw (%1 is not a valid
tst_QOpenGLWindow::create() Failed to load and resolve WGL/OpenGL
function
Use the same switch on cross compile WoA configuration.
Note this can have the impact on installer binaries.
Task-number: COIN-1211
Change-Id: I508587f25701990c438f315bd9163fdd691ddeb3
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Which gets us Xcode 16, with the macOS 15 SDK.
Pick-to: 6.9
Change-Id: I755c27f64f903b281f5d1c7947fbf370ddc3ee17
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
There are two image templates right away: -70 is Windows 11 with no
Visual Studio or Windows SDK ever installed. -71 includes VS2022 17.9.1
(MSVC 14.39.33519) and Windows SDK 10.0.26100.1742
Image changes compared to 23h2:
- VS2019 is left out as it's no longer used in provisioning scripts.
- Old DirectX installation (10-dxsdk.ps1) is left out. It's legacy,
originally used for Windows 7, and newer libraries should be found
from Windows SDK.
- 08-libclang-v100-dyn.ps1 is removed as it's no longer used. It had
dependency to VS2019.
- These images use UEFI instead of BIOS.
[CI Platforms]
Task-number: QTQAINFRA-6734
Task-number: QTQAINFRA-6823
Change-Id: I53a62c74b07d7fbfc9b1afbe44444272ae7c51e7
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
* Update the version variable used to identify the correct package for
download and cache sites.
* Update SHA1 for provisioning packages on all platforms.
Fixes: QTBUG-134304
Pick-to: 6.9 6.8
Change-Id: I2577600296e75080d503dc1a537ddbc00d0f207f
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reduce ci integration time for qtqwebengine winarm64, where doing
qthost msvc22 target takes ~5h compared to mingw ~15 min.
Add mingw runtime to path for WoA cross compile node.
Task-number: COIN-1211
Change-Id: Iecd6f924544d2a17a595ac85473f51b599f24202
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>