6245 Commits

Author SHA1 Message Date
Nils Petter Skålerud
0706273c76 Coin, FFmpeg: Fool-proof fix_ffmpeg_dependencies.sh
This script has previously failed under some configurations, while
also failing to stop provisioning.

This patch enables fast-fail behavior, catches potential issues with
missing executables early with a descriptive error message. This
should allow us to detect if the required packages are missing
in the future, and stop provisioning accordingly.

This patch also installs the necessary packages on the relevant
CI build targets.

Task-number: QTBUG-136930
Pick-to: 6.10 6.9 6.8
Change-Id: I7c781264ad67508d19fd44556a9caf0f201638d4
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-06-12 08:20:59 +02:00
Liang Qi
f8b56bf072 platform_configs: add Wayland tests on Ubuntu 24.04 arm64
with Qt Wayland QPA/client were moved into qtbase.

[CI Platforms]

Pick-to: 6.10
Change-Id: Ia268f974784c8f2cc0b4245041801a6442eaabce
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2025-06-11 11:06:41 +02:00
Elias Toivola
4aaba78cb4 Windows: Enable LSO back
Large Send Offload (LSO) was originally disabled because it caused
deterioration in network throughput but the cause of that deterioration
is now fixed in infra and LSO should be enabled back as it improves
network performance. LSO is enabled in Windows by default.

Pick-to: 6.10 6.9 6.8 6.5
Task-number: QTQAINFRA-7236
Change-Id: I243632d958007142792df0cbd9a341fb2b86df69
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2025-06-11 04:36:29 +00:00
Michal Klocek
539dc64e8e Install WebView2 on other windows nodes
We are going to run test suite twice with qtwebview, with
different backends on windows. Therefore install
webview2 to build plugin also on other nodes.

Task-number: QTBUG-128447
Task-number: QTBUG-75747
Pick-to: 6.10
Change-Id: I88da09eb9bf9e58f630ed65071d33bd4a89ac094
Reviewed-by: Toni Saario <toni.saario@qt.io>
2025-06-09 21:10:22 +02:00
Toni Saario
ecff7e6ddc Coin: VxWorks x86_64 add -enable-kvm parameter
This makes the qemu virtualize the target rather than emulating
it. Virtualization allows few times better performance in tests.

Pick-to: 6.9 6.10
Change-Id: I7a5f7e3e2b04c52034325459ef05bfc0dce5d0b7
Reviewed-by: Simo Fält <simo.falt@qt.io>
2025-06-09 16:08:07 +00:00
Tero Heikkinen
9c97715ff3 Remove SLES 15 SP5 from CI
[CI Platforms]

Pick-to: 6.10 6.9
Task-number: QTQAINFRA-6746
Change-Id: Ib7466af205c11b3576bbc86f64024e9a7d46126b
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2025-06-09 10:36:50 +03:00
Tero Heikkinen
fcd4b99100 Make SLES 15 SP6 tests as blocking in CI
[CI Platforms]

Pick-to: 6.10 6.9
Task-number: QTQAINFRA-6746
Change-Id: I697140edff662fc7846d7c6df411fa4f444906bc
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2025-06-09 10:36:38 +03:00
Cristian Le
46b323d94b ConfigureBuildQt: Reconfigure standalone parts also
Change-Id: Iaa985d43206d365b7e9138925801fc0dbccbde2e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-06-07 13:20:12 +02:00
Cristian Le
f902571318 ConfigureBuildQt: Move the standalone name construction
Moved the name construction to a dedicated function so that it can be
reused in `call_cmake_in_qt_build_dir`

Change-Id: Iace4130e79cd08f622e762e2861948db5f2bd972
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-06-07 13:20:12 +02:00
Cristian Le
2404c5c52f ConfigureBuildQt: Do another round of configure
After all repos are configured and built, do another round of
reconfigure.

This can catch issues in the find_package of plugins. E.g. when running
the builds for qtbase -> qtdeclarative -> qtmultimedia, during the
first pass qtdeclarative is reconfigured without any plugins present,
but in the second pass additional plugins will be added in the
`find_package` chain.

Change-Id: I298492463e38e57f250ee22f1e8c7f880ce9940a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-06-07 13:20:12 +02:00
Cristian Le
5949585fd8 ConfigureBuildQt: expose EXCLUDE_OPTIONAL_DEPS option
This is enabled by default and replaces the hard-coded qtdeclarative
dependencies.

Change-Id: I58dbf4f801aeacf73a0f38a5cbdb856418bddae4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-06-07 13:20:12 +02:00
Cristian Le
3b348e8712 Output the skipped optional modules when sorting module dependencies
If a list is provided to `OUTPUT_EXCLUDED_OPTIONAL_DEPS` for
`qt_internal_*_module_dependencies`, all optional dependencies that were
not marked as required when resolving the requested modules are saved to
the list.

Change-Id: I2c239a79f483c78af0d649c5b437db03d09eea57
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-06-07 13:20:12 +02:00
Cristian Le
f73a927bb4 ConfigureBuildQt: Allow to test with local sources
When using local sources, the sync step is replaced with setting up
symlinks to the current source folders.

Change-Id: I16500c130b35b962e9d0398498e0c83d71bdc149
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-06-07 13:20:12 +02:00
Cristian Le
1cef8ec34c ConfigureBuildQt: Add CMAKE_GENERATOR option to standalone parts
Also `configure_qt` did not have `CMAKE_GENERATOR` defined in the args.

Change-Id: I84a2aed1b992d8169d92fe727094708d8bd447b0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-06-07 13:20:12 +02:00
Cristian Le
f7af48b07e Load RunCMake variables from cache
Allow to define variables used in `ConfigureBuildQt` at configure time.
The preference is local var -> environment var -> cache var -> default.

Change-Id: Ib4bc4f31b3764a6c734e24562d18418560c3a8a8
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-06-07 13:20:12 +02:00
Nils Petter Skålerud
0583292728 Coin, FFmpeg: Check for valid envvars in install-ffmpeg-android.sh
This script requires that we have setup specific environment variables
ahead of time. If they are missing, we are prone to receiving
non-descriptive error messages.

This patch adds checks for the required environment variables, and
gives useful error messages if they are not set correctly.

Pick-to: 6.10 6.9 6.8
Change-Id: I0cfb99187f303b22dbdd46a7a848b85dbf571aad
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-06-07 10:00:50 +02:00
Liang Qi
1bbbc59714 Provisioning: Add Axivion bauhaus suite in Ubuntu 24.04 x64
Pick-to: 6.10
Change-Id: Ie8617a00d1a2612a478caa534d5d80ca4fcd0a3c
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
2025-06-06 08:41:00 +02:00
Liang Qi
b42d426d8f platform_configs: add DocsGenerationV2 for Ubuntu 24.04 x64
Prepare for documentation-warnings config.

Pick-to: 6.10 6.9 6.8
Task-number: QTQAINFRA-7146
Change-Id: Ibc08b33b5b61c80b30506bb6de0b466d3c19f915
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-06-06 08:40:56 +02:00
Nils Petter Skålerud
0e5937c8a4 Coin, FFmpeg, iOS: Add output parameter to 'install-ffmpeg-ios.sh'
This patch adds an optional parameter to the provisioning script
'install-ffmpeg-ios.sh', allowing us to override the output directory
for which the finalized library is installed.

This is particularly useful for local builds, where we often need
multiple different versions of FFmpeg installed, for different Qt
versions.

This patch has no impact for existing coin workflows.

Pick-to: 6.10 6.9 6.8
Change-Id: Ib0764eb29b84ae8badcfb48424f86316f3b2b650
Reviewed-by: Simo Fält <simo.falt@qt.io>
2025-06-05 18:20:32 +00:00
Nils Petter Skålerud
d72ace1a0d Coin, FFmpeg, iOS: Apply 'prefix' consistently
In the provisioning script 'install-ffmpeg-ios.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-ios.sh' so that the 'prefix' is
applied consistently throughout the script, allowing us to change
the output directory in the future.

Pick-to: 6.10 6.9 6.8
Change-Id: I3458984aa22f8c82ed4d0bfac8ac8e71356e8789
Reviewed-by: Simo Fält <simo.falt@qt.io>
2025-06-05 18:20:26 +00:00
Nils Petter Skålerud
708548742b Coin, FFmpeg, macOS: Add output parameter to 'install-ffmpeg-macos.sh'
This patch adds an optional parameter to the provisioning script
'install-ffmpeg-macos.sh', allowing us to override the output directory
for which the finalized library is installed.

This is particularly useful for local builds, where we often need
multiple different versions of FFmpeg installed, for different Qt
versions.

This patch has no impact for existing coin workflows.

Pick-to: 6.10 6.9 6.8
Change-Id: If31922e931db19ab189850b975ce0131a64321b4
Reviewed-by: Simo Fält <simo.falt@qt.io>
2025-06-05 18:20:22 +00:00
Alexey Edelev
f41e72adc6 Specify VCPKG_INSTALLED_DIR, VCPKG_HOST_TRIPLET, VCPGK_TARGET_TRIPLET
Set the VCPKG_INSTALLED_DIR, VCPKG_HOST_TRIPLET, VCPGK_TARGET_TRIPLET
environment variables after vcpkg ports installation. These variables
will be used when building Qt modules to setup the correct build
environment.

Change-Id: I3a625f4ef089b5da676b96a5bebaacfb09112ee4
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2025-06-05 20:20:16 +02:00
Tero Heikkinen
d485277f35 Ubuntu 24.04 aarch64: Upgrade to Ubuntu 24.04.2 LTS in Tier1 Wayland
Old Tier1: qtci-linux-Ubuntu-24.04-aarch64-50 - Wayland
New Tier1: qtci-linux-Ubuntu-24.04-aarch64-52 - Wayland

Software updater subscription had to change:
  - From: Security updates only
  - To:   Security and recommended updates
  - Otherwise provisioning 02-apt.sh updates fail

Task-number: QTQAINFRA-7007
Task-number: QTBUG-127920
Pick-to: 6.10
Change-Id: Id8f02897bb06b9f84ac7748a9dc10bd0afa0e1c3
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
2025-06-04 22:48:21 +02:00
Toni Saario
4c3fe22380 Update VxWorks builds and images to 25.03
VxWorks version update to 25.03 from 24.03.
Removed xf86drm patch.

Pick-to: 6.10
Change-Id: Idd5930fae79c68bc6c14cba5245404de9e851ef8
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
2025-06-04 18:01:31 +00:00
Elias Toivola
066371f7cd Provisioning: Disable Windows multicast device discoveries
Our CI does not need some mDNS multicast services by Windows and they
are spammed by Windows VMs in network with mdns.mcast.net requests.

Pick-to: 6.10 6.8 6.5
Task-number: QTQAINFRA-6761
Change-Id: Ie676f94b81e7281ec84d9fbbfa2fd7f1d28dfbca
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2025-06-04 18:00:56 +00:00
Alexey Edelev
5444edc8d7 Update the default-registry mirror for of vcpkg
Change-Id: Ia389855f52f09fcfbeb059bda63c19af19528815
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-06-04 19:00:53 +01:00
Alexey Edelev
48cf342e2d Switch to the static linking of vpkg ports by default
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>
2025-06-04 20:00:51 +02:00
Alexey Edelev
cff147cd19 Add vcpkg build of protobuf and gRPC
Provision protobuf and gRPC packages using vcpkg.

Change-Id: I4d834236408938e228fb0721474edfad946a8dc8
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-06-04 20:00:48 +02:00
Alexey Edelev
34eed19a83 Build arm64 vcpkg triplet on windows aarch64 platform
Change-Id: I46d928e8e326a58258cc7e6a21b46fc46c274957
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-06-04 20:00:45 +02:00
Morteza Jamshidi
e95025936a Add webview2 plugin to windows 10 node in the CI
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>
2025-06-03 15:07:43 +00:00
Liang Qi
3d9bbd5324 Linux: install devel package for libxcb-util
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>
2025-06-03 03:43:43 +00:00
Juha Vuolle
2e2af37c56 Remove the new QML TreeModel from the minimal configuration
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: 30aadf11aa3339887505233e293d26d27d96647a

Task-number: QTBUG-134299
Change-Id: Ie0adcc17f8cecd02c1c5c8bb47f8a085c029539a
Reviewed-by: Mate Barany <mate.barany@qt.io>
2025-06-02 19:02:38 +03:00
Juha Vuolle
f97ecab90e Remove -no-feature-clipboard from macos-quick-minimal config
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: 30aadf11aa3339887505233e293d26d27d96647a

Task-number: QTBUG-134299
Change-Id: I342cdd8cd37e8a54c1f70fda680ca6e9743ed2d5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2025-06-02 15:05:15 +03:00
Liang Qi
6db000ab67 platform_configs: remove ubuntu-22.04-developer-build
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>
2025-06-02 12:04:43 +02:00
Liang Qi
e2e25e8a66 platform_configs: remove two u2204 tests
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>
2025-06-02 12:04:41 +02:00
Liang Qi
57340da291 platform_configs: remove two tests configs on Wayland
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>
2025-06-02 12:04:40 +02:00
Juha Vuolle
30aadf11aa Add minimalistic Qt configuration for Quick apps
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>
2025-06-02 10:43:29 +03:00
Axel Spoerl
b3c634b4a5 Pre-provisioning SLES SP6: Select Gnome Classic session type
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>
2025-06-02 07:43:26 +00:00
Tero Heikkinen
45ffa61110 SLES 15 SP6: Change session type to GNOME Classic in Tier1
Change is done in Tier 1 image:
qtci-linux-SLES-15_SP6-x86_64-52

Pick-to: 6.10 6.9
Task-number: QTBUG-136467
Change-Id: I2924f3250dbe914b0c6bc687241725175d5f7aa5
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2025-06-02 07:43:23 +00:00
Elias Toivola
10f0d1443c SLES 15 SP6: Install gcc11 instead of gcc10
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>
2025-06-02 07:43:20 +00:00
Olli Vuolteenaho
aae8dc578b QtAA: Drop developer-builds from CI
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>
2025-06-02 05:03:32 +00:00
Qt Submodule Update Bot
71629630b6 Update submodules on 'dev in qt/qt5'
Change-Id: If5d15a692a5409c2363557b579886abc401f8767
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-05-24 20:01:27 +00:00
Qt Submodule Update Bot
38b059ea5b Update submodules on 'dev in qt/qt5'
Change-Id: I1611f9d70a401f6141dcb5eafe8587d56ec3396e
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-05-22 18:21:34 +00:00
Qt Submodule Update Bot
96fe6fba4b Update submodules on 'dev in qt/qt5'
Change-Id: I1a0e0e316044ed1759ff4e5bc8979bbcd012814e
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-05-20 17:45:41 +00:00
Marianne Yrjänä
e7075b5472 QNX: Add QXN8.0 to Ubuntu24.04 provisioning
Pick-to: 6.9 6.9.1 6.8
Change-Id: I5a4011ce5f23517d4dd7c9f64738e7be97b4c73d
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2025-05-19 07:22:59 +00:00
Toni Saario
56e326ae31 Build and run tests for windows arm cross-compilation
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>
2025-05-19 00:33:49 +02:00
Nils Petter Skålerud
03d15483a1 Coin, FFmpeg, macOS: Apply 'prefix' consistently
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>
2025-05-18 11:12:05 +02:00
Eike Ziller
ae3484739c COIN: Provision golang and upx on Ubuntu24/ARM
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>
2025-05-18 11:12:01 +02:00
Alexandru Croitor
d88eabc7f7 coin: Add a new nightly platform for qt5.git RunCMake tests
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>
2025-05-17 20:11:20 +02:00
Alexandru Croitor
49bf77b0f8 CMake: Add RunCMake test to configure and build Qt in various ways
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>
2025-05-17 20:11:17 +02:00