Compare commits

..

190 Commits

Author SHA1 Message Date
Qt Submodule Update Bot
419c5bfc2f Update submodules on '6.8 in qt/qt5'
Change-Id: Ic907a9edaf977c9e94aa201b5ff7d07e73d485dc
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-06-03 19:54:41 +00:00
Jani Heikkinen
5a6b72fa1b Adjust submodule branches
Change-Id: I88b5554e3b2eb31ddfc88dd59f2711c9c6739700
2024-06-03 05:53:49 +01:00
Qt Submodule Update Bot
811e778531 Update submodules on 'dev in qt/qt5'
Change-Id: I4f9e393e622da055b6470c01ca40c81f1522e3bc
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-06-01 07:04:21 +00:00
Tor Arne Vestbø
cc741a2c52 coin: Make the macOS Tart test configurations granularly significant
The significance of these configs are now controlled by the logic in
qtbase/coin/instructions/cmake_regular_test_instructions.yaml and the
per-repo override of the TART_SIGNIFICANT_TARGET_OSVERSIONS.

Change-Id: I4310eeb59ade34ed7a305a9aa08f63b23d557c07
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2024-05-31 13:57:22 +02:00
Qt Submodule Update Bot
c6ac207d12 Update submodules on 'dev in qt/qt5'
Change-Id: I0cd0ba2a19856afd058e00eb711c36af7b1ddd0f
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-05-31 05:51:10 +00:00
Qt Submodule Update Bot
3def887985 Update submodules on 'dev in qt/qt5'
Change-Id: I789edac0d5f07295abcfb3415593278e89b93ee7
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-05-29 17:06:34 +00:00
Qt Submodule Update Bot
bbf4621c7d Update submodules on 'dev in qt/qt5'
Change-Id: I1d3703ce41a724fe277767e687c72aca3ab70716
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-05-27 15:27:08 +00:00
Eike Ziller
dec2de7b82 COIN/QtCreator: Add configuration for Windows without tests
Windows is most picky wrt exporting/symbol resolution,
so it is a good platform to do a build check without tests.

Pick-to: 6.6 6.7
Change-Id: I477e20f8c8bf16e1206082ae0c2b3960c902989a
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2024-05-23 08:53:51 +02:00
Eike Ziller
7bc8bfbf18 COIN/QtCreator: Remove Qt5 configuration
This isn't supported for a longer time now.

Pick-to: 6.6 6.7
Change-Id: Id10fb6c73459e5f10f854b417af6b14eec2e0f78
Reviewed-by: David Schulz <david.schulz@qt.io>
2024-05-23 08:53:50 +02:00
Jani Heikkinen
c23af318f6 Revert "Temporarily remove packaging -flack from windows-11_22h2-arm64-msvc2022"
This reverts commit a9205624ea.

Reason for revert: "Fix" for signing issue is finally in and we need these WoA packages

Change-Id: I4e05e3be150c6f472f2088a4478c414f215deb80
Reviewed-by: Simo Fält <simo.falt@qt.io>
2024-05-23 04:54:52 +00:00
Qt Submodule Update Bot
8ef48d626f Update submodules on 'dev in qt/qt5'
Change-Id: I2ba820c0e3f57e4e29e810b70ec10564f69f5d48
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-05-23 02:09:24 +00:00
Mike Krus
ed96381b5f Mark Qt3D as deprecated
As per tQtC request

Change-Id: I6de2d99305437c45460417ba82f5ac4d259dbc88
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Tuukka Turunen <tuukka.turunen@qt.io>
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2024-05-22 07:06:06 +02:00
Teemu Holappa
7fe6905893 Fix qtsaferenderer-runtime.yaml configuration
Added new QEMU configurations
Fixed compile error in Axivion build (prevents dev update)

Change-Id: Iec75f86b241584c4b48904a13fa8e0aad032973a
Reviewed-by: Tarja Sundqvist <tarja.sundqvist@qt.io>
2024-05-20 10:01:50 +00:00
Marianne Yrjänä
295169f9fb Provisioning: Add QNX8 toolchain
Add QNX8 toolchain for linux host. Windows host not supported at the moment.

Change-Id: I6de2f408bba8e96fc5bc49afe43d84f7021885f4
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2024-05-19 07:47:27 +00:00
Marianne Yrjänä
319cbd99c8 Update QNX7.1 toolchain for CI
Pick-to: 6.7 6.5 6.2
Change-Id: I807fbfd468331a08b0672c4b2f02da1208470bf1
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-05-19 07:47:25 +00:00
Assam Boudjelthia
31d72b0e2c Coin: update jdk from 11 to 17 to support Android builds with Gradle 8+
Gradle 8 and AGP 8+ require JDK version 17 to work properly, this is
needed for CI test runs of Android.

Pick-to: 6.7
Task-number: QTBUG-106907
Change-Id: I437ee6752fe12ce4d40fbfe1af2bfff1b4ca243b
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-05-17 21:26:23 +03:00
Assam Boudjelthia
6b729467ca Android: bump minimum CI test emulator to Android 9 api 28
Following Android minimum version criteria, Android 9 would be the
version matching 90% market share range.

Fixes: QTBUG-125022
Task-number: QTBUG-124890
Change-Id: I6e103532f7c558f0111c9f1582a1b80cd61c47e4
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2024-05-17 21:26:02 +03:00
Ville-Pekka Karhu
4a4c5c1615 Platform configs: Add virtualized macOS 12 ARM tests as insignificant
Allows us to first see how macOS 12 tests in Tart on production works
before starting to move the blocking arm targets to Tart. Later configs
will be directly replaced and original ids will be used.

Change-Id: Ia4c64641af2dcdbe145e42f7aed97f5e98ef8fab
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-05-16 17:56:17 +00:00
Heikki Halmet
ae82c1ab18 Rhel 9.2 provisioning: Install xcb-util-cursor before updating repos
Task-number: QTQAINFRA-6325
Pick-to: 6.7
Change-Id: I88b2dda373f3a85bdc10cb79576efc733460b4aa
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-05-16 13:08:20 +00:00
Qt Submodule Update Bot
99ca6d5abb Update submodules on 'dev in qt/qt5'
Change-Id: I5c838c267491523ad63a076a7d2dc31902c47804
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-05-16 05:32:59 +00:00
Jani Heikkinen
a9205624ea Temporarily remove packaging -flack from windows-11_22h2-arm64-msvc2022
Signing in windows-11_22h2-arm64-msvc2022 is broken so we need to remove
packaging flag temporarily to enable submodule updates

Fixes: COIN-1149
Change-Id: Ia4a3ab07f2204c18b0f54dbe24d1a95fd28cad18
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-05-16 07:39:16 +03:00
Jani Heikkinen
bf633f08b7 Optimize 'Packaging' flag usage
Add 'Packaging' flag for new Windows on Arm build.

Remove 'Packaging' flag from builds which aren't used in packaging side:
- vxworks build on linux
- msvc2019 builds

Change-Id: I8b56d4f087c59a4e841d3789d1c3acff5fdb7b09
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-05-15 14:48:34 +03:00
Ville-Pekka Karhu
9387c715e9 Platform configs: Add virtualized macOS 13 ARM tests as insignificant
Allows us to first see how macOS 13 tests in Tart on production works before starting to
move the blocking arm targets to Tart. Later configs will be
directly replaced and original ids will be used.

Change-Id: I3e77d07f224bbfcb3b4673d83fb4684ad0de4887
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2024-05-15 11:48:31 +00:00
Zoltan Gera
ef13af8e5a Include python venv installation in Ubuntu provisioning
The venv module is part of the default Python installations in most
Linux distributions except the Debian line. However, we had this already
installed on Debian images, but not on Ubuntu images. This is required
for Qt Interface Framework.

Change-Id: I255f27edf53acbb7ab258d5495636759bddc888b
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2024-05-15 14:48:28 +03:00
Tero Heikkinen
3ac3b7d9f3 Provisioning: Add Windows 11 on ARM as non-blocking in CI
Visual Studio 2022 is the first msvc having natively support for
building and debugging ARM64 apps. [CI Platforms]

Provisioning needed to take new Get-CpuArchitecture
helpers.ps1 function into use in several installations.

Requirements for other branches
- Get-CpuArchitecture helpers.ps1 function
- Skip qtwebengine with Windows 11 ARM (QTBUG-124632)

List of excluded installations in Windows on ARM:

- Could be added later
  - MinGW - QTQAINFRA-6079
  - DirectX SDK for RTA
  - libclang
  - mcuexpresso
  - fbx for msvc2022
  - Ruby
  - For python
    - conan
    - emsdk

- Not supported yet
  - FFmpeg
  - Msys2 (for FFmpeg QTBUG-124399)
  - MySQL
  - PostgreSQL
  - Java JDK
  - Strawberry Perl

Task-number: QTQAINFRA-6109
Task-number: QTQAINFRA-5855
Pick-to: 6.7
Change-Id: I4130e78add53f8a6e05eb41b7617b3f9ca802178
Reviewed-by: Simo Fält <simo.falt@qt.io>
2024-05-14 19:47:28 +03:00
Tero Heikkinen
7aa7c459ac Provisioning: Remove Python2 from Windows provisioning
Python2 certificate failure blocks Windows provisioning.

Task-number: QTQAINFRA-6315
Change-Id: I6f1e273d30e60fc4cbe872cdae2e52330bdb1ac7
Reviewed-by: Simo Fält <simo.falt@qt.io>
2024-05-14 08:09:05 +03:00
Qt Submodule Update Bot
63f464da8a Update submodules on 'dev in qt/qt5'
Change-Id: I3a11349d1d3106cd37c3136a7f105bf716c0535e
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-05-11 00:48:22 +00:00
Alexey Edelev
a3a8e3421e Fix the broken semicolon separated list arguments for configure
When evaluating the arguments from the config.tl.opt file we need
to consider that arguments may contain the escaped semicolons for
the list arguments. The escaped semicolons '\;' needs to be converted
to a CMake brace escaped sequence to make sure that semicolon persist
when running the command.

Fixes: QTBUG-124265
Change-Id: I051f856b43f75b0bac17ae13bd8c7de540f8c794
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2024-05-10 17:08:30 +02:00
Tero Heikkinen
9eae314404 Provisioning: Add Ubuntu 24.04 ARM64 as non-blocking in CI
Documentation targets moved to nightly - QTBUG-125212 [CI Platforms]

Ubuntu 24.04 has gcc 13.2.0 .

Task-number: QTQAINFRA-6112
Task-number: QTQAINFRA-6098
Task-number: QTQAINFRA-6203
Change-Id: I2f7d24ed13f6a318d738e9cd2f607e928c6bb8a2
Reviewed-by: Liang Qi <liang.qi@qt.io>
2024-05-10 11:41:52 +00:00
Dimitrios Apostolou
d25f25f3af Copy mdns resolution workaround to the emulated platforms too
Applies fix from commit 5c6814fb18
to the emulated platforms.

Fixes: QTBUG-107696
Pick-to: 6.7 6.5
Change-Id: I9c282ecf9c29c57cce964ae9962f1857c953cfd8
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2024-05-10 07:31:29 +02:00
Dimitrios Apostolou
5f3586f59f Simplify command invocation
No need to wrap the sed call in a shell, just invoke sed directly.
And reduce the two separate sed invocations to one with two file arguments.

This change is purely aesthetic, functionality should be identical.

Pick-to: 6.7 6.5
Change-Id: If841301077e1c21fe846b28b5f7f6af422d86b93
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2024-05-10 07:31:27 +02:00
Alexey Edelev
faf1f3c1bc Add protobuf conformance_test_runner installation
This allows running protobuf conformance tests in CI.

Task-number: QTBUG-114143
Change-Id: I7596a1848629285f1a06243fc66bfcddec226038
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2024-05-09 07:35:03 +02:00
Ville-Pekka Karhu
673c5ae87f Platform Configs: Replace macOS 13 with macOS 14 as build and packaging target
This also switches to building with Xcode 15, as that's the Xcode
currently provisioned on our macOS 14 VMs.

The gRPC provisioning has been disabled for macOS 14 on ARM
due to linking errors for OpenSSL due to a faulty CMake find
scripts or tests.

Change-Id: Ia99720c8f1813bb0baf2062e3488202a4191eaf0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-05-08 16:36:46 +00:00
Jukka Jokiniva
d8e6489cef Revert "Add Git\usr\bin\ to path on windows"
This reverts commit 0477a26495.

Reason for revert: This change breaks qtinterfaceframework mingw build

Change-Id: Ib0790c2bee99aa0133925b7663999e80906d882d
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2024-04-30 11:05:20 +00:00
Kalle Viironen
715321a47d Add Ubuntu 22.04 aarch64 platform for RTA
Ubuntu 22.04 arm64 with minimal provision is added for RTA use only:
Git, Java and GCC are installed in 02-apt.sh script. Python 3.10.12
is found already in Ubuntu.

Task-number: QTQAINFRA-6212
Change-Id: Ib9931974179626afacdc7d6c03810a333ed3ae8e
Reviewed-by: Johanna Äijälä <johanna.aijala@qt.io>
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
2024-04-30 08:53:26 +03:00
Simo Fält
fe87f13d43 Remove 'Packaging' feature from qtlite config
Having 'Packaging' feature in config will cause binary artifacts to be
exported for release. This config is not part of release content.

Task-number: QTBUG-124818
Change-Id: Ie3add012ddaeacc771713958b328af7d334be266
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2024-04-29 22:43:39 +03:00
Tor Arne Vestbø
b86099c993 coin: Build OpenSSL as universal build for macOS ARM
Change-Id: I6769c4b1c62d9d89c502e90339841191cdfb674f
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2024-04-29 13:07:48 +02:00
Tony Sarajärvi
f074859391 Fix shellcheck problems
Change-Id: I277fd923f62aa5888d7e18c89471909732da30e5
Reviewed-by: Liang Qi <liang.qi@qt.io>
2024-04-28 06:06:50 +00:00
Qt Submodule Update Bot
ebdea5a794 Update submodules on 'dev in qt/qt5'
Change-Id: I8a5cd25ece719f1b21e71c423df5330711bdc733
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-04-26 21:14:16 +00:00
Simo Fält
e6f58ce000 Provisioning: Fix openssl lib path on Debian
This amends change Ia4bacf1b7751e15915fc7faca473cb0408a72e35.

Task-number: QTBUG-123049
Pick-to: 6.7
Change-Id: I0a3e24dd8157fd63c1bdfb06019faff2fa5ef3df
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
(cherry picked from commit 2ac1bddea4)
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-04-25 14:59:46 +02:00
Simo Fält
e34e62b3b2 Provisioning: Install openssl3 into Debian VM
Task-number: QTBUG-123049
Change-Id: Ia4bacf1b7751e15915fc7faca473cb0408a72e35
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-04-25 14:59:43 +02:00
Michael Brüning
92969b10f5 Use SetEnvVar instead of appending .bash_profile with LLVM variables
It seems that the existence of .bash_profile on Debian systems prevents
the .profile file from being read on login, which means some additions
to PATH that are essential for e.g. the Web Engine build are not made.

Pick-to: 6.7 6.6 6.5
Change-Id: Ib271ef49e573fc0588ffbaa9bebbfda4469b60f9
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Reviewed-by: Piotr Wierciński <piotr.wiercinski@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
2024-04-24 09:53:23 +01:00
Assam Boudjelthia
e47468b7d9 Android:Coin: fix shellcheck issues in android_linux.sh
use '=' and '?' instead of '\=' and '\?' and wrap the curl URL
in quotes.

Amends 39517ef0d0.

Pick-to: 6.7
Task-number: QTQAINFRA-6166
Change-Id: I6e6333cdb94043d5476cac5bc631ea1ca16bab1f
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
2024-04-24 07:51:52 +00:00
Qt Submodule Update Bot
9a459d8136 Update submodules on 'dev in qt/qt5'
Change-Id: Ia5180416bb06568b47f1f0781bc399f42aad1003
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-04-23 18:12:37 +00:00
Jari Helaakoski
a877059c95 Add disable deprecated up to 7.0.0 into QtLite COIN pipeline
Removing deprecated functions from compilation will reduce binary size

Task-number: QTBUG-104898
Change-Id: I7675ec30a5bfc5e4d1dd4179949a72507ba32b21
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
2024-04-23 11:16:36 +00:00
Assam Boudjelthia
2d7f6760dd Coin:Android: bump minimum CI test emulator to Android 8 api 26
Qt 6.7 has the minimum supported Android version as 8, this applies
that to the CI as well.

Pick-to: 6.7
Task-number: QTBUG-111919
Change-Id: Id4c9eda29f1b61bf739eae3624b07f44a893cfae
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2024-04-23 09:14:05 +00:00
Assam Boudjelthia
3d69ad8d8a Android: remove unused Android 13 (api 33) system image download
Android 13 system image was still being downloaded and an emulator
created for it while it's not being used in CI, so it's just adds
unnecessary load to provisioning.

Pick-to: 6.7
Change-Id: Ie33c82fd578dcfe68a77426c8e5c0cf047938833
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2024-04-23 09:14:02 +00:00
Elias Toivola
86c53b6cce Update MySQL and enable it for more Windows targets
Currently MySQL is enabled only for Windows 10 22h2 msvc2022 and it
uses deprecated MySQL Connector/C. This change updates MySQL client
library by replacing MySQL Connector/C with MySQL 8.0 Server package
which contains a newer client library that works in other
Windows targets.

This change also enables MySQL in other non-packaging
Windows 10/11 targets except ARM, as Windows on ARM still
lacks MySQL support.

Task-number: QTQAINFRA-4999
Fixes: QTBUG-106097
Change-Id: I4472d3e441668bada18268fc4486bbbeefc4afd6
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2024-04-21 18:21:32 +03:00
Pavel Dubsky
befe4a61d6 Update provisioning script to build FFmpeg for Windows ARM64
Fixes: QTBUG-122745
Pick-to: 6.7 6.5
Change-Id: Ib03484ac89f07d7ad6433b0035769f4a9363495b
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2024-04-20 08:37:10 +02:00
Oliver Wolff
8fae627f8b Provisioning: Add Get-CpuArchitecture helper function
For the addition of ARM64 to our checked packages, this helper function
will come in handy as it is more fine grained than Is64BitHost.

Change-Id: I8956c1ca6e445c0b783a39e4d42069199496f053
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2024-04-20 08:37:08 +02:00
Casimir Saastamoinen
0477a26495 Add Git\usr\bin\ to path on windows
Adding Git\usr\bin\ to path would make it possible to use vim and
compile in ssh session

Task-number: COIN-1060
Change-Id: Ic96d787de3cc71c685e09ae6fd00c35745e747a1
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2024-04-20 09:37:05 +03:00
Jari Helaakoski
c58680d7a3 Make QtLite COIN pipeline significant
Task-number: QTBUG-104898
Change-Id: I0abc1dddf34d9744db050a5bb9d7df1f5198c602
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
2024-04-18 11:44:55 +00:00
Qt Submodule Update Bot
7a2aa8b94a Update submodules on 'dev in qt/qt5'
Change-Id: I343ffa9e873d6af9b3955ffafa26eda8b3c45193
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-04-18 06:28:56 +00:00
Axel Spoerl
bf66cc70bc Mark qemu-armv7i/arm64-developer-build insignificant
Linux developer builds on QEMU (armv7 and arm 64) block CI for unknown
reasons.

The platforms host Ubuntu 22. Since Ubuntu is a platform of its own,
mark this insignificant in order to unblock CI.

Task-number: QTQAINFRA-6245
Change-Id: I95dacca73eb9f5ea004601611e654cd75a3d0bf4
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2024-04-17 18:58:58 +02:00
Elias Toivola
25f4cc5db6 Remove Windows 11 22H2 targets from CI
22H2 is replaced by Windows 11 23H2.

Task-number: QTQAINFRA-6113
Task-number: QTQAINFRA-6075
Change-Id: Ifd960a4c18b19f91a2624a23eacffa59c2faefac
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-04-16 20:51:37 +03:00
Elias Toivola
dc919e14d8 Make Windows 11 23H2 targets blocking
This change removes 'InsignificantTests' feature from Windows 11 23H2
platform configurations as there has not been increased test fail
rates compared to 22h2 targets in the past 10 days.

Also add 'Packaging' to windows-11_23H2-msvc2022 target

Task-number: QTQAINFRA-6113
Task-number: QTQAINFRA-6075
Task-number: QTBUG-124244
Change-Id: I8ddb9dfa45199982511f46841d1be30757055b25
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2024-04-16 20:51:35 +03:00
Alexey Edelev
63f83fb13d Add the explicit INPUT_headersclean=ON flag for non-qtbase repos
The 'headersclean' flag is not a "feature" anymore, so qtbase doesn't
propagate it for other repositories. CI no need to set either
INPUT_headersclean=ON or add -headersclean flag to the
qt-configure-module script command line.

Task-number: QTBUG-121722
Change-Id: I6970d6a04dd51ad4d3df114212f6410b80ddc6a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2024-04-16 06:25:00 +02:00
Assam Boudjelthia
39517ef0d0 Android:Coin: do gradle build in provisioning to cache downloadables
If Gradle is not present in the system, it's downloaded from the URL
from the Gradle wrapper. Also, the same for AGP when an Android
project build is done. Currently, that's done on every integration,
and that can be unreliable due to networking flakiness. With this
patch, a Gradle build is done once during provisioning where the
downloads of Gradle and AGP dependencies are downloaded.

Fixes: QTQAINFRA-6166
Fixes: QTQAINFRA-4726
Fixes: QTBUG-117203
Fixes: QTBUG-114699
Change-Id: Ic9fd8aeea3379ca1d45ffeb4523a52e2846fcabb
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-04-14 13:28:59 +00:00
Robert Löhning
6941e50a6d README.md: Update MinGW requirement
Pick-to: 6.7
Change-Id: I931202f00592d5fc6411fa2d8a7825c5b9117c4e
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
2024-04-08 16:48:07 +02:00
Alexey Edelev
38ab29daf4 Ensure that the list of modules to exclude is not empty
Change-Id: I4ad2044966d793f7d2596336120942d65d2187d9
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2024-04-06 08:22:46 +01:00
Assam Boudjelthia
a9f16c0abd Coin:Android: update emulator version to 34.1.19
Update to latest (as of now) Android emulator version 34.1.19, which
might solve Vulkan crashes on some CI tests.

Pick-to: 6.7 6.6 6.5
Task-number: QTQAINFRA-5971
Change-Id: Ic81158f44ac5c922bfdbe6f5c04900234e063615
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-04-05 05:47:09 +00:00
Liang Qi
3e57070389 coin: test gcc-12 for qtbase only
Task-number: QTQAINFRA-6203
Change-Id: I4515b2be1cf9b9fe2f559dddf52f25d67f0e131f
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
2024-04-04 15:20:10 +02:00
Allan Sandfeld Jensen
ee56a3b8ae Add gbm dependencies for webengine to RHEL
Was previously only added for 8.4 and 9.0

Pick-to: 6.7 6.5
Change-Id: Ifa22b6836818ad59b6f3dcfd6b1a6dbc1293782b
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2024-04-04 09:41:49 +01:00
Tor Arne Vestbø
0a8f1050f9 Fix shellcheck warnings in set_tcc_permissions.sh
Pick-to: 6.7
Change-Id: I6b4de6e02e92d4c85fbb58cb1573a0ab3a178b24
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
2024-04-03 13:57:31 +02:00
Toni Saario
c06ac4d550 Move c++20 to msvc2022 on windows 11 23h2
Amends f22c8e459f

Change-Id: I328cd0fbe7b93c84903373224ebc8d230ea7f62f
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-04-02 15:45:17 +03:00
Elias Toivola
5157d1ef93 Add Windows 11 23H2 as non-blocking in CI
Windows 11 23H2 version which will replace Windows 11 22H2 once the new version is deemed as stable. Until then, 23h2 tests will be set as insignificant.

Task-number: QTQAINFRA-6075
Task-number: QTQAINFRA-6113
Change-Id: I15054813896210fadf14da815ad5a7b3e402e800
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-03-28 18:30:59 +02:00
Toni Saario
786faf4727 Update vxworks VSB and VIP
Adds flags
"_WRS_CONFIG_KERNEL_SSP=y"
"_WRS_CONFIG_RTP_SSP=y"
for VSB.

Task-number: QTBUG-123715
Change-Id: I069d86d9633148fc50654f2e43ab7b8c9152f973
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2024-03-28 09:31:42 +00:00
Matti Paaso
5073850891 Provisioning: Update Axivion bauhaus-suite
Update tool from version 7.7.1 into version 7.7.4. License file
is also updated.

Change-Id: Ia38ed9d58bd4b5e5c1efdacca866faf4bfe95a09
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-03-27 22:35:57 +02:00
Simo Fält
1f69b89aff Provisioning: Disable keyring password prompt
Fixes: QTQAINFRA-6215
Pick-to: 6.6 6.5
Change-Id: I50e70177f763493107d0919625f4885dc3a9713d
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit 1716158656)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-03-27 17:36:56 +00:00
Fabian Kosmale
61dc233044 init-repository: Check for cmake
And bail out with proper warning if cmake is missing

Change-Id: I39a9e340f873f8de05264d57b2a80fb754b30fbe
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
2024-03-26 23:07:40 +01:00
Alexey Edelev
b1a9c94a19 Fix the typo in list(APPEND command
Amends 13a7e25f5d

Pick-to: 6.7
Change-Id: I52f0990c1b956a8a1c9315e02114e429548bd2d2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2024-03-26 23:07:20 +01:00
Tero Heikkinen
272d49061e Provisioning: Update MSVC2022 in CI
Updated:
Visual Studio Professional 2022
Visual Studio Build Tools 2022
CL new version 19.39.33523

BackgroundDownloader.exe disabled to reduce CPU usage during idle.

Task-number: QTQAINFRA-6204
Task-number: QTQAINFRA-6190
Task-number: QTQAINFRA-6206
Change-Id: I25dfc393a4b320cbaddefda2c8ff4b1738a776d8
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
2024-03-26 07:33:15 +02:00
Joerg Bornemann
c8a236e858 CI: Turn off FEATURE_clangcpp for MSVC2022
This feature turns off clang-support for lupdate.

Task-number: QTBUG-123611
Task-number: QTQAINFRA-6204
Change-Id: I192b711b6a310e3dd1da3fefe2ca0c8fb732a01c
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2024-03-26 06:33:11 +01:00
Dominik Holland
532938387d coin: Disable Tests for the nightly ubuntu lcov config
The actual tests run in a special setup which takes care the tests are
build and run accordingly. The 'DisableTests' feature should make sure
the standard test build is skipped.

Change-Id: I7889c86b19a0f049fd3f682c9f70ed8acf5aeabe
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
2024-03-22 11:20:36 +01:00
Ville-Pekka Karhu
6440fe6f51 Provisioning: Upgrade Xcode to version 15.3 for macOS 14 ARM and Intel
Task-number: QTQAINFRA-6211
Change-Id: I26995366ca954d6b619f5dfe70f7abb5da7a2b31
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-03-22 12:20:34 +02:00
Alexey Edelev
13a7e25f5d Avoid collecting dependencies from modules that were explicitly skipped
If either -skip <module> or BUILD_<module>=OFF is set from command line
we should avoid processing the module dependencies and exclude it from
the list of modules that needs to be build.

Pick-to: 6.7
Change-Id: Ieec8db085221cc4abd5d8ac83c06ecce25d5d4b0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2024-03-22 11:20:31 +01:00
Alex Bu
d77a38f2aa Add platform configs for meta-boot2qt-riscv
CI configs for new Boot2Qt repo.

Change-Id: Ib94f58d067eee6cb2d436984cf5dda40f575bbb4
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
2024-03-21 08:44:46 +02:00
Ville-Pekka Karhu
9ceb1b5ef5 Platform configs: Replace hardware macOS 14 ARM with virtualized macOS 14 ARM
Task-number: QTQAINFRA-5831
Change-Id: Ibdd2360a55855d04bf02d6047870f48319c2ce9d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-03-19 09:30:09 +00:00
Qt Submodule Update Bot
bbde52b3c5 Update submodules on 'dev in qt/qt5'
Change-Id: Ie7762721a37bc954d2f7962467654c31b5464e37
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-03-19 02:28:27 +00:00
Joerg Bornemann
f22c8e459f CI: Turn off C++20 for MSVC2019
qtbase/45fd36f1480a6229879a4e59236ffa1d1d22dfbf triggers internal
compiler errors in MSVC2019 when configuring Qt with -c++std c++20.

Move the build-testing of the C++20 standard to
windows-11_22h2-msvc2022.

Change-Id: I7591223ae391471c61a80883f305c73e43945714
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-03-18 12:47:34 +01:00
Liang Qi
23ce6f4378 Run tests on offscreen mode for debian arm
Debian arm only has Wayland, and there is no QtWayland QPA plugin
available yet during the integration of each module. We can run
offscreen mode for now. And enable tests on Wayland in qtwayland
and qt5 integration.

Pick-to: 6.7 6.6 6.5
Task-number: QTQAINFRA-5594
Change-Id: Ie06d0b88509f9e55c96ce3b05b18ff8cec672f6b
Reviewed-by: Liang Qi <liang.qi@qt.io>
2024-03-18 11:30:54 +01:00
Matti Paaso
1cda55ed91 Add new Axivion Analysis configuration for 7.7.1
code_annotations.json file added into configuration.

Change-Id: I64925cdcb592eb76d0e4231ea35a60f7fb29e0de
Reviewed-by: <sebastian.krings@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-03-18 08:16:31 +02:00
Qt Submodule Update Bot
09ca183bb6 Update submodules on 'dev in qt/qt5'
Change-Id: Ic8dbfdda6aac076980cad6a9e0824d5e1b5db331
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-03-15 19:30:23 +00:00
Ville-Pekka Karhu
25bc8c0ba9 Provisioning: Add Spotlight disabling to macOS 13 and 14 ARM
Pick-to: 6.7
Change-Id: Ibdb5d7d23d43b442811e4a47096b1038fcff3b27
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-03-15 15:18:07 +02:00
Artem Dyomin
a53b63019f Implement dynamical ffmpeg linking on macOS
* fix dependencies and install names (absolute => relative)
* fix compilation build of dylib on xcode 15.
* add matching build instructions to yaml.
* old macos versions don't have 'realpath', workaround is used.

Task-number: QTBUG-120989
Pick-to: 6.7 6.6 6.5
Change-Id: I22e413d8f6d05c8c7d6d09a5926691216e781fd3
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
2024-03-13 11:54:46 +00:00
Piotr Wiercinski
a84104df1c Provisioning: Install webdriver-manager for Python3
WebDriverManager will be used to install correct version of
chromedriver for WebAssembly Selenium testing.

Task-number: QTBUG-122729
Change-Id: I49b61da3d8dd20b36ec6965c258a6a608ac33a63
Reviewed-by: Simo Fält <simo.falt@qt.io>
2024-03-12 14:37:27 +00:00
Tor Arne Vestbø
b4de4de742 coin: Give bootstrap-agent permission to use microphone on macOS
The bootstrap-agent is the 'responsible process' in TCC terms when
it comes to whether a test should be allowed to access the microphone.

 https://www.qt.io/blog/the-curious-case-of-the-responsible-process

By giving this process the permission explicitly, by modifying the
TCC database, we ensure that all tests run as child processes also
get this permission.

Change-Id: Ia03084ac89f0717ac6457b0035769f4a9863495b
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2024-03-11 09:17:21 +00:00
Qt Submodule Update Bot
6d8dd19dae Update submodules on 'dev in qt/qt5'
Change-Id: I18ce853c20a31f99dfee4a1ece54017dcb10878d
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-03-10 23:13:15 +00:00
Simo Fält
a3f2c30374 CI: Use '-qt-doubleconversion' with Debian config
This is to avoid additional dependencies.

Fixes: QTBUG-123051
Pick-to: 6.7
Change-Id: Idb6937e9df353f1667eabedb2642a766131d02da
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
(cherry picked from commit 3bbe6f0250)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-03-08 01:08:10 +00:00
Alexandru Croitor
f818f73c09 CMake: Fix configure -help to work
The -help option was parsed by init-repository and not passed along
to configure. Make sure to pass it.

Currently this means a developer won't be able to see the
init-repository help when using the configure script.

Task-number: QTBUG-120030
Change-Id: I5d8c0f9147e1fcd5522ab98ad9ab0947a8411d1a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2024-03-04 17:22:39 +01:00
Alexey Edelev
7c8bab37bb Fix the broken standalone -submodules argument in top-level configure
Make sure that -submodules argument is processed when we assume that
the top-level Qt meta repository is already initialized.

Amends 2c9664ca33

Fixes: QTBUG-122954
Change-Id: Id7a325c2dd670667e8b0fdcd607b52080b118f4f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2024-03-04 16:24:46 +01:00
Qt Submodule Update Bot
6c57ec909d Update submodules on 'dev in qt/qt5'
Change-Id: I3e952781b1eb1ca3f3bd0a10be70c9a1db86f81d
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-03-04 15:24:27 +00:00
Simo Fält
859b4e0c8c CI: Restore lost variable for skipping Debian instructions
Change-Id: I6e0cbb9f974bbe305682afffdfece810307225e6
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-03-01 08:53:10 +02:00
Qt Submodule Update Bot
d20032ea60 Update submodules on 'dev in qt/qt5'
Change-Id: I3cc0c8a2dc4b907497be110d23b8f9b60419ef64
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-02-29 00:18:58 +00:00
Simo Fält
54245a4888 COIN: Update used chroot for Debian packages
Use Ubuntu 22.04 instead of 20.04

Pick-to: 6.7
Change-Id: If03ba14555fdcd0c98fab3843bdfd5c2ca1eba3f
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-02-28 05:24:10 +00:00
Alexandru Croitor
2c9664ca33 CMake: Integrate init-repository with the configure script
Calling configure will now implicitly run init-repository when
appropriate. See further down below for what "appropriate" means.

All supported init-repository options can be passed to configure as
except for -mirror, -oslo, -berlin.

This includes useful options like -submodules, -no-resolve-deps and
-no-optional-deps.

When running configure on a qt5.git clone without any submodules
cloned, configure will exit with a helpful error message suggesting to
pass -init-submodules, so it automatically clones missing repositories.
This means cloning is opt-in, so that internet access is not done
implicitly.

The error message also suggests passing the -submodules option.
This will affect which submodules will be cloned by init-repository
and which submodules will be configured by configure.
In this case -submodules is effectively an alias of
init-repository's -module-subset for cloning purposes.

When calling configure a second time, without -init-submodules, on an
already configured repo, init-repository behavior is entirely skipped.

-submodules now accepts init-repository-style special values like
"essential", "addon", "all", "existing", "-deprecated" for the purpose
of cloning submodules. The values are then translated into actual repos
that should also be configured or skipped by configure.

The default subset of cloned submodules is currently the same one as
init-repository, "default", which clones 44 actively maintained
repositories as well as deprecated submodules.

If configure is called a second time WITH -init-submodules, it's the
same as calling init-repository --force to re-initialize submodules.
In this case passing something like
 --submodules existing,<additional-submodules>
might make sense to add or remove submodules.

As a drive-by this also fixes the bug where you couldn't pass a
  configure -- -DFOO=0
parameter to configure, because it got treated as '0>', redirecting
from a different stream than stdout, leading to empty content in the
file.

[ChangeLog][General][Build System] The configure script now implicitly
calls init-repository when appropriate and accepts init-repository
command line options.

Fixes: QTBUG-120030
Task-number: QTBUG-122622
Change-Id: Iedbfcbf0a87c8ee89e40d00b6377b68296a65a62
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-02-28 06:24:02 +01:00
Alexandru Croitor
915b8d2f54 CMake: Add a test for init-repository
The new test uses the recently introduced upstream cmake test
infrastructure module, to ensure the execution log output is identical
between the old perl script and new the cmake script for a few basic
use cases. It is not an exhaustive test of all features. It should
work on Windows, macOS, Linux (assuming perl is installed).

There are also a few tests that only apply to the cmake-script
version for features that exist only in the latter (like the 'existing'
module-subset key).

The test is a 'manual' test instead of an 'auto' test because we don't
really want to clone so many submodules as part of every qt5.git
integration in Coin.
In the future, we could potentially add a nightly Jenkins job to run
the tests.

Task-number: QTBUG-120030
Change-Id: I4201d734c2877109102518b073dec24bb63edc24
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
2024-02-28 06:23:50 +01:00
Alexandru Croitor
b742509973 CMake: Add upstream cmake (3rdparty) test infrastructure module
It will be used to write some manual tests for init-repository to
ensure there are no big regressions between the perl and cmake
scripts.

It is only used for the manual tests and is not shipped or installed
as part of the Qt installation.

The code is licensed under BSD-3.

The files were renamed to be more inline with Qt's naming.

The contents of QtIRTestHelpers.cmake is one function from
<cmake-upstream>/Tests/RunCMake/CMakeLists.txt

The contents of QtIRRunCMake.cmake is the whole file
<cmake-upstream>/Tests/RunCMake/RunCMake.cmake

Task-number: QTBUG-120030
Change-Id: Ia3f459fe25b9b8c683a69b5dded2019e03eebdb9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
2024-02-28 06:23:44 +01:00
Alexandru Croitor
29019c9cae CMake: Rewrite init-repository using CMake and .sh / .bat scripts
init-repository is now implemented using CMake + .sh / .bat scripts.

The intent behind the change is not to require Perl to checkout and
build Qt, because it can be troublesome to acquire on Windows and it
can also lead to issues during builds due to CMake picking up a Perl
distribution-shipped compiler.

All previous options were ported over like
- module-subset
- alternates
- etc.

A few new options were added:
- --resolve-deps / --no-resolve-deps
- --optional-deps / --no-optional-deps
- --verbose
and some other internal ones for testing reasons.

The new script does automatic resolving of dependencies
based on the depends / recommends keys in .gitmodules unless
--no-resolve-deps is passed.
So if you configure with --module-subset=qtsvg, the script will also
initialize qtbase.
If --no-optional-deps is passed, only required dependencies ('depends'
ky) will be included and optional dependencies ('recommends' key) will
be excluded.

The new script now has a new default behavior when calling
init-repository a second time with --force, without specifying a
--module-subset option. Instead of initializing all submodules, it
will just update the existing / previously initialized submodules.

It also understands a new module-subset keyword "existing", which
expands to the previously initialized submodules, so someone can
initialize an additional submodule by calling
 init-repository -f --module-subset=existing,qtsvg

Implementation notes:

The overall code flow is init-repository -> cmake/QtIRScript.cmake
-> qt_ir_run_main_script -> qt_ir_run_after_args_parsed ->
qt_ir_handle_init_submodules (recursive) -> qt_ir_clone_one_submodule
with some bells and whistles on the side.

The command line parsing is an adapted copy of the functions
in qtbase/cmake/QtProcessConfigureArgs.cmake. We can't use those exact
functions because qtbase is not available when init-repository is
initially called, and force cloning qtbase was deemed undesirable.

We also have a new mechanism to detect whether init-repository was
previously called. The perl script used the existence of the qtbase
submodule as the check. In the cmake script, we instead set a custom
marker into the local repo config file.

Otherwise the code logic should be a faithful reimplementation of
init-repository.pl aside from some small things like logging and
progress reporting.

The pre-existing git cloning logic in QtTopLevelHelpers was not used
because it would not be compatible with the alternates option and I
didn't want to accidentally break the pre-existing code. Plus
init-repository is a bit opinionated about how it clones and checks
out repos.
The dependency collection and sorting logic uses the pre-existing code
though.

See follow up commit about implicitly calling init-repository when
qt5/configure is called and the repo was not initialized before.

[ChangeLog][General] init-repository was rewritten using CMake. Perl
is no longer required to initialize the qt5.git super repo.

Task-number: QTBUG-120030
Task-number: QTBUG-122622
Change-Id: Ibc38ab79d3fdedd62111ebbec496eabd64c20d2b
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-02-28 06:23:36 +01:00
Alexandru Croitor
1971e8075d CMake: Rename init-repository script to make space for cmake script
Task-number: QTBUG-120030
Change-Id: Iae2f3e25814321729c213503db2ac8a3a39cf2d9
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-02-28 06:23:32 +01:00
Alexandru Croitor
75365f3f31 CMake: Add copyright blurbs to our cmake files
Change-Id: I7bd7c8d9f193fdebc9ccd2a04d7b8cfb3ab4963d
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-02-28 06:23:28 +01:00
Dominik Holland
18287421fd Add a ubuntu lcov nightly configuration
Also install lcov 2.0 into our ubuntu machines.

Change-Id: Ib70445c94ae1dab07b9b58ba58900b12f7d23161
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
2024-02-27 06:14:46 +01:00
Simo Fält
c6d5521c45 Provisioning: Fix re-installing ca-certificates on Debian
If the installed ca-certificates on tier1 is something that doesn't
exist in the repo anymore, re-install will fail. So just try to install
and expect update if a more recent version is available.

Pick-to: 6.7
Change-Id: Ib6e610f4908fcae6af7e79ecc37ffe600c6ee7af
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-02-27 05:14:43 +00:00
Qt Submodule Update Bot
b63568cf60 Update submodules on 'dev in qt/qt5'
Change-Id: I8ccc11bd0a590a36fb491faebe871946480294b0
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-02-26 17:08:41 +00:00
Jøger Hansegård
04910ff946 Upgrade to msys2 20240113 in Windows provisioning
This upgrade is needed because msys2 20220319 fails to install
diffutils. Its url is broken. Diffutils was first added on 6.5

Fixes: QTBUG-122465
Pick-to: 6.7 6.6 6.5
Change-Id: If94cafed68f3400557e01365e743155e9b732dac
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2024-02-23 15:08:19 +01:00
Jari Helaakoski
dc10fbdc78 Add QtLite into CI
QtLite allows user to select subset of Qt features.
This combined with static linking and link time optimization
produces up to 80% smaller QML application

Change-Id: Ied98a564cca39901091e751303341f83b672a631
Task-number: QTBUG-117638
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
2024-02-23 13:08:33 +00:00
Simo Fält
b67103423c COIN: Disable Debian config from modules missing rules
Task-number: QTBUG-122447
Pick-to: 6.6 6.7
Change-Id: I6e893d07e30bd246b78559dd439fbaff452468e9
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-02-21 13:28:01 +00:00
Artem Dyomin
45220efb3a Update ffmpeg: explicitly refer to the latest release 6.1.1
Pick-to: 6.7 6.6 6.5
Change-Id: I231c5cdc6155de0d1ea98220a90ecc0f910b34d6
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2024-02-21 13:27:56 +00:00
Tero Heikkinen
e6d06a6f92 Provisioning: Make RHEL versions static
With new CI policy to always update packages when provisioning changes,
but system & packages are tied to a specific RHEL release i.e. --set=9.2

This could reduce unwanted upgrades and make provisioning more stable.

Task-number: QTQAINFRA-5658
Pick-to: 6.7
Change-Id: I898a793acf152ebb6e1f31c9b26a98f47145bd5a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
2024-02-20 16:33:38 +02:00
Qt Submodule Update Bot
1f91e26dfa Update submodules on 'dev in qt/qt5'
Change-Id: Id85441fb93469e35a12da8350f7c97e0d75b7afc
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-02-20 14:05:19 +00:00
Topi Reinio
0ac7878a57 coin: Update provisioned qdoc, qtattributionsscanner binaries
Update qdoc and qtattributionsscanner to the latest versions from
qttools/dev.

The qdoc binary is now built against libClang v17.0.1. It also supports
the new \compares and \compareswith commands introduced in Qt 6.7.

Pick-to: 6.7
Task-number: QTBUG-111580
Change-Id: I7d91226a89870968ecf3c9938ffcb451b1ea5c68
Reviewed-by: Luca Di Sera <luca.disera@qt.io>
2024-02-18 19:57:43 +00:00
Lorn Potter
f0f3e42bf5 wasm: update Emscripten to 3.1.50
Pick-to: 6.7
Change-Id: I39f3dbfce016a95a5c88b11596e666791c2311af
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Piotr Wierciński <piotr.wiercinski@qt.io>
2024-02-18 20:57:41 +01:00
Heikki Halmet
0c85cb928e Provisioning macos 11 ARM: Install util-linux package for license service
This is required for macOS ARM target in license service

Task-number: QLS-455
Change-Id: I7029e58e84e54818e11f90540f6c830bf79b4d63
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2024-02-18 19:57:38 +00:00
Tony Sarajärvi
c392699a9c Fix ci-files01-hki.intra.qt.io -> ci.qt.io in provision scripts
Change-Id: I4d0a129c170583d79dd6a0c8c38aa3db95e08c31
Reviewed-by: Casimir Saastamoinen <casimir.saastamoinen@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-02-18 19:57:36 +00:00
Qt Submodule Update Bot
1a1af3cab6 Update submodules on 'dev in qt/qt5'
Change-Id: I0afccdc3f8537052490a70f594e22e03c7dfbb78
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
2024-02-16 07:31:29 +02:00
Artem Dyomin
85c2ab668b Update ffmpeg 6.0 => 6.1 for android targets on unix hosts
In n6.1, the target cpu is supposed to be x86-64 instead of x86_64.

Task-number: QTBUG-121343
Pick-to: 6.7 6.6 6.5
Change-Id: Id87a6eaaf73f093bbac66f245998cda6a3e992fc
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2024-02-14 22:28:07 +00:00
Jussi Witick
5acf7834c1 Revert "Add Insignificant to Axivion analysis builds for QSR-runtime"
This reverts commit cd515c6b07.

Reason for revert: Axivion licensing issue in dev provisioning has been fixed. Remove the insignificant flags from these Axivion builds for Qt Safe Renderer.

Change-Id: I0fb42fa1ed61a9044e5d53160481eeddbad87555
Reviewed-by: Teemu Holappa <teemu.holappa@qt.io>
2024-02-14 09:44:54 +00:00
Simo Fält
2df41ae02b COIN: Update branch in Debian rules repositories
Change-Id: Ic4ed1e04c94223b533c63f59133af0befc26dd5c
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-02-14 09:49:23 +02:00
Ville-Pekka Karhu
dffc3dd7df Platform configs: Add virtualized macOS 14 ARM tests as insignificant
Allows us to first see tart on production load before starting to
move the blocking arm targets to tart. Later configs will be
directly replaced and original ids will be used.

Change-Id: I865e6fe46b61828b6123b69973a2a4d209697c5f
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-02-14 06:11:03 +00:00
Artem Dyomin
231d089553 Retain symlinks upon making universal macOS binaries
Saving symlinks is important when we build dynamic libs,
it will be needed for building QtMM + dynamic ffmpeg.

Task-number: QTBUG-120989
Pick-to: 6.7 6.6 6.5
Change-Id: I58c040a81f1fa6a3b316ace864fda0687415fd0a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-02-12 16:17:10 +00:00
Alexey Edelev
7b104e18f8 Add libprotoc libprotobuf and libgrpc to Debian aarch64 provisioning
Use the system libraries.

Pick-to: 6.5 6.6 6.7
Task-number: QTBUG-121579
Change-Id: I15e0199a8aa41f607af43569a685cced3b522aec
Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io>
2024-02-12 11:08:28 +01:00
Alexey Edelev
4f2674dce6 Suggest the correct switch to skip repo when configuring Qt
Add -DBUILD_<repo>=OFF suggestion for the cases when configuring Qt
using CMake and the repo dependecies are missing.

Change-Id: Iaa370b49e8fd634bebb7c8300d076165c51dec5e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2024-02-12 11:08:28 +01:00
Simo Fält
5c4e8c7a64 Provisioning: Install libclang on Debian 11 template
Pick-to: 6.7
Task-number: QTBUG-120912
Change-Id: I12e71c5c3058756e3e0eac420fb19a1f752b64b7
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2024-02-12 06:52:32 +00:00
Dimitrios Apostolou
e1054c8abb Enable gdb stacktraces on all Linux configurations
This amends commit c66f8407a8 by running
the script on the remaining Linux configurations where gdb stacktraces
were already working, in order to avoid breakage in the future.

Change-Id: Ic069ed5369f761dcc3557b2ea7e09de703ebc142
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-02-06 16:11:09 +01:00
Dimitrios Apostolou
7523cd1951 Fix RHEL-9.2 provisioning getting stuck in disabling packagekit
packagekit service can't be disabled (it's missing an [install]
section), and sometimes it gets activated by other means before
PackageKit uninstalled.

So mask the unit, and try to stop the service repeatedly in case it
resists.

Fixes: QTQAINFRA-6078
Change-Id: I2c93b548007f24f7d7f632410d146eb472e2b4fb
Reviewed-by: Simo Fält <simo.falt@qt.io>
2024-02-06 16:11:04 +01:00
Dominik Holland
fa70cdee06 Revert "Disable asan build for QtIF and QtAppMan"
This reverts commit c15fb88b1a.

The problems have been fixed in both modules.

Change-Id: I4ac395f1f6604eade7f42f64bdd5938ace6fc1e4
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
2024-02-03 08:40:18 +00:00
Timur Pocheptsov
65695bc38b QtMultimedia - build ffmpeg plugin for iOS
Minimal preliminary script for building ffmpeg for iOS.

Change-Id: Ie210db8cd50b5a757fcc6d6258c3ebdf4fc53c51
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2024-02-03 08:40:15 +00:00
Piotr Wierciński
b9214c7dd9 Provisioning: Update Python installation
For WebAssembly selenium tests we need a newer
version of Python (>3.7), so install 3.11 instead
of default 3.6.
Selenium and Netifaces pip packages are also required.

Change-Id: I9e3b317b359e8775d90bd143ff9692fc2a90cf42
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
2024-02-02 07:23:30 +00:00
Simo Fält
171e7cb44c COIN: Make sure we read env also from zsh profiles
Pick-to: 6.7
Change-Id: I0aaa6552a8f3971b43d2aed6b3dd7c3e216f4236
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2024-02-02 07:23:27 +00:00
Simo Fält
adf2deefeb COIN: Move arm Mac brew and pyenv install script under common directory
Pick-to: 6.7
Change-Id: I83c6b017d81bc98431f0d0421167890466e5b855
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2024-02-02 07:23:25 +00:00
Simo Fält
b89cbf3ee0 COIN: Revert 949594ef83 from arm Mac
Currently prevents provisioning.

Pick-to: 6.7
Change-Id: I135c58452b44066a9279497ba8e57454b0c0a458
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2024-02-02 07:23:22 +00:00
Artem Dyomin
0fe99775c0 Enable ffmpeg shared libs shipping for Windows targets
We have to replace static linkage with dynamic one due to
licensing issues.

The related patch in QtMM
codereview.qt-project.org/c/qt/qtmultimedia/+/523405
introduces cmake var QT_DEPLOY_FFMPEG that enables deployment
of ffmpeg shared libs to the installation lib dir or
the build lib dir (for dev builds).

These are build/tests results for the current CR
together with the patch in QtMM
testresults.qt.io/coin/integration/qt/qtmultimedia/tasks/web_rescheduled_qt_qtmultimedia_1703082976669

The related patch
codereview.qt-project.org/c/qt/qtbase/+/525100
fixes the deployment tool on Windows.

The plan is to have the set of changes for Windows in
6.5.4, 6.6.2, 6.7.0.

It was agreed that we want to backport shared ffmpeg to 6.6 and 6.5.

Pick-to: 6.7 6.6 6.5
Change-Id: Ie4d8621a98fb93715c32e49c830bfd715ed0e8a5
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2024-02-02 07:23:19 +00:00
Artem Dyomin
483694d725 Update ffmpeg n6.0 -> n6.1 on Windows
The update will go tohether with dynamic ffmpeg build on Windows.

Pick-to: 6.7 6.6 6.5
Change-Id: I7a72d4009c8a8e4030899b526bad9cfedd6f45a7
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
2024-02-02 08:23:16 +01:00
Artem Dyomin
9fa918c129 Update ffmpeg to n6.1 for Linux and macOS
FFmpeg version was between n6.0 and n6.1 due to some hot fix
for having it compilable on CI. Since n6.1 has been release,
we should update.

Pick-to: 6.7 6.6 6.5
Change-Id: I0d88599be53748eeb038287abe8aad6c0f189933
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2024-02-02 07:23:14 +00:00
Dimitrios Apostolou
c66f8407a8 Enable automatic gdb stacktrace in QTest, in case a test crashes
On Linux, this requires that gdb can be found in PATH, and that no
kernel security settings like yama.ptrace_scope  prevent it.

Patch contains also a drive-by architecture detection fix for Debian arm64.

Fixes: QTQAINFRA-6029
Fixes: QTQAINFRA-5940
Fixes: QTQAINFRA-6030
Fixes: QTQAINFRA-6046
Fixes: QTQAINFRA-6012
Fixes: QTQAINFRA-5930
Task-number: QTQAINFRA-5933
Change-Id: Ie6debde94c1cc5783161ffa7354b58734c372702
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2024-01-31 20:07:09 +01:00
Assam Boudjelthia
710f03ffcc Android: use Android emulator 32.1.15 to not break rhi tests
Currently CI doesn't cache specific Android Emulator version,
so after an update was availabe 33.1.23 is broke RHI tests on
Android 13 emulator. The last known emulator version to to work
was 32.1.15, so as a workaround we install this specific version.

Fixes: QTBUG-119884
Pick-to: 6.7
Change-Id: Iec56207b6142d97a9dfabc0fb07a920c868e58b1
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit 481825822b)
Reviewed-by: Zoltan Gera <zoltan.gera@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-01-31 19:07:06 +00:00
Toni Saario
137a747c58 Coin: check hash exists after calculation
When the catch all is hit the exit statement only returns from
the case statement. Remove the exit statement.

Check that some sha was returned, otherwise empty input
sha will result in empty calculated sha, which causes
false positive sha check.

Pick-to: 6.7
Change-Id: Iddb9562cf7e12f695e21ca63b302c9217fc98aab
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
2024-01-31 19:07:03 +00:00
Marianne Yrjänä
02199c9f75 Set CMAKE_STRIP for QNX builds in toolchain file
Pick-to: 6.7
Task-number: QTBUG-120594
Change-Id: Ie39a51616d1c1bb03382bc633d9cda11f80fc80f
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2024-01-31 21:07:00 +02:00
Matti Paaso
4b275bb4ab Provisioning: Update Axivion bauhaus-suite
Updating axvion bauhaus-suite tool into version 7.7.1 and
license file.

Task-number: QTQAINFRA-5992
Change-Id: I614211cd67457a2a725ffffa7dbab8d9764d752d
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-01-31 07:21:33 +02:00
Elias Toivola
8e8af54d12 Provisioning: Remove macOS 11 and bump minimum targets to 12
Drop macOS 11 out from dev (6.8) branch as it is EOL or very near it. This removes macOS 11 test configurations and bumps macOS targets to
12 in provision scripts.

Task-number: QTQAINFRA-6009
Change-Id: I2ea2764fb4a14eb508e39330acfc0947b94343fc
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-01-31 05:21:31 +00:00
Qt Submodule Update Bot
34b96646ac Update submodules on 'dev in qt/qt5'
Change-Id: I6aa5f3b07c1c4c6698df76d8694f4565c1b5a102
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2024-01-30 08:20:05 +00:00
Tero Heikkinen
b6829751d2 Fix OpenSUSE 15.5 with new re-created Tier1 image
Task-number: QTQAINFRA-6065
Pick-to: 6.7 6.6 6.5
Change-Id: I24530bcca2a8f8e50686703d8cd8519c27195de2
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2024-01-19 10:02:09 +02:00
Simo Fält
a00fb312a2 COIN: Remove 'Sccache' feature from arm Mac
There is no sccache binary for arm mac so in case of failure the fail
parser reports failing sccache command as a reason.

Pick-to: 6.7
Change-Id: I3bfd6152d5be2cd00fd19762ed89ae0bc4f7ebcc
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-01-17 08:33:01 +02:00
Axel Spoerl
b93bcc2c9c COIN: Install a systemd script for starting a dummy sound device
Don't load the dummy sound module directly.
Install a systemd script instead.

This amends 198cd69244.

Fixes: QTBUG-120655
Pick-to: 6.7 6.6 6.5
Change-Id: If727a60d1cf3683615775ae55efe9bae159d147e
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-01-16 13:01:08 +01:00
Elias Toivola
96e4ffd6d9 Qt Creator: Bump macOS to 12
macOS 11 is at its end-of-life and should be dropped from Qt dev (6.8).

Task-number: QTQAINFRA-6009
Change-Id: I76325a0ae540568085c803925d28c88f99e41d3c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2024-01-16 14:01:03 +02:00
Jussi Witick
cd515c6b07 Add Insignificant to Axivion analysis builds for QSR-runtime
Add Insignificant to Axivion analysis builds for QSR-runtime. If the
Axivion analysis fails to run for QSR dev-branch, it should not block
the build.

Change-Id: I72240121eb33a742edbafd08ccf10f72efe6b96e
Reviewed-by: Teemu Holappa <teemu.holappa@qt.io>
2024-01-16 09:22:29 +02:00
Axel Spoerl
198cd69244 COIN: Install dummy sound device on openSuSE Leap 15.5
Add missing dummy sound device, to prevent sound based tests from
failing / flaking.

Fixes: QTBUG-120655
Pick-to: 6.7 6.6 6.5
Change-Id: I555d1391b49892226732f36c6a67be7d8dae3d4b
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2024-01-12 10:46:00 +01:00
Matti Paaso
164d38c994 Add permissions on macOS11
RTA android tests fail due permission error

Task-number: QTQAINFRA-6005
Pick-to: 6.7
Change-Id: I560b8d0efcc6e5b271514e2ce728988435156604
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2024-01-11 12:43:11 +02:00
Matti Paaso
823f127bed Fix windows network adapter name for Windos 10 x86
Using the same solution as all the other Windows VMs

Pick-to: 5.15 6.2 6.5 6.7
Change-Id: I643f332c99e62ba8037e2db60fa69298a585b306
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
2024-01-10 12:50:21 +02:00
Dominik Holland
b4ea542679 Add platform configs for qtvehicleservices
CI configs for new qt-labs repo.

Change-Id: I3b314e1a9e9765d593bf029a58f1efe7de71c26f
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-01-09 13:28:24 +01:00
Simo Fält
186a8ca970 Change resolution for one more display in Windows
Amends change 349ce73bba

Pick-to: 5.15 6.2 6.5 6.7
Task-number: QTQAINFRA-5987
Change-Id: I2682ed5de49583460fc2db2f534e8c284c10d11f
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-01-07 13:13:40 +02:00
Kai Köhne
576feb6a2a README.md 'Linkify' README.git
Change-Id: Ib0e54a926a0c20b48f68bfc795b637d15c29845a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2024-01-07 12:13:36 +01:00
Artem Dyomin
f87f27dc62 Revert "Retain symlinks upon making universal macos binaries"
This reverts commit a3c489b272.

Reason for revert: Mistakenly replaced 'set -e' => 'set -x' just hides the problem on macOS 11 and 12. The patch needs to be investigated again

Pick-to: 6.7
Change-Id: I238395fd2ae1fc362a0c9af02e2d48acce22e0dc
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2023-12-28 19:10:31 +00:00
Dimitrios Apostolou
134b5f3ef6 Enable ASAN build in all of qt5 repository
qtgrpc was the only module left because of QTBUG-120227.
After resolving that, enable in all of qt5 repository.

Task-number: QTBUG-120227
Fixes: QTQAINFRA-5375
Change-Id: I44782990eb54e4e3955141f999dcb1f93d5f7bf3
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
2023-12-28 14:00:31 +01:00
Artem Dyomin
a3c489b272 Retain symlinks upon making universal macos binaries
Saving symlinks is important when we build dynamic libs,
it will be needed for building QtMM + dynamic ffmpeg.

Pick-to: 6.7 6.6 6.5
Change-Id: Ic356a9c3df727a1afe14e8553728952d3b106ba3
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2023-12-24 16:48:27 +00:00
Elias Toivola
782e1700cf Update Android NDK to version r26b
Revision 26.1.10909125. Also prebuilt OpenSSL 3.0.7 with it.

Task-number: QTQAINFRA-5771
Pick-to: 6.7
Change-Id: I0dbe1f2d38f277bcb805f5b7ac1f30e25aabd1f8
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-22 02:46:33 +00:00
Qt Submodule Update Bot
cc680854f2 Update submodules on 'dev in qt/qt5'
Change-Id: I721119f860f480c2d260e7f7c8aa22838ff89401
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2023-12-22 02:46:31 +00:00
Toni Saario
c15fb88b1a Disable asan build for QtIF and QtAppMan
Currently does not pass on these modules and blocks CI.

Task-number: QTBUG-120326
Change-Id: Ia6d3987112cb29757e668b69757166e896abbe70
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2023-12-21 12:04:59 +02:00
Dimitrios Apostolou
4952a90048 Enable blocking ASAN builds on most modules
Task-number: QTQAINFRA-5375
Change-Id: I7b560501b7f02094bb6b17685c7c006c2fe0eae9
Reviewed-by: Toni Saario <toni.saario@qt.io>
2023-12-20 14:35:07 +01:00
Heikki Halmet
3c5d9cabf0 Add refresh support for all Red Hat versions
Pick-to: 6.7 6.6 6.5 6.2 5.15
Change-Id: I1fbfadf70a9b7dbf0f738aa41d627adfac6138c5
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2023-12-20 09:52:26 +00:00
Toni Saario
349ce73bba Set resolution for newer qemu displays
Windows recognizes newer qemu as different display, which needs
to be handled as well.

Pick-to: 5.15 6.2 6.5 6.7
Task-number: QTQAINFRA-5987
Change-Id: I6819bfa6dd90a3f54cfcb0b5b885ba909052d375
Reviewed-by: Simo Fält <simo.falt@qt.io>
2023-12-18 20:04:19 +02:00
Assam Boudjelthia
23b09c1d2a Coin/Android: print emulator errors/warnings to coin and log file
Making emulator errors and warnings available directly in the ci run
logs makes it easier to debug issues.

Amends 1c27f95d01.

Task-number: QTQAINFRA-5596
Pick-to: 6.7
Change-Id: I2388dcf9fcdcf18803ff03266493584216f92fdc
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
2023-12-18 16:41:07 +00:00
Alexandru Croitor
361cc1e22c coin: Bump macOS host templates to 13
We support Xcode 14 (SDK 13) as the minimum, documented on
https://doc-snapshots.qt.io/qt6-dev/macos.html

Bump our macos static tests and ios tests platforms to build on macOS
13, just like all other macos configs, and to also follow what we
document.

We can then enforce the minimum SDK version as a build time error
when building qtbase.

Change-Id: I7ce223983a31c14f8997d2e6f9b061909e326f6d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2023-12-18 06:33:23 +01:00
Toni Saario
78e362b9d8 Update vxworks VSB and VIP
Adds opengl mesa, charconv and optional lib patches.

Pick-to: 6.7
Change-Id: Ic3550de289b41300ed399fc1fac145991f07a6fb
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2023-12-18 05:33:18 +00:00
Toni Saario
bf2b855daf Make vxworks target significant on all ported modules
Pick-to: 6.7
Change-Id: Ic9e6f0d5eddcfd242b935cc2d473df611cc32835
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2023-12-18 05:33:13 +00:00
Toni Saario
3c8f2cfdbb Fix vxworks scripts shellcheck issues
Pick-to: 6.7
Change-Id: I446ce5eb5688c5d81cb95702fedcf47e57c02ebe
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2023-12-18 05:33:08 +00:00
Jussi Witick
a604dc4f53 Bump mingw version from 11 to 13 for SafeRenderer tooling
Bump mingw version from 11 to 13 for SafeRenderer tooling. Mingw version
was updated with the following task, but only QSR runtime was updated.

Task-number: QTQAINFRA-5045
Change-Id: I385aedcd55112c3e5732189173bcdd62e777d02e
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2023-12-18 05:33:02 +00:00
Assam Boudjelthia
e0498fc679 Android: quote the logcat tag passed to emulator command
To avoid any issue parsing the command params.

Task-number: QTQAINFRA-5596
Pick-to: 6.7
Change-Id: I473839901934405d4ea8607bc98f7b3e3a886805
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
2023-12-18 05:32:57 +00:00
Kai Köhne
c2d36b3ed6 Remove 'old' LICENSE files
We switched to spdx/reuse a while ago. That transition is now almost
complete, so let's remove the old files. The new ones are in the
LICENSES directory:

LICENSES/GPL-2.0-only.txt
LICENSES/GPL-3.0-only.txt
LICENSES/LGPL-3.0-only.txt
LICENSES/LicenseRef-Qt-Commercial.txt
LICENSES/Qt-GPL-exception-1.0.txt

Pick-to: 6.7
Task-number: QTBUG-67283
Change-Id: Ie42673e28071dbfcb4df6022d15a0eb545305f7a
Reviewed-by: Lucie Gerard <lucie.gerard@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2023-12-18 06:32:53 +01:00
Tero Heikkinen
f7702f8e42 Provisioning: Add vulkan package to SLES 15 SP5 for RTA usage
Task-number: QTQAINFRA-5969
Task-number: QTBUG-115722
Pick-to: 6.7 6.6
Change-Id: I16bedf931ea09b7dc5589ec2f465952ea66b73ca
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
2023-12-18 07:32:49 +02:00
Evgenii Kucheruk
f6b96f848f Add changes to Squish installation for 7.2.1
Pick-to: 6.6
Pick-to: 6.7
Change-Id: I620776afb2e4575ffbc9b9c3c6c53c25516add08
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2023-12-18 05:32:44 +00:00
Jøger Hansegård
027acd91fd Disable the truemotion1 decoder for the FFmpeg media backend
The truemotion1 decoder depends on a truemotion1data.h file which is
part of FFmpeg. This header file has a reference to GPL licensing, and
although the header provides a rationale for why the decoder tables are
not copyrightable, we prefer to not distribute this decoder as part of
the online Qt installer.

Users who need ability to decode truemotion1 format video files can do
so by recompiling the QtMultimedia FFmpeg media plugin against a custom
build of FFmpeg.

Task-number: QTBUG-118204
Pick-to: 6.7 6.6 6.5
Change-Id: Ia195ef9ce576d18047e7b38bbc5019648ba42b4c
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
2023-12-18 05:32:38 +00:00
Amir Masoud Abdol
a5a6393145 Provisioning: Install OpenSSL via Vcpkg on Linux
- Add a custom triplets for building dynamic android libraries
- Set `ANDROID_NDK_HOME` environment variable, as it is needed when
  vcpkg builds for Android.
- Install `perl-IPC-Cmd` when necessary, requirement for OpenSSL.
- Install openSSL for x64-linux-qt, x86-android-qt, and
  x86_64-android-qt. The latter android triplet has been renamed from
  vcpkg's official `x64-android.cmake` triplet to further clarify the
  android abi.
- Adjusted version.txt to account for the existence of two OpenSSL. The
  system OpenSSL now shows up as `System's OpenSSL` in `version.txt`.

Task-number: QTBUG-115715
Change-Id: I6cf9b808d26bbea97ebeeadac58cef5ede25ee50
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-12-18 06:32:32 +01:00
Amir Masoud Abdol
a1b278c3a3 Provisioning: Install OpenSSL via Vcpkg on Windows
- Add a custom triplets for building dynamic android libraries
- Set `ANDROID_NDK_HOME` environment variable, as it is needed when
  vcpkg builds for Android.
- Install openSSL for x64-windows, arm64-windows, and
  armeabi-v7a-android-qt. The android triplet has been renamed from
  vcpkg's official `arm-neon-android.cmake` triplet to further clarify
  the android abi.
- The version of the libraries installed via vcpkg is being written to
  versions.txt as `vpckg <library-name> = <library-version>`

Task-number: QTBUG-115715
Change-Id: I4a17bf00e59c3c90968941be6a21c1d961ba3d97
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-12-18 06:32:27 +01:00
Amir Masoud Abdol
9e1b456953 Provisioning: Install vcpkg on Linux
- Building the vcpkg executable
- Cloning an internal mirror of the vcpkg's official repository, and
  setting the VCPKG_ROOT to its path. The mirror is under my personal
  namespace in `git.qt.io` and will be replaced by official qt mirror
  in the future.
- Adding an empty `vcpkg.json` for Linux.
- Setting environment variables for Binary and Asset cache
- Run `install-vcpkg.sh` on all active Linux hosts

Task-number: QTBUG-115715
Change-Id: I9a4249a2fc265e4dc4c3083d1b411dffb84bfdf3
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-12-18 06:32:22 +01:00
Amir Masoud Abdol
65e19ca672 Provisioning: Install vcpkg on Windows
- Downloading the vcpkg executable
- Cloning an internal mirror of the vcpkg's official repository, and
  setting the VCPKG_ROOT to its path. The mirror is under my personal
  namespace in `git.qt.io` and will be replaced by official qt mirror
  in the future.
- Adding an empty `vcpkg.json` for Windows
- Adding a `vcpkg-configuration.json`
- Setting environment variables for Binary and Asset cache
- Run `install-vcpkg.sh` on all active Windows hosts

Task-number: QTBUG-115715
Change-Id: I7a8a883a1523f27506ff31757f5aad5221de0698
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-12-18 06:32:17 +01:00
Amir Masoud Abdol
c1847f4f5b Provisioning: Install zip on Linux
Vcpkg needs zip for compressing the build artifacts, etc. for caching.

Task-number: QTBUG-115715
Change-Id: I1f0c056ca44a94ddfc181e6ce0213790e616e431
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-12-18 06:32:12 +01:00
Amir Masoud Abdol
d7b66b044f Provisioning: Install pkg-config on macOS
Vcpkg needs pkg-config on macOS.

Task-number: QTBUG-115715
Change-Id: Ie7ab7394d7b3073d346e05a215c8289f1ab04364
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-12-18 06:32:06 +01:00
Amir Masoud Abdol
d591095e7c Provisioning: Install jq
jq is used during the provisioning of vcpkg ports to extract the version
string of packages from vcpkg.json file.

Task-number: QTBUG-115715
Change-Id: I73d95b8d8399b25a9aa58855b9d65cac968618fc
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-12-18 06:32:00 +01:00
Qt Submodule Update Bot
ef66175ad1 Update submodules on 'dev in qt/qt5'
Change-Id: Ia6fa67450199776f1e7d12d3e85eed7cf59a4672
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2023-12-16 05:34:50 +00:00
Matti Paaso
08b629b0b1 Change Axivion static analysis into nightly build
Change-Id: I3624c85015b06c81dd0102e7ea7bb17e76f539e1
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
2023-12-15 14:35:28 +02:00
Tony Sarajärvi
cef68a74ea Fix shellcheck complaints in vcpkg mounting scripts
Change-Id: Iae479d43f98e057ebffdc66a407691bdcfc14229
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-12-15 12:35:25 +00:00
Elias Toivola
7bc6a1c869 Android: Update Android 14 system image for emulator
Use the latest Android 14 image in CI Android emulator. Build ID:
UE1A.230829.036. This should reduce tests crashing with Android.

Task-number: QTQAINFRA-5971
Pick-to: 6.7
Change-Id: Id9c221118163feef722e402d9e412381809b6b72
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2023-12-15 12:35:23 +00:00
Qt Submodule Update Bot
f55eaad627 Update submodules on 'dev in qt/qt5'
Change-Id: I1257e0dd45de23d2f0dd5787193660b30089ea12
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2023-12-14 11:21:43 +00:00
Jukka Jokiniva
8926f3596d Revert "Make Integrity temporarily non-blocking in CI"
This reverts commit 25eb7f8a36.

Reason for revert: Integrity tool chain licenses fixed.

Change-Id: I5a9a363f1b6a59c7f283251b03eec65cb221e8ee
Reviewed-by: Toni Saario <toni.saario@qt.io>
2023-12-12 08:36:05 +00:00
Lucie Gérard
3d065be1d0 Update remaining old style license header to SPDX style in coin
Pick-to: 6.6 6.7
Task-number: QTBUG-108364
Change-Id: Ic36ce592d0ff698b30fbf2edab106d4af5d31bc2
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2023-12-12 07:51:55 +00:00
Safiyyah Moosa
baf7aacdac Doc: Create a CONTRIBUTING.md file
Many users push Qt contributions to the Github repository mirror(s), however we cannot accept these contributions. This file directs users
to Qt's contributing guidelines wiki page.

A .github/pull_request_template.md file has also been created for Qt
project.

Fixes: QTBUG-116663
Pick-to: 6.7 6.6 6.5
Change-Id: Iea4cba8e6cb90859bd364ae4480be0e000f9bae6
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2023-12-12 06:17:16 +00:00
Lucie Gérard
a09d8e0ae6 Update license header to SPDX format
Pick-to: 6.5 6.6 6.7
Task-number: QTBUG-67283
Change-Id: Id3679318557c7611b040b155fe1c815e1093d8f9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2023-12-12 06:17:14 +00:00
Elias Toivola
0b70b8f3c4 Update MinGW to v13.1.0 (x86_64)
Task-number: QTQAINFRA-5045
Change-Id: Id63e375faf2ed984c461ff4eab6271187672c3ea
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2023-12-11 13:14:06 +02:00
Jukka Jokiniva
25eb7f8a36 Make Integrity temporarily non-blocking in CI
GHS compiler license expired, so Integity target
changed to insignificant.

Pick-to: 6.7
Change-Id: I927d1c2fd2a255351dbe7582f9564a0b4227ee46
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2023-12-11 12:21:33 +02:00
516 changed files with 8756 additions and 1640 deletions

3
.gitignore vendored
View File

@@ -8,3 +8,6 @@ CMakeUserPresets.json
build
build-*
.DS_Store
init-repository.opt
init-repository.opt.in
config.tl.opt

86
.gitmodules vendored
View File

@@ -1,40 +1,40 @@
[submodule "qtbase"]
path = qtbase
url = ../qtbase.git
branch = 6.7.0
branch = 6.8
status = essential
[submodule "qtsvg"]
depends = qtbase
path = qtsvg
url = ../qtsvg.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtdeclarative"]
depends = qtbase
recommends = qtimageformats qtshadertools qtsvg qtlanguageserver
path = qtdeclarative
url = ../qtdeclarative.git
branch = 6.7.0
branch = 6.8
status = essential
[submodule "qtactiveqt"]
depends = qtbase
path = qtactiveqt
url = ../qtactiveqt.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtmultimedia"]
depends = qtbase qtshadertools
recommends = qtdeclarative qtquick3d
path = qtmultimedia
url = ../qtmultimedia.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qttools"]
depends = qtbase
recommends = qtdeclarative qtactiveqt
path = qttools
url = ../qttools.git
branch = 6.7.0
branch = 6.8
status = essential
[submodule "qtxmlpatterns"]
depends = qtbase
@@ -47,7 +47,7 @@
depends = qttools
path = qttranslations
url = ../qttranslations.git
branch = 6.7.0
branch = 6.8
status = essential
priority = 30
[submodule "qtdoc"]
@@ -55,7 +55,7 @@
recommends = qtmultimedia qtshadertools qtwebengine
path = qtdoc
url = ../qtdoc.git
branch = 6.7.0
branch = 6.8
status = essential
priority = 40
[submodule "qtrepotools"]
@@ -76,21 +76,21 @@
recommends = qtdeclarative
path = qtlocation
url = ../qtlocation.git
branch = 6.7.0
branch = 6.8
status = preview
[submodule "qtpositioning"]
depends = qtbase
recommends = qtdeclarative qtserialport
path = qtpositioning
url = ../qtpositioning.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtsensors"]
depends = qtbase
recommends = qtdeclarative
path = qtsensors
url = ../qtsensors.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtsystems"]
depends = qtbase
@@ -117,61 +117,61 @@
recommends = qtdeclarative
path = qtconnectivity
url = ../qtconnectivity.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtwayland"]
depends = qtbase
recommends = qtdeclarative
path = qtwayland
url = ../qtwayland.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qt3d"]
depends = qtbase
recommends = qtdeclarative qtshadertools qtmultimedia
path = qt3d
url = ../qt3d.git
branch = 6.7.0
status = addon
branch = 6.8
status = deprecated
[submodule "qtimageformats"]
depends = qtbase
path = qtimageformats
url = ../qtimageformats.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtserialbus"]
depends = qtbase
recommends = qtserialport
path = qtserialbus
url = ../qtserialbus.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtserialport"]
depends = qtbase
path = qtserialport
url = ../qtserialport.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtwebsockets"]
depends = qtbase
recommends = qtdeclarative
path = qtwebsockets
url = ../qtwebsockets.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtwebchannel"]
depends = qtbase
recommends = qtdeclarative qtwebsockets
path = qtwebchannel
url = ../qtwebchannel.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtwebengine"]
depends = qtdeclarative
recommends = qtwebchannel qttools qtpositioning
path = qtwebengine
url = ../qtwebengine.git
branch = 6.7.0
branch = 6.8
status = addon
priority = 10
[submodule "qtcanvas3d"]
@@ -185,28 +185,28 @@
recommends = qtwebengine
path = qtwebview
url = ../qtwebview.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtcharts"]
depends = qtbase
recommends = qtdeclarative qtmultimedia
path = qtcharts
url = ../qtcharts.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtdatavis3d"]
depends = qtbase
recommends = qtdeclarative qtmultimedia
path = qtdatavis3d
url = ../qtdatavis3d.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtvirtualkeyboard"]
depends = qtbase qtdeclarative qtsvg
recommends = qtmultimedia
path = qtvirtualkeyboard
url = ../qtvirtualkeyboard.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtgamepad"]
depends = qtbase
@@ -219,27 +219,27 @@
depends = qtbase qtdeclarative
path = qtscxml
url = ../qtscxml.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtspeech"]
depends = qtbase qtmultimedia
recommends = qtdeclarative
path = qtspeech
url = ../qtspeech.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtnetworkauth"]
depends = qtbase
path = qtnetworkauth
url = ../qtnetworkauth.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtremoteobjects"]
depends = qtbase
recommends = qtdeclarative
path = qtremoteobjects
url = ../qtremoteobjects.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtwebglplugin"]
depends = qtbase qtwebsockets
@@ -252,87 +252,87 @@
depends = qtbase qtdeclarative
path = qtlottie
url = ../qtlottie.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtquicktimeline"]
depends = qtbase qtdeclarative
path = qtquicktimeline
url = ../qtquicktimeline
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtquick3d"]
depends = qtbase qtdeclarative qtshadertools
recommends = qtquicktimeline
path = qtquick3d
url = ../qtquick3d.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtshadertools"]
depends = qtbase
path = qtshadertools
url = ../qtshadertools.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qt5compat"]
depends = qtbase qtdeclarative
path = qt5compat
url = ../qt5compat.git
branch = 6.7.0
branch = 6.8
status = deprecated
[submodule "qtcoap"]
depends = qtbase
path = qtcoap
url = ../qtcoap.git
branch = 6.7
branch = 6.8
status = addon
[submodule "qtmqtt"]
depends = qtbase qtdeclarative
path = qtmqtt
url = ../qtmqtt.git
branch = 6.7
branch = 6.8
status = addon
[submodule "qtopcua"]
depends = qtbase qtdeclarative
path = qtopcua
url = ../qtopcua.git
branch = 6.7
branch = 6.8
status = addon
[submodule "qtlanguageserver"]
depends = qtbase
path = qtlanguageserver
url = ../qtlanguageserver.git
branch = 6.7.0
branch = 6.8
status = preview
[submodule "qthttpserver"]
depends = qtbase
recommends = qtwebsockets
path = qthttpserver
url = ../qthttpserver.git
branch = 6.7.0
branch = 6.8
status = preview
[submodule "qtquick3dphysics"]
depends = qtbase qtdeclarative qtquick3d qtshadertools
path = qtquick3dphysics
url = ../qtquick3dphysics.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtgrpc"]
depends = qtbase
recommends = qtdeclarative
path = qtgrpc
url = ../qtgrpc.git
branch = 6.7.0
branch = 6.8
status = preview
[submodule "qtquickeffectmaker"]
depends = qtbase qtdeclarative qtshadertools
recommends = qtquick3d
path = qtquickeffectmaker
url = ../qtquickeffectmaker.git
branch = 6.7.0
branch = 6.8
status = addon
[submodule "qtgraphs"]
depends = qtbase qtdeclarative qtquick3d
path = qtgraphs
url = ../qtgraphs.git
branch = 6.7.0
branch = 6.8
status = preview

View File

@@ -29,26 +29,38 @@ include(ECMOptionalAddSubdirectory)
qt_internal_top_level_before_build_submodules()
qt_internal_find_modules(known_submodules)
# Get submodule list if not already defined
if(NOT QT_BUILD_SUBMODULES)
if(DEFINED ENV{QT_BUILD_SUBMODULES})
set(QT_BUILD_SUBMODULES "$ENV{QT_BUILD_SUBMODULES}")
else()
qt_internal_find_modules(QT_BUILD_SUBMODULES)
set(QT_BUILD_SUBMODULES "${known_submodules}")
endif()
endif()
set(QT_BUILD_SUBMODULES "${QT_BUILD_SUBMODULES}" CACHE STRING "Submodules to build")
# Preliminary check if module should be skipped since -skip <module> or BUILD_<module>
# are provided.
set(explicitly_skipped_modules "")
foreach(module IN LISTS known_submodules)
if(DEFINED BUILD_${module} AND NOT BUILD_${module})
list(APPEND explicitly_skipped_modules ${module})
endif()
endforeach()
foreach(module IN LISTS QT_BUILD_SUBMODULES)
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${module}/CMakeLists.txt)
message(FATAL_ERROR
"Module '${module}' cannot be found. Please double-check the "
"spelling and try again. Or run `./init-repository` to get "
"the submodules.")
"spelling and try again. Or run\n"
"`./configure -init-submodules -submodules ${module}` "
"to clone the submodule and its dependencies.")
endif()
endforeach()
qt_internal_sort_module_dependencies("${QT_BUILD_SUBMODULES}" QT_BUILD_SUBMODULES)
qt_internal_sort_module_dependencies("${QT_BUILD_SUBMODULES}" QT_BUILD_SUBMODULES
SKIP_MODULES ${explicitly_skipped_modules})
foreach(module IN LISTS QT_BUILD_SUBMODULES)
# Check for unmet dependencies
@@ -76,9 +88,15 @@ foreach(module IN LISTS QT_BUILD_SUBMODULES)
if(NOT error_reason STREQUAL "")
if(required)
if(QT_INTERNAL_CALLED_FROM_CONFIGURE)
set(skip_argument "-skip ${module}")
else()
set(skip_argument "-DBUILD_${module}=OFF")
endif()
message(FATAL_ERROR "Module '${module}' depends on '${dep}', "
"but ${error_reason}.\n"
"Note: Use '-skip ${module}' to exclude it from the build.")
"Note: Use '${skip_argument}' to exclude it from the build.")
else()
message(STATUS "Skipping optional dependency '${dep}' of '${module}', "
"because ${error_reason}.")

View File

@@ -29,7 +29,7 @@ Windows:
1. Open a command prompt.
2. Ensure that the following tools can be found in the path:
* Supported compiler (Visual Studio 2019 or later, or MinGW-builds gcc 8.1 or later)
* Supported compiler (Visual Studio 2019 or later, or MinGW-builds gcc 11.2 or later)
* Python 3 ([https://www.python.org/downloads/windows/] or from Microsoft Store)
```
@@ -98,7 +98,7 @@ to your `PATH` environment variable to access them.
Building Qt from git
====================
See http://wiki.qt.io/Building_Qt_6_from_Git and README.git
See http://wiki.qt.io/Building_Qt_6_from_Git and [README.git](README.git)
for more information.
See http://wiki.qt.io/Qt_6 for the reference platforms.

136
cmake/3rdparty/cmake/Copyright.txt vendored Normal file
View File

@@ -0,0 +1,136 @@
CMake - Cross Platform Makefile Generator
Copyright 2000-2024 Kitware, Inc. and Contributors
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Kitware, Inc. nor the names of Contributors
may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
------------------------------------------------------------------------------
The following individuals and institutions are among the Contributors:
* Aaron C. Meadows <cmake@shadowguarddev.com>
* Adriaan de Groot <groot@kde.org>
* Aleksey Avdeev <solo@altlinux.ru>
* Alexander Neundorf <neundorf@kde.org>
* Alexander Smorkalov <alexander.smorkalov@itseez.com>
* Alexey Sokolov <sokolov@google.com>
* Alex Merry <alex.merry@kde.org>
* Alex Turbov <i.zaufi@gmail.com>
* Andreas Pakulat <apaku@gmx.de>
* Andreas Schneider <asn@cryptomilk.org>
* André Rigland Brodtkorb <Andre.Brodtkorb@ifi.uio.no>
* Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf
* Benjamin Eikel
* Bjoern Ricks <bjoern.ricks@gmail.com>
* Brad Hards <bradh@kde.org>
* Christopher Harvey
* Christoph Grüninger <foss@grueninger.de>
* Clement Creusot <creusot@cs.york.ac.uk>
* Daniel Blezek <blezek@gmail.com>
* Daniel Pfeifer <daniel@pfeifer-mail.de>
* Dawid Wróbel <me@dawidwrobel.com>
* Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
* Eran Ifrah <eran.ifrah@gmail.com>
* Esben Mose Hansen, Ange Optimization ApS
* Geoffrey Viola <geoffrey.viola@asirobots.com>
* Google Inc
* Gregor Jasny
* Helio Chissini de Castro <helio@kde.org>
* Ilya Lavrenov <ilya.lavrenov@itseez.com>
* Insight Software Consortium <insightsoftwareconsortium.org>
* Intel Corporation <www.intel.com>
* Jan Woetzel
* Jordan Williams <jordan@jwillikers.com>
* Julien Schueller
* Kelly Thompson <kgt@lanl.gov>
* Konstantin Podsvirov <konstantin@podsvirov.pro>
* Laurent Montel <montel@kde.org>
* Mario Bensi <mbensi@ipsquad.net>
* Martin Gräßlin <mgraesslin@kde.org>
* Mathieu Malaterre <mathieu.malaterre@gmail.com>
* Matthaeus G. Chajdas
* Matthias Kretz <kretz@kde.org>
* Matthias Maennich <matthias@maennich.net>
* Michael Hirsch, Ph.D. <www.scivision.co>
* Michael Stürmer
* Miguel A. Figueroa-Villanueva
* Mike Durso <rbprogrammer@gmail.com>
* Mike Jackson
* Mike McQuaid <mike@mikemcquaid.com>
* Nicolas Bock <nicolasbock@gmail.com>
* Nicolas Despres <nicolas.despres@gmail.com>
* Nikita Krupen'ko <krnekit@gmail.com>
* NVIDIA Corporation <www.nvidia.com>
* OpenGamma Ltd. <opengamma.com>
* Patrick Stotko <stotko@cs.uni-bonn.de>
* Per Øyvind Karlsen <peroyvind@mandriva.org>
* Peter Collingbourne <peter@pcc.me.uk>
* Petr Gotthard <gotthard@honeywell.com>
* Philip Lowman <philip@yhbt.com>
* Philippe Proulx <pproulx@efficios.com>
* Raffi Enficiaud, Max Planck Society
* Raumfeld <raumfeld.com>
* Roger Leigh <rleigh@codelibre.net>
* Rolf Eike Beer <eike@sf-mail.de>
* Roman Donchenko <roman.donchenko@itseez.com>
* Roman Kharitonov <roman.kharitonov@itseez.com>
* Ruslan Baratov
* Sebastian Holtermann <sebholt@xwmw.org>
* Stephen Kelly <steveire@gmail.com>
* Sylvain Joubert <joubert.sy@gmail.com>
* The Qt Company Ltd.
* Thomas Sondergaard <ts@medical-insight.com>
* Tobias Hunger <tobias.hunger@qt.io>
* Todd Gamblin <tgamblin@llnl.gov>
* Tristan Carel
* University of Dundee
* Vadim Zhukov
* Will Dicharry <wdicharry@stellarscience.com>
See version control history for details of individual contributions.
The above copyright and license notice applies to distributions of
CMake in source and binary form. Third-party software packages supplied
with CMake under compatible licenses provide their own copyright notices
documented in corresponding subdirectories or source files.
------------------------------------------------------------------------------
CMake was initially developed by Kitware with the following sponsorship:
* National Library of Medicine at the National Institutes of Health
as part of the Insight Segmentation and Registration Toolkit (ITK).
* US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel
Visualization Initiative.
* National Alliance for Medical Image Computing (NAMIC) is funded by the
National Institutes of Health through the NIH Roadmap for Medical Research,
Grant U54 EB005149.
* Kitware, Inc.

349
cmake/3rdparty/cmake/QtIRRunCMake.cmake vendored Normal file
View File

@@ -0,0 +1,349 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#
# Original file location was Tests/RunCMake/RunCMake.cmake
foreach(
arg
IN ITEMS
RunCMake_GENERATOR
RunCMake_SOURCE_DIR
RunCMake_BINARY_DIR
)
if(NOT DEFINED ${arg})
message(FATAL_ERROR "${arg} not given!")
endif()
endforeach()
function(run_cmake test)
if(DEFINED ENV{RunCMake_TEST_FILTER})
set(test_and_variant "${test}${RunCMake_TEST_VARIANT_DESCRIPTION}")
if(NOT test_and_variant MATCHES "$ENV{RunCMake_TEST_FILTER}")
return()
endif()
unset(test_and_variant)
endif()
set(top_src "${RunCMake_SOURCE_DIR}")
set(top_bin "${RunCMake_BINARY_DIR}")
if(EXISTS ${top_src}/${test}-result.txt)
file(READ ${top_src}/${test}-result.txt expect_result)
string(REGEX REPLACE "\n+$" "" expect_result "${expect_result}")
elseif(DEFINED RunCMake_TEST_EXPECT_RESULT)
set(expect_result "${RunCMake_TEST_EXPECT_RESULT}")
else()
set(expect_result 0)
endif()
string(TOLOWER ${CMAKE_HOST_SYSTEM_NAME} platform_name)
#remove all additional bits from cygwin/msys name
if(platform_name MATCHES cygwin)
set(platform_name cygwin)
endif()
if(platform_name MATCHES msys)
set(platform_name msys)
endif()
foreach(o IN ITEMS stdout stderr config)
if(RunCMake-${o}-file AND EXISTS ${top_src}/${RunCMake-${o}-file})
file(READ ${top_src}/${RunCMake-${o}-file} expect_${o})
string(REGEX REPLACE "\n+$" "" expect_${o} "${expect_${o}}")
elseif(EXISTS ${top_src}/${test}-${o}-${platform_name}.txt)
file(READ ${top_src}/${test}-${o}-${platform_name}.txt expect_${o})
string(REGEX REPLACE "\n+$" "" expect_${o} "${expect_${o}}")
elseif(EXISTS ${top_src}/${test}-${o}.txt)
file(READ ${top_src}/${test}-${o}.txt expect_${o})
string(REGEX REPLACE "\n+$" "" expect_${o} "${expect_${o}}")
elseif(DEFINED RunCMake_TEST_EXPECT_${o})
string(REGEX REPLACE "\n+$" "" expect_${o} "${RunCMake_TEST_EXPECT_${o}}")
else()
unset(expect_${o})
endif()
endforeach()
foreach(o IN ITEMS stdout stderr config)
if(DEFINED RunCMake_TEST_NOT_EXPECT_${o})
string(REGEX REPLACE "\n+$" "" not_expect_${o} "${RunCMake_TEST_NOT_EXPECT_${o}}")
endif()
endforeach()
if (NOT expect_stderr)
if (NOT RunCMake_DEFAULT_stderr)
set(RunCMake_DEFAULT_stderr "^$")
endif()
set(expect_stderr ${RunCMake_DEFAULT_stderr})
endif()
if (NOT RunCMake_TEST_SOURCE_DIR)
set(RunCMake_TEST_SOURCE_DIR "${top_src}")
endif()
if(NOT RunCMake_TEST_BINARY_DIR)
set(RunCMake_TEST_BINARY_DIR "${top_bin}/${test}-build")
endif()
if(NOT RunCMake_TEST_NO_CLEAN)
file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
endif()
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
if(RunCMake-prep-file AND EXISTS ${top_src}/${RunCMake-prep-file})
include(${top_src}/${RunCMake-prep-file})
else()
include(${top_src}/${test}-prep.cmake OPTIONAL)
endif()
if(RunCMake_TEST_OUTPUT_MERGE)
set(actual_stderr_var actual_stdout)
set(actual_stderr "")
else()
set(actual_stderr_var actual_stderr)
endif()
if(DEFINED RunCMake_TEST_TIMEOUT)
set(maybe_timeout TIMEOUT ${RunCMake_TEST_TIMEOUT})
else()
set(maybe_timeout "")
endif()
if(RunCMake-stdin-file AND EXISTS ${top_src}/${RunCMake-stdin-file})
set(maybe_input_file INPUT_FILE ${top_src}/${RunCMake-stdin-file})
elseif(EXISTS ${top_src}/${test}-stdin.txt)
set(maybe_input_file INPUT_FILE ${top_src}/${test}-stdin.txt)
else()
set(maybe_input_file "")
endif()
if(NOT RunCMake_TEST_COMMAND)
if(NOT DEFINED RunCMake_TEST_OPTIONS)
set(RunCMake_TEST_OPTIONS "")
endif()
if(APPLE)
list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0025=NEW)
endif()
if(RunCMake_TEST_LCC AND NOT RunCMake_TEST_NO_CMP0129)
list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0129=NEW)
endif()
if(RunCMake_MAKE_PROGRAM)
list(APPEND RunCMake_TEST_OPTIONS "-DCMAKE_MAKE_PROGRAM=${RunCMake_MAKE_PROGRAM}")
endif()
set(RunCMake_TEST_COMMAND ${CMAKE_COMMAND})
if(NOT RunCMake_TEST_NO_SOURCE_DIR)
list(APPEND RunCMake_TEST_COMMAND "${RunCMake_TEST_SOURCE_DIR}")
endif()
list(APPEND RunCMake_TEST_COMMAND -G "${RunCMake_GENERATOR}")
if(RunCMake_GENERATOR_PLATFORM)
list(APPEND RunCMake_TEST_COMMAND -A "${RunCMake_GENERATOR_PLATFORM}")
endif()
if(RunCMake_GENERATOR_TOOLSET)
list(APPEND RunCMake_TEST_COMMAND -T "${RunCMake_GENERATOR_TOOLSET}")
endif()
if(RunCMake_GENERATOR_INSTANCE)
list(APPEND RunCMake_TEST_COMMAND "-DCMAKE_GENERATOR_INSTANCE=${RunCMake_GENERATOR_INSTANCE}")
endif()
list(APPEND RunCMake_TEST_COMMAND
-DRunCMake_TEST=${test}
--no-warn-unused-cli
)
else()
set(RunCMake_TEST_OPTIONS "")
endif()
if(NOT DEFINED RunCMake_TEST_RAW_ARGS)
set(RunCMake_TEST_RAW_ARGS "")
endif()
if(NOT RunCMake_TEST_COMMAND_WORKING_DIRECTORY)
set(RunCMake_TEST_COMMAND_WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
endif()
string(CONCAT _code [[execute_process(
COMMAND ${RunCMake_TEST_COMMAND}
${RunCMake_TEST_OPTIONS}
]] "${RunCMake_TEST_RAW_ARGS}\n" [[
WORKING_DIRECTORY "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}"
OUTPUT_VARIABLE actual_stdout
ERROR_VARIABLE ${actual_stderr_var}
RESULT_VARIABLE actual_result
ENCODING UTF8
${maybe_timeout}
${maybe_input_file}
)]])
if(DEFINED ENV{PWD})
set(old_pwd "$ENV{PWD}")
else()
set(old_pwd)
endif()
# Emulate a shell using this directory.
set(ENV{PWD} "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}")
cmake_language(EVAL CODE "${_code}")
if(DEFINED old_pwd)
set(ENV{PWD} "${old_pwd}")
else()
set(ENV{PWD})
endif()
set(msg "")
if(NOT "${actual_result}" MATCHES "${expect_result}")
string(APPEND msg "Result is [${actual_result}], not [${expect_result}].\n")
endif()
set(config_file "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}/CMakeFiles/CMakeConfigureLog.yaml")
if(EXISTS "${config_file}")
file(READ "${config_file}" actual_config)
else()
set(actual_config "")
endif()
# Special case: remove ninja no-op line from stderr, but not stdout.
# Test cases that look for it should use RunCMake_TEST_OUTPUT_MERGE.
string(REGEX REPLACE "(^|\r?\n)ninja: no work to do\\.\r?\n" "\\1" actual_stderr "${actual_stderr}")
# Remove incidental content from both stdout and stderr.
string(CONCAT ignore_line_regex
"(^|\n)((==[0-9]+=="
"|BullseyeCoverage"
"|[a-z]+\\([0-9]+\\) malloc:"
"|clang[^:]*: warning: the object size sanitizer has no effect at -O0, but is explicitly enabled:"
"|flang-new: warning: argument unused during compilation: .-flang-experimental-exec."
"|icp?x: remark: Note that use of .-g. without any optimization-level option will turn off most compiler optimizations"
"|ifx: remark #10440: Note that use of a debug option without any optimization-level option will turnoff most compiler optimizations"
"|lld-link: warning: procedure symbol record for .* refers to PDB item index [0-9A-Fa-fx]+ which is not a valid function ID record"
"|Error kstat returned"
"|Hit xcodebuild bug"
"|Recompacting log\\.\\.\\."
"|LICENSE WARNING:"
"|Your license to use PGI[^\n]*expired"
"|Please obtain a new version at"
"|contact PGI Sales at"
"|ic(p?c|l): remark #10441: The Intel\\(R\\) C\\+\\+ Compiler Classic \\(ICC\\) is deprecated"
"|[^\n]*install_name_tool: warning: changes being made to the file will invalidate the code signature in:"
"|[^\n]*(createItemModels|_NSMainThread|Please file a bug at)"
"|[^\n]*xcodebuild[^\n]*DVTAssertions: Warning"
"|[^\n]*xcodebuild[^\n]*DVTCoreDeviceEnabledState: DVTCoreDeviceEnabledState_Disabled set via user default"
"|[^\n]*xcodebuild[^\n]*DVTPlugInManager"
"|[^\n]*xcodebuild[^\n]*DVTSDK: Warning: SDK path collision for path"
"|[^\n]*xcodebuild[^\n]*Requested but did not find extension point with identifier"
"|[^\n]*xcodebuild[^\n]*nil host used in call to allows.*HTTPSCertificateForHost"
"|[^\n]*xcodebuild[^\n]*warning: file type[^\n]*is based on missing file type"
"|[^\n]*objc[^\n]*: Class [^\n]* One of the two will be used. Which one is undefined."
"|[^\n]*is a member of multiple groups"
"|[^\n]*offset in archive not a multiple of 8"
"|[^\n]*from Time Machine by path"
"|[^\n]*Bullseye Testing Technology"
${RunCMake_TEST_EXTRA_IGNORE_LINE_REGEX}
")[^\n]*\n)+"
)
if(RunCMake_IGNORE_POLICY_VERSION_DEPRECATION)
string(REGEX REPLACE [[
^CMake Deprecation Warning at [^
]*CMakeLists.txt:1 \(cmake_minimum_required\):
Compatibility with CMake < 3\.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a \.\.\.<max> suffix to tell
CMake that the project does not need compatibility with older versions\.
+
]] "" actual_stderr "${actual_stderr}")
endif()
foreach(o IN ITEMS stdout stderr config)
string(REGEX REPLACE "\r\n" "\n" actual_${o} "${actual_${o}}")
string(REGEX REPLACE "${ignore_line_regex}" "\\1" actual_${o} "${actual_${o}}")
string(REGEX REPLACE "\n+$" "" actual_${o} "${actual_${o}}")
if(DEFINED expect_${o})
if(NOT "${actual_${o}}" MATCHES "${expect_${o}}")
string(APPEND msg "${o} does not match that expected.\n")
endif()
endif()
if(DEFINED not_expect_${o})
if("${actual_${o}}" MATCHES "${not_expect_${o}}")
string(APPEND msg "${o} matches that not expected.\n")
endif()
endif()
endforeach()
unset(RunCMake_TEST_FAILED)
if(RunCMake-check-file AND EXISTS ${top_src}/${RunCMake-check-file})
include(${top_src}/${RunCMake-check-file})
else()
include(${top_src}/${test}-check.cmake OPTIONAL)
endif()
if(RunCMake_TEST_FAILED)
set(msg "${RunCMake_TEST_FAILED}\n${msg}")
endif()
if(msg)
string(REPLACE ";" "\" \"" command "\"${RunCMake_TEST_COMMAND}\"")
if(RunCMake_TEST_OPTIONS)
string(REPLACE ";" "\" \"" options "\"${RunCMake_TEST_OPTIONS}\"")
string(APPEND command " ${options}")
endif()
if(RunCMake_TEST_RAW_ARGS)
string(APPEND command " ${RunCMake_TEST_RAW_ARGS}")
endif()
string(APPEND msg "Command was:\n command> ${command}\n")
endif()
if(msg)
foreach(o IN ITEMS stdout stderr config)
if(DEFINED expect_${o})
string(REGEX REPLACE "\n" "\n expect-${o}> " expect_${o} " expect-${o}> ${expect_${o}}")
string(APPEND msg "Expected ${o} to match:\n${expect_${o}}\n")
endif()
if(NOT o STREQUAL "config" OR DEFINED expect_${o})
string(REGEX REPLACE "\n" "\n actual-${o}> " actual_${o} " actual-${o}> ${actual_${o}}")
string(APPEND msg "Actual ${o}:\n${actual_${o}}\n")
endif()
endforeach()
message(SEND_ERROR "${test}${RunCMake_TEST_VARIANT_DESCRIPTION} - FAILED:\n${msg}")
else()
message(STATUS "${test}${RunCMake_TEST_VARIANT_DESCRIPTION} - PASSED")
endif()
endfunction()
function(run_cmake_command test)
set(RunCMake_TEST_COMMAND "${ARGN}")
run_cmake(${test})
endfunction()
function(run_cmake_script test)
set(RunCMake_TEST_COMMAND ${CMAKE_COMMAND} ${ARGN} -P ${RunCMake_SOURCE_DIR}/${test}.cmake)
run_cmake(${test})
endfunction()
function(run_cmake_with_options test)
set(RunCMake_TEST_OPTIONS "${ARGN}")
run_cmake(${test})
endfunction()
function(run_cmake_with_raw_args test args)
set(RunCMake_TEST_RAW_ARGS "${args}")
run_cmake(${test})
endfunction()
function(ensure_files_match expected_file actual_file)
if(NOT EXISTS "${expected_file}")
message(FATAL_ERROR "Expected file does not exist:\n ${expected_file}")
endif()
if(NOT EXISTS "${actual_file}")
message(FATAL_ERROR "Actual file does not exist:\n ${actual_file}")
endif()
file(READ "${expected_file}" expected_file_content)
file(READ "${actual_file}" actual_file_content)
if(NOT "${expected_file_content}" STREQUAL "${actual_file_content}")
message(FATAL_ERROR "Actual file content does not match expected:\n
\n
expected file: ${expected_file}\n
expected content:\n
${expected_file_content}\n
\n
actual file: ${actual_file}\n
actual content:\n
${actual_file_content}\n
")
endif()
endfunction()
# Get the user id on unix if possible.
function(get_unix_uid var)
set("${var}" "" PARENT_SCOPE)
if(UNIX)
set(ID "id")
if(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND EXISTS "/usr/xpg4/bin/id")
set (ID "/usr/xpg4/bin/id")
endif()
execute_process(COMMAND ${ID} -u $ENV{USER} OUTPUT_VARIABLE uid ERROR_QUIET
RESULT_VARIABLE status OUTPUT_STRIP_TRAILING_WHITESPACE)
if(status EQUAL 0)
set("${var}" "${uid}" PARENT_SCOPE)
endif()
endif()
endfunction()
# Protect RunCMake tests from calling environment.
unset(ENV{MAKEFLAGS})

View File

@@ -0,0 +1,39 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#
# Original file location was Tests/RunCMake/CMakeLists.txt
macro(add_RunCMake_test test)
set(TEST_ARGS ${ARGN})
if ("${ARGV1}" STREQUAL "TEST_DIR")
if ("${ARGV2}" STREQUAL "")
message(FATAL_ERROR "Invalid args")
endif()
set(Test_Dir ${ARGV2})
list(REMOVE_AT TEST_ARGS 0)
list(REMOVE_AT TEST_ARGS 0)
else()
set(Test_Dir ${test})
endif()
if(CMAKE_C_COMPILER_ID STREQUAL "LCC")
list(APPEND TEST_ARGS -DRunCMake_TEST_LCC=1)
endif()
add_test(NAME RunCMake.${test} COMMAND ${CMAKE_CMAKE_COMMAND}
-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_SOURCE_DIR}
-DRunCMake_GENERATOR_IS_MULTI_CONFIG=${_isMultiConfig}
-DRunCMake_GENERATOR=${CMAKE_GENERATOR}
-DRunCMake_GENERATOR_INSTANCE=${CMAKE_GENERATOR_INSTANCE}
-DRunCMake_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
-DRunCMake_GENERATOR_TOOLSET=${CMAKE_GENERATOR_TOOLSET}
-DRunCMake_MAKE_PROGRAM=${CMake_TEST_EXPLICIT_MAKE_PROGRAM}
-DRunCMake_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/${Test_Dir}
-DRunCMake_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}/${test}
${${test}_ARGS}
${TEST_ARGS}
-P "${CMAKE_CURRENT_SOURCE_DIR}/${Test_Dir}/RunCMakeTest.cmake"
)
set_tests_properties("RunCMake.${test}" PROPERTIES LABELS "CMake;run")
if(${test} MATCHES ^CMP)
set_property(TEST "RunCMake.${test}" APPEND PROPERTY LABELS "policy")
endif()
endmacro()

View File

@@ -0,0 +1,16 @@
{
"Id": "cmake-test-modules",
"Name": "cmake-test-modules",
"QDocModule": "qtcore",
"QtUsage": "Used as part of the build system.",
"QtParts" : [ "tests" ],
"Description": "CMake helpers for running CMake tests.",
"Homepage": "https://cmake.org/",
"Version": "3.29.0",
"License": "BSD 3-Clause \"New\" or \"Revised\" License",
"LicenseId": "BSD-3-Clause",
"LicenseFile": "Copyright.txt",
"Copyright": "Copyright © 2000-2024 Kitware, Inc. and Contributors"
}

View File

@@ -0,0 +1,405 @@
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
# This file contains a modified subset of the qtbase/QtProcessConfigureArgs.cmake commands
# with renamed functions, because we need similar logic for init-repository, but
# we can't access qtbase before we clone it.
# Call a function with the given arguments.
function(qt_ir_call_function func)
set(call_code "${func}(")
math(EXPR n "${ARGC} - 1")
foreach(i RANGE 1 ${n})
string(APPEND call_code "\"${ARGV${i}}\" ")
endforeach()
string(APPEND call_code ")")
string(REPLACE "\\" "\\\\" call_code "${call_code}")
if(${CMAKE_VERSION} VERSION_LESS "3.18.0")
set(incfile qt_tmp_func_call.cmake)
file(WRITE "${incfile}" "${call_code}")
include(${incfile})
file(REMOVE "${incfile}")
else()
cmake_language(EVAL CODE "${call_code}")
endif()
endfunction()
# Show an error.
function(qt_ir_add_error)
message(FATAL_ERROR ${ARGV})
endfunction()
# Check if there are still unhandled command line arguments.
function(qt_ir_args_has_next_command_line_arg out_var)
qt_ir_get_unhandled_args(args)
list(LENGTH args n)
if(n GREATER 0)
set(result TRUE)
else()
set(result FALSE)
endif()
set(${out_var} ${result} PARENT_SCOPE)
endfunction()
# Get the next unhandled command line argument without popping it.
function(qt_ir_args_peek_next_command_line_arg out_var)
qt_ir_get_unhandled_args(args)
list(GET args 0 result)
set(${out_var} ${result} PARENT_SCOPE)
endfunction()
# Get the next unhandled command line argument.
function(qt_ir_args_get_next_command_line_arg out_var)
qt_ir_get_unhandled_args(args)
list(POP_FRONT args result)
qt_ir_set_unhandled_args("${args}")
set(${out_var} ${result} PARENT_SCOPE)
endfunction()
# Helper macro to parse the arguments for the command line options.
macro(qt_ir_commandline_option_parse_arguments)
set(options UNSUPPORTED)
set(oneValueArgs TYPE NAME SHORT_NAME ALIAS VALUE DEFAULT_VALUE)
set(multiValueArgs VALUES MAPPING)
cmake_parse_arguments(arg "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
endmacro()
# We use this to define the command line options that init-repository accepts.
# Arguments
# name - name of the long form option
# e.g. 'module-subset' will parse '--module-subset'
# UNSUPPORTED - mark the option as unsupported in the cmake port of init-repository,
# which means we will fall back to calling the perl script instead
# TYPE - the type of the option, currently we support boolean, string and void
# VALUE - the value to be set for a 'void' type option
# VALUES - the valid values for an option
# MAPPING - currently unused
# SHORT_NAME - an alternative short name flag,
# e.g. 'f' will parse -f for --force
# ALIAS - mark the option as an alias of another option, both will have the
# same value when retrieved.
# DEFAULT_VALUE - the default value to be set for the option when it's not specified
# on the command line
#
# NOTE: Make sure to update the SHORT_NAME code path when adding new options.
function(qt_ir_commandline_option_helper name)
qt_ir_commandline_option_parse_arguments(${ARGN})
set(unsupported_options "${commandline_known_unsupported_options}")
if(arg_UNSUPPORTED)
set(commandline_option_${name}_unsupported
"${arg_UNSUPPORTED}" PARENT_SCOPE)
list(APPEND unsupported_options "${name}")
endif()
set(commandline_known_unsupported_options "${unsupported_options}" PARENT_SCOPE)
set(commandline_known_options
"${commandline_known_options};${name}" PARENT_SCOPE)
set(commandline_option_${name}_type "${arg_TYPE}" PARENT_SCOPE)
if(NOT "${arg_VALUE}" STREQUAL "")
set(commandline_option_${name}_value "${arg_VALUE}" PARENT_SCOPE)
endif()
if(arg_VALUES)
set(commandline_option_${name}_values ${arg_VALUES} PARENT_SCOPE)
elseif(arg_MAPPING)
set(commandline_option_${name}_mapping ${arg_MAPPING} PARENT_SCOPE)
endif()
if(NOT "${arg_SHORT_NAME}" STREQUAL "")
set(commandline_option_${name}_short_name "${arg_SHORT_NAME}" PARENT_SCOPE)
endif()
if(NOT "${arg_ALIAS}" STREQUAL "")
set(commandline_option_${name}_alias "${arg_ALIAS}" PARENT_SCOPE)
endif()
# Should be last, in case alias was specified
if(NOT "${arg_DEFAULT_VALUE}" STREQUAL "")
set(commandline_option_${name}_default_value "${arg_DEFAULT_VALUE}" PARENT_SCOPE)
qt_ir_command_line_set_input("${name}" "${arg_DEFAULT_VALUE}")
endif()
endfunction()
# Defines an option that init-repository understands.
# Uses qt_ir_commandline_option_helper to define both long and short option names.
macro(qt_ir_commandline_option name)
# Define the main option
qt_ir_commandline_option_helper("${name}" ${ARGN})
qt_ir_commandline_option_parse_arguments(${ARGN})
# Define the short name option if it's requested
if(NOT "${arg_SHORT_NAME}" STREQUAL ""
AND "${commandline_option_${arg_SHORT_NAME}_type}" STREQUAL "")
set(unsupported "")
if(arg_UNSUPPORTED)
set(unsupported "${arg_UNSUPPORTED}")
endif()
qt_ir_commandline_option_helper("${arg_SHORT_NAME}"
TYPE "${arg_TYPE}"
ALIAS "${name}"
VALUE "${arg_VALUE}"
VALUES ${arg_VALUES}
MAPPING ${arg_MAPPING}
DEFAULT_VALUE ${arg_DEFAULT_VALUE}
${unsupported}
)
endif()
endmacro()
# Saves the value of a command line option into a global property.
function(qt_ir_command_line_set_input name val)
if(NOT "${commandline_option_${name}_alias}" STREQUAL "")
set(name "${commandline_option_${name}_alias}")
endif()
set_property(GLOBAL PROPERTY _qt_ir_input_${name} "${val}")
set_property(GLOBAL APPEND PROPERTY _qt_ir_inputs ${name})
endfunction()
# Appends a value of a command line option into a global property.
# Currently unused
function(qt_ir_command_line_append_input name val)
if(NOT "${commandline_option_${name}_alias}" STREQUAL "")
set(name "${commandline_option_${name}_alias}")
endif()
get_property(oldval GLOBAL PROPERTY _qt_ir_input_${name})
if(NOT "${oldval}" STREQUAL "")
string(PREPEND val "${oldval};")
endif()
qt_ir_command_line_set_input(${name} "${val}" )
endfunction()
# Checks if the value of a command line option is valid.
function(qt_ir_validate_value opt val out_var)
set(${out_var} TRUE PARENT_SCOPE)
set(valid_values ${commandline_option_${arg}_values})
list(LENGTH valid_values n)
if(n EQUAL 0)
return()
endif()
foreach(v ${valid_values})
if(val STREQUAL v)
return()
endif()
endforeach()
set(${out_var} FALSE PARENT_SCOPE)
list(JOIN valid_values " " valid_values_str)
qt_ir_add_error("Invalid value '${val}' supplied to command line option '${opt}'."
"\nAllowed values: ${valid_values_str}\n")
endfunction()
# Sets / handles the value of a command line boolean option.
function(qt_ir_commandline_boolean arg val nextok)
if("${val}" STREQUAL "")
set(val "yes")
endif()
if(NOT val STREQUAL "yes" AND NOT val STREQUAL "no")
message(FATAL_ERROR
"Invalid value '${val}' given for boolean command line option '${arg}'.")
endif()
qt_ir_command_line_set_input("${arg}" "${val}")
endfunction()
# Sets / handles the value of a command line string option.
function(qt_ir_commandline_string arg val nextok)
if(nextok)
qt_ir_args_get_next_command_line_arg(val)
if("${val}" MATCHES "^-")
qt_ir_add_error("No value supplied to command line options '${arg}'.")
endif()
endif()
qt_ir_validate_value("${arg}" "${val}" success)
if(success)
qt_ir_command_line_set_input("${arg}" "${val}")
endif()
endfunction()
# Sets / handles the value of a command line void option.
# This is an option like --force, which doesn't take any arguments.
# Currently unused
function(qt_ir_commandline_void arg val nextok)
if(NOT "${val}" STREQUAL "")
qt_i_add_error("Command line option '${arg}' expects no argument ('${val}' given).")
endif()
if(DEFINED commandline_option_${arg}_value)
set(val ${commandline_option_${arg}_value})
endif()
if("${val}" STREQUAL "")
set(val yes)
endif()
qt_ir_command_line_set_input("${arg}" "${val}")
endfunction()
# Reads the command line arguments from the optfile_path.
function(qt_ir_get_raw_args_from_optfile optfile_path out_var)
file(STRINGS "${optfile_path}" args)
qt_ir_escape_semicolons(args "${args}")
set(${out_var} "${args}" PARENT_SCOPE)
endfunction()
# Reads the optfile_path, iterates over the given command line arguments,
# sets the input for recongized options.
#
# Handles the following styles of CLI arguments:
# --no-foo / --disable-foo
# -no-foo / -disable-foo
# --foo=<values>
# --foo <values>
# -foo <values>
# --foo
# -foo
# --f
# -f
#
# Currently handles the following types of CLI arguments:
# string
# boolean
# void
#
# IGNORE_UNKNOWN_ARGS tells the function not to fail if it encounters an unknown
# option, and instead append it to a global list of unknown options.
# It is needed when the script is called from the configure script with
# configure-only-known options.
function(qt_ir_process_args_from_optfile optfile_path)
set(options IGNORE_UNKNOWN_ARGS)
set(oneValueArgs "")
set(multiValueArgs "")
cmake_parse_arguments(arg "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
qt_ir_get_raw_args_from_optfile("${optfile_path}" configure_args)
qt_ir_set_unhandled_args("${configure_args}")
while(1)
qt_ir_args_has_next_command_line_arg(has_next)
if(NOT has_next)
break()
endif()
qt_ir_args_get_next_command_line_arg(arg)
# parse out opt and val
set(nextok FALSE)
if(arg MATCHES "^--?(disable|no)-(.*)")
set(opt "${CMAKE_MATCH_2}")
set(val "no")
elseif(arg MATCHES "^--([^=]+)=(.*)")
set(opt "${CMAKE_MATCH_1}")
set(val "${CMAKE_MATCH_2}")
elseif(arg MATCHES "^--(.*)")
set(nextok TRUE)
set(opt "${CMAKE_MATCH_1}")
unset(val)
elseif(arg MATCHES "^-(.*)")
set(nextok TRUE)
set(opt "${CMAKE_MATCH_1}")
unset(val)
else()
if(NOT arg_IGNORE_UNKNOWN_ARGS)
qt_ir_add_error("Invalid command line parameter '${arg}'.")
else()
message(DEBUG "Unknown command line parameter '${arg}'. Collecting.")
qt_ir_append_unknown_args("${arg}")
continue()
endif()
endif()
set(type "${commandline_option_${opt}_type}")
if("${type}" STREQUAL "")
if(NOT arg_IGNORE_UNKNOWN_ARGS)
qt_ir_add_error("Unknown command line option '${arg}'.")
else()
message(DEBUG "Unknown command line option '${arg}'. Collecting.")
qt_ir_append_unknown_args("${arg}")
continue()
endif()
endif()
if(NOT COMMAND "qt_ir_commandline_${type}")
qt_ir_add_error("Unknown type '${type}' for command line option '${opt}'.")
endif()
qt_ir_call_function("qt_ir_commandline_${type}" "${opt}" "${val}" "${nextok}")
endwhile()
endfunction()
# Shows help for the command line options.
function(qt_ir_show_help)
set(help_file "${CMAKE_CURRENT_LIST_DIR}/QtIRHelp.txt")
if(EXISTS "${help_file}")
file(READ "${help_file}" content)
message("${content}")
endif()
message([[
General Options:
-help, -h ............ Display this help screen
]])
endfunction()
# Gets the unhandled command line args.
function(qt_ir_get_unhandled_args out_var)
get_property(args GLOBAL PROPERTY _qt_ir_unhandled_args)
set(${out_var} "${args}" PARENT_SCOPE)
endfunction()
# Sets the unhandled command line args.
function(qt_ir_set_unhandled_args args)
set_property(GLOBAL PROPERTY _qt_ir_unhandled_args "${args}")
endfunction()
# Adds to the unknown command line args.
function(qt_ir_append_unknown_args args)
set_property(GLOBAL APPEND PROPERTY _qt_ir_unknown_args ${args})
endfunction()
# Gets the unhandled command line args.
function(qt_ir_get_unknown_args out_var)
get_property(args GLOBAL PROPERTY _qt_ir_unknown_args)
set(${out_var} "${args}" PARENT_SCOPE)
endfunction()
# Gets the unsupported options that init-repository.pl supports, but the cmake port does
# not support.
function(qt_ir_get_unsupported_options out_var)
set(${out_var} "${commandline_known_unsupported_options}" PARENT_SCOPE)
endfunction()
# Get the value of a command line option.
function(qt_ir_get_option_value name out_var)
if(NOT "${commandline_option_${name}_alias}" STREQUAL "")
set(name "${commandline_option_${name}_alias}")
endif()
get_property(value GLOBAL PROPERTY _qt_ir_input_${name})
set(${out_var} "${value}" PARENT_SCOPE)
endfunction()
# Set the value of a command line option manually.
function(qt_ir_set_option_value name value)
if(NOT "${commandline_option_${name}_alias}" STREQUAL "")
set(name "${commandline_option_${name}_alias}")
endif()
qt_ir_command_line_set_input("${name}" "${value}")
endfunction()
# Get the value of a command line option as a cmakke flag option, to be passed
# to functions that use cmake_parse_arguments.
function(qt_ir_get_option_as_cmake_flag_option cli_name cmake_option_name out_var)
qt_ir_get_option_value("${cli_name}" bool_value)
set(cmake_option "")
if(bool_value)
set(cmake_option "${cmake_option_name}")
endif()
set(${out_var} "${cmake_option}" PARENT_SCOPE)
endfunction()

1151
cmake/QtIRGitHelpers.cmake Normal file

File diff suppressed because it is too large Load Diff

134
cmake/QtIRHelp.txt Normal file
View File

@@ -0,0 +1,134 @@
Usage:
./init-repository [options]
This script may be run after an initial `git clone' of the Qt supermodule
in order to check out all submodules. It fetches them from canonical URLs
inferred from the clone's origin.
Options:
Global options:
--force, -f
Force initialization (even if the submodules are already checked
out).
--force-hooks
Force initialization of hooks (even if there are already hooks in
checked out submodules).
--quiet, -q
Be quiet. Will exit cleanly if the repository is already
initialized.
--verbose
Adds a bit more output when executing processes
--no-resolve-deps
By default, each submodule specified via the module-subset option
will have its required and optional dependencies also initialized.
This option can be passed to disable automatic initialization of
dependencies, so that the exact list passed to module-subset is
initialized.
--no-optional-deps
By default, each submodule specified via the module-subset option
will have its optional dependencies also initialized.
This option can be passed to initialize only required dependencies of
the given module-subset.
Module options:
--module-subset=<module1>,<module2>... / -submodules <module1>,<module2>...
Only initialize the specified subset of modules given as the
argument. Specified modules must already exist in .gitmodules. The
string "all" results in cloning all known modules. The strings
"essential", "addon", "preview", "deprecated", "obsolete",
"additionalLibrary", and "ignore" refer to classes of modules
identified by "status=" lines in the .gitmodules file.
You can use "existing" to to reference already initialized submodules.
Additionally, "qtrepotools" is implicitly always added to ensure
relevant git commit hooks are available. It can be excluded as described
below.
You can use "default" in the subset as a short-hand for
"essential,addon,preview,deprecated", which corresponds to the set of
maintained modules included in standard Qt releases; this is also the
default module subset when this option is not given when first running
init-repositoy. If init-repository is rerun a second time (with --force)
the default is to initialize the "existing" submodules, rather than the
default subset. Entries may be prefixed with a dash to exclude them
from a bigger set, e.g. "all,-ignore" or "existing,-qttools".
For compatibility with qt's configure script, -submodules is an alias
of --module-subset. Note the difference in dashes and the equal sign.
--no-update
Skip the `git submodule update' command.
--no-fetch
Skip the `git fetch' commands. Implied by --no-update.
--branch
Instead of checking out specific SHA1s, check out the submodule
branches that correspond with the current supermodule commit. By
default, this option will cause local commits in the submodules to
be rebased. With --no-update, the branches will be checked out, but
their heads will not move.
--ignore-submodules
Set git config to ignore submodules by default when doing operations
on the qt5 repo, such as `pull', `fetch', `diff' etc.
After using this option, pass `--ignore-submodules=none' to git to
override it as needed.
Repository options:
--berlin
Switch to internal URLs and make use of the Berlin git mirrors.
(Implies `--mirror').
--oslo
Switch to internal URLs and make use of the Oslo git mirrors.
(Implies `--mirror').
--codereview-username <Gerrit/JIRA username>
Specify the user name for the (potentially) writable `gerrit' remote
for each module, for use with the Gerrit code review tool.
If this option is omitted, the gerrit remote is created without a
username and port number, and thus relies on a correct SSH
configuration.
--alternates <path to other Qt5 repo>
Adds alternates for each submodule to another full qt5 checkout.
This makes this qt5 checkout very small, as it will use the object
store of the alternates before unique objects are stored in its own
object store.
This option has no effect when using `--no-update'.
NOTE: This will make this repo dependent on the alternate, which is
potentially dangerous! The dependency can be broken by also using
the `--copy-objects' option, or by running "git repack -a" in each
submodule, where required. Please read the note about the `--shared'
option in the documentation of `git clone' for more information.
--copy-objects
When `--alternates' is used, automatically do a "git repack -a" in
each submodule after cloning, to ensure that the repositories are
independent from the source used as a reference for cloning.
Note that this negates the disk usage benefits gained from the use
of `--alternates'.
--mirror <url-base>
Uses <url-base> as the base URL for submodule git mirrors.
For example:
--mirror user\@machine:/foo/bar/qt/
...will use the following as a mirror for qtbase:
user\@machine:/foo/bar/qt/qtbase.git
The mirror is permitted to contain a subset of the submodules; any
missing modules will fall back to the canonical URLs.

367
cmake/QtIRHelpers.cmake Normal file
View File

@@ -0,0 +1,367 @@
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
# Includes all helper files for access to necessary functions.
macro(qt_ir_include_all_helpers)
include(QtIRCommandLineHelpers)
include(QtIRGitHelpers)
include(QtIROptionsHelpers)
include(QtIRParsingHelpers)
include(QtIRProcessHelpers)
include(QtIRTestHelpers)
include(QtTopLevelHelpers)
endmacro()
# Convenience macro to get the working directory from the arguments passed to
# cmake_parse_arguments. Saves a few lines and makes reading the code slightly
# easier.
macro(qt_ir_get_working_directory_from_arg out_var)
if(NOT arg_WORKING_DIRECTORY)
message(FATAL_ERROR "No working directory specified")
endif()
set(${out_var} "${arg_WORKING_DIRECTORY}")
endmacro()
# Convenience function to set the variable to the name of cmake_parse_arguments
# flag option if it is active.
function(qt_ir_get_cmake_flag flag_name out_var)
if(arg_${flag_name})
set(${out_var} "${flag_name}" PARENT_SCOPE)
else()
set(${out_var} "" PARENT_SCOPE)
endif()
endfunction()
# There are some init-repository options that we do not want to allow when called from
# configure. Make sure we error out when they are set by the user.
function(qt_ir_validate_options_for_configure)
set(disallowed_options
# Disallow mirror options, because users should set up a proper git mirror manually,
# not via configure.
mirror
oslo
berlin
)
foreach(disallowed_option IN LISTS disallowed_options)
qt_ir_get_option_value(${disallowed_option} value)
if(value)
set(msg
"Initialization option '${disallowed_option}' is not supported by configure. "
"If you think this option should be supported, please let us know at "
"https://bugreports.qt.io/"
)
message(FATAL_ERROR ${msg})
endif()
endforeach()
endfunction()
# Handle the case when init-repository is called from the configure script.
function(qt_ir_handle_called_from_configure top_level_src_path out_var_exit_reason)
# Nothing special to do if we're not called from configure.
qt_ir_is_called_from_configure(is_called_from_configure)
if(NOT is_called_from_configure)
set(${out_var_exit_reason} FALSE PARENT_SCOPE)
return()
endif()
# Check whether qtbase was cloned, if not, tell the user how to initialize
# the repos as part of the configure script.
qt_ir_get_option_value(init-submodules init_submodules)
set(configure_script "${top_level_src_path}/qtbase/configure")
if(NOT EXISTS "${configure_script}" AND NOT init_submodules)
set(msg "Oops. It looks like you didn't initialize any submodules yet.\nCall configure "
"with the -init-submodules option to automatically clone a default set of "
"submodules before configuring Qt.\nYou can also pass "
"-submodules submodule2,submodule3 to clone a particular set of submodules "
"and their dependencies. See ./init-repository --help for more information on values "
"accepted by --module-subset (which gets its values from -submodules).")
message(${msg})
set(${out_var_exit_reason} NEED_INIT_SUBMODULES PARENT_SCOPE)
return()
endif()
# Don't do init-repository things when called from configure, qtbase exists and the
# -init-submodules option is not passed. We assume the repo was already
# initialized.
if(NOT init_submodules)
set(${out_var_exit_reason} ALREADY_INITIALIZED PARENT_SCOPE)
return()
endif()
qt_ir_validate_options_for_configure()
# -init_submodules implies --force
qt_ir_set_option_value(force TRUE)
set(${out_var_exit_reason} FALSE PARENT_SCOPE)
endfunction()
# Returns a list of command line arguments with the init-repository specific
# options removed, which are not recognized by configure.
# It also handles -submodules values like 'essential', 'existing' and '-qtsvg' and transforms them
# into the final list of submodules to be included and excluded, which are then translated
# to configure -submodules and -skip options.
function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
cmake_parse_arguments(arg "ALREADY_INITIALIZED" "" "" ${ARGV})
# Get args unknown to init-repository, and pass them to configure as-is.
qt_ir_get_unknown_args(unknown_args)
set(filtered_args ${unknown_args})
set(extra_configure_args "")
set(extra_cmake_args "")
# If the -submodules or --module-subset options were specified, transform
# the values into something configure understands and pass them to configure.
qt_ir_get_option_value(module-subset submodules)
if(submodules)
qt_ir_get_top_level_submodules(include_submodules exclude_submodules)
if(NOT include_submodules AND arg_ALREADY_INITIALIZED)
set(include_submodules "${submodules}")
endif()
# qtrepotools is always implicitly cloned, but it doesn't actually
# have a CMakeLists.txt, so remove it.
list(REMOVE_ITEM include_submodules "qtrepotools")
# Make sure to explicitly pass -DBUILD_<module>=ON, in case they were
# skipped before, otherwise configure might fail.
if(include_submodules)
set(explicit_build_submodules "${include_submodules}")
list(TRANSFORM explicit_build_submodules PREPEND "-DBUILD_")
list(TRANSFORM explicit_build_submodules APPEND "=ON")
list(APPEND extra_cmake_args ${explicit_build_submodules})
endif()
list(JOIN include_submodules "," include_submodules)
list(JOIN exclude_submodules "," exclude_submodules)
# Handle case when the -skip argument is already passed.
# In that case read the passed values, merge with new ones,
# remove both the -skip and its values, and re-add it later.
list(FIND filtered_args "-skip" skip_index)
if(exclude_submodules AND skip_index GREATER -1)
list(LENGTH filtered_args filtered_args_length)
math(EXPR skip_args_index "${skip_index} + 1")
if(skip_args_index LESS filtered_args_length)
list(GET filtered_args "${skip_args_index}" skip_args)
string(REPLACE "," ";" skip_args "${skip_args}")
list(APPEND skip_args ${exclude_submodules})
list(REMOVE_DUPLICATES skip_args)
list(JOIN skip_args "," exclude_submodules)
list(REMOVE_AT filtered_args "${skip_args_index}")
list(REMOVE_AT filtered_args "${skip_index}")
endif()
endif()
# Handle case when only '-submodules existing' is passed and the
# subset ends up empty.
if(include_submodules)
list(APPEND extra_configure_args "-submodules" "${include_submodules}")
endif()
if(exclude_submodules)
list(APPEND extra_configure_args "-skip" "${exclude_submodules}")
endif()
endif()
# Insert the extra arguments into the proper positions before and after '--'.
list(FIND filtered_args "--" cmake_args_index)
# -- is not found
if(cmake_args_index EQUAL -1)
# Append extra configure args if present
if(extra_configure_args)
list(APPEND filtered_args ${extra_configure_args})
endif()
# Append extra cmake args if present, but make sure to add -- first at the end
if(extra_cmake_args)
list(APPEND filtered_args "--")
list(APPEND filtered_args ${extra_cmake_args})
endif()
else()
# -- is found, that means we probably have cmake args
# Insert extra configure args if present, before the -- index.
if(extra_configure_args)
list(INSERT filtered_args "${cmake_args_index}" ${extra_configure_args})
endif()
# Find the -- index again, because it might have moved
list(FIND filtered_args "--" cmake_args_index)
# Compute the index of the argument after the --.
math(EXPR cmake_args_index "${cmake_args_index} + 1")
# Insert extra cmake args if present, after the -- index.
if(extra_cmake_args)
list(INSERT filtered_args "${cmake_args_index}" ${extra_cmake_args})
endif()
endif()
# Pass --help if it was requested.
qt_ir_is_help_requested(show_help)
if(show_help)
list(APPEND filtered_args "-help")
endif()
set(${out_var} "${filtered_args}" PARENT_SCOPE)
endfunction()
# Checks whether any of the arguments passed on the command line are options
# that are marked as unsupported in the cmake port of init-repository.
function(qt_ir_check_if_unsupported_options_used out_var out_var_option_name)
qt_ir_get_unsupported_options(unsupported_options)
set(unsupported_options_used FALSE)
foreach(unsupported_option IN LISTS unsupported_options)
qt_ir_get_option_value(${unsupported_option} value)
if(value)
set(${out_var_option_name} "${unsupported_option}" PARENT_SCOPE)
set(unsupported_options_used TRUE)
break()
endif()
endforeach()
set(${out_var} "${unsupported_options_used}" PARENT_SCOPE)
endfunction()
# When an unsupported option is used, show an error message and tell the user
# to run the perly script manually.
function(qt_ir_show_error_how_to_run_perl opt_file unsupported_option_name)
qt_ir_get_raw_args_from_optfile("${opt_file}" args)
qt_ir_prettify_command_args(args "${args}")
set(perl_cmd "perl ./init-repository.pl ${args}")
message(FATAL_ERROR
"Option '${unsupported_option_name}' is not implemented in the cmake "
"port of init-repository. Please let us know if this option is really "
"important for you at https://bugreports.qt.io/. Meanwhile, you can "
"still run the perl script directly. \n ${perl_cmd}")
endfunction()
# Check whether help was requested.
function(qt_ir_is_help_requested out_var)
qt_ir_get_option_value(help value)
set(${out_var} "${value}" PARENT_SCOPE)
endfunction()
# Check whether the verbose option was used.
function(qt_ir_is_verbose out_var)
qt_ir_get_option_value(verbose value)
set(${out_var} "${value}" PARENT_SCOPE)
endfunction()
function(qt_ir_is_called_from_configure out_var)
qt_ir_get_option_value(from-configure value)
set(${out_var} "${value}" PARENT_SCOPE)
endfunction()
# Main logic of the script.
function(qt_ir_run_after_args_parsed top_level_src_path out_var_exit_reason)
set(${out_var_exit_reason} FALSE PARENT_SCOPE)
qt_ir_is_called_from_configure(is_called_from_configure)
qt_ir_is_help_requested(show_help)
if(show_help AND NOT is_called_from_configure)
qt_ir_show_help()
set(${out_var_exit_reason} SHOWED_HELP PARENT_SCOPE)
return()
endif()
set(working_directory "${top_level_src_path}")
qt_ir_handle_if_already_initialized(already_initialized "${working_directory}")
if(already_initialized)
set(${out_var_exit_reason} ALREADY_INITIALIZED PARENT_SCOPE)
return()
endif()
# This will be used by the module subset processing to determine whether we
# should re-initialize the previously initialized (existing) subset.
qt_ir_check_if_already_initialized_cmake_style(is_initialized
"${working_directory}" FORCE_QUIET)
set(previously_initialized_option "")
if(is_initialized)
set(previously_initialized_option PREVIOUSLY_INITIALIZED)
endif()
# Ge the name of the qt5 repo (tqtc- or not) and the base url for all other repos
qt_ir_get_qt5_repo_name_and_base_url(
OUT_VAR_QT5_REPO_NAME qt5_repo_name
OUT_VAR_BASE_URL base_url
WORKING_DIRECTORY "${working_directory}")
qt_ir_get_already_initialized_submodules("${prefix}"
already_initialized_submodules
"${qt5_repo_name}"
"${working_directory}")
# Get some additional options to pass down.
qt_ir_get_option_value(alternates alternates)
qt_ir_get_option_as_cmake_flag_option(branch "CHECKOUT_BRANCH" checkout_branch_option)
# The prefix for the cmake-style 'dictionary' that will be used by various functions.
set(prefix "ir_top")
# Initialize and clone the submodules
qt_ir_handle_init_submodules("${prefix}"
ALTERNATES "${alternates}"
ALREADY_INITIALIZED_SUBMODULES "${already_initialized_submodules}"
BASE_URL "${base_url}"
PARENT_REPO_BASE_GIT_PATH "${qt5_repo_name}"
PROCESS_SUBMODULES_FROM_COMMAND_LINE
WORKING_DIRECTORY "${working_directory}"
${checkout_branch_option}
${previously_initialized_option}
)
# Add gerrit remotes.
qt_ir_add_git_remotes("${qt5_repo_name}" "${working_directory}")
# Install commit and other various hooks.
qt_ir_install_git_hooks(
PARENT_REPO_BASE_GIT_PATH "${qt5_repo_name}"
TOP_LEVEL_SRC_PATH "${top_level_src_path}"
WORKING_DIRECTORY "${working_directory}"
)
# Mark the repo as being initialized.
qt_ir_set_is_initialized("${working_directory}")
endfunction()
# Entrypoint of the init-repository script.
function(qt_ir_run_main_script top_level_src_path out_var_exit_reason)
set(${out_var_exit_reason} FALSE PARENT_SCOPE)
# Windows passes backslash paths.
file(TO_CMAKE_PATH "${top_level_src_path}" top_level_src_path)
qt_ir_set_known_command_line_options()
# If called from configure, there might be arguments that init-repository doesn't know about
# because they are meant for configure. In that case ignore unknown arguments.
qt_ir_get_option_value(from-configure from_configure)
if(from_configure)
set(ignore_unknown_args "IGNORE_UNKNOWN_ARGS")
else()
set(ignore_unknown_args "")
endif()
qt_ir_process_args_from_optfile("${OPTFILE}" "${ignore_unknown_args}")
qt_ir_handle_called_from_configure("${top_level_src_path}" exit_reason)
if(exit_reason)
set(${out_var_exit_reason} "${exit_reason}" PARENT_SCOPE)
return()
endif()
qt_ir_check_if_unsupported_options_used(
unsupported_options_used option_name)
if(unsupported_options_used)
qt_ir_show_error_how_to_run_perl("${OPTFILE}" "${option_name}")
endif()
qt_ir_run_after_args_parsed("${top_level_src_path}" exit_reason)
set(${out_var_exit_reason} "${exit_reason}" PARENT_SCOPE)
# TODO: Consider using cmake_language(EXIT <exit-code>) when cmake 3.29 is released.
endfunction()

View File

@@ -0,0 +1,48 @@
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
# Declare command line options known to init-repository.
macro(qt_ir_set_known_command_line_options)
# Implemented options
# Note alternates is a qt specific option name, but it uses
# git submodule's --reference option underneath which also implies --shared.
# It essentially uses the git object storage of another repo, to avoid
# cloning the same objects and thus saving space.
qt_ir_commandline_option(alternates TYPE string)
qt_ir_commandline_option(berlin TYPE boolean)
qt_ir_commandline_option(branch TYPE boolean)
qt_ir_commandline_option(codereview-username TYPE string)
qt_ir_commandline_option(copy-objects TYPE boolean)
qt_ir_commandline_option(fetch TYPE boolean DEFAULT_VALUE yes)
qt_ir_commandline_option(force SHORT_NAME f TYPE boolean)
qt_ir_commandline_option(force-hooks TYPE boolean)
qt_ir_commandline_option(help SHORT_NAME h TYPE boolean)
qt_ir_commandline_option(ignore-submodules TYPE boolean)
qt_ir_commandline_option(mirror TYPE string)
qt_ir_commandline_option(module-subset TYPE string)
qt_ir_commandline_option(optional-deps TYPE boolean DEFAULT_VALUE yes)
qt_ir_commandline_option(oslo TYPE boolean)
qt_ir_commandline_option(perl-identical-output TYPE boolean)
qt_ir_commandline_option(perl-init-check TYPE boolean)
qt_ir_commandline_option(quiet SHORT_NAME q TYPE boolean)
qt_ir_commandline_option(resolve-deps TYPE boolean DEFAULT_VALUE yes)
qt_ir_commandline_option(update TYPE boolean DEFAULT_VALUE yes)
qt_ir_commandline_option(verbose TYPE boolean)
# These are used when init-repository is called from configure.
qt_ir_commandline_option(from-configure TYPE boolean)
# Implies force.
qt_ir_commandline_option(init-submodules TYPE boolean)
# We alias qtbase's submodules option to init-repository module-subset.
qt_ir_commandline_option(submodules ALIAS module-subset TYPE string)
set_property(GLOBAL PROPERTY _qt_ir_known_command_line_options "${commandline_known_options}")
endmacro()
# Gets list of known command line options.
function(qt_ir_get_known_command_line_options out_var)
get_property(values GLOBAL PROPERTY _qt_ir_known_command_line_options)
set(${out_var} "${values}" PARENT_SCOPE)
endfunction()

View File

@@ -0,0 +1,237 @@
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
# Retrieves the contents of either .git/config or .gitmodules files for further parsing.
function(qt_ir_get_git_config_contents out_var)
set(options
READ_GITMODULES
READ_GIT_CONFIG
READ_GIT_CONFIG_LOCAL
)
set(oneValueArgs
WORKING_DIRECTORY
)
set(multiValueArgs "")
cmake_parse_arguments(arg "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(arg_READ_GITMODULES)
set(args -f .gitmodules)
set(file_message ".gitmodules")
elseif(arg_READ_GIT_CONFIG)
set(args "")
set(file_message ".git/config")
elseif(arg_READ_GIT_CONFIG_LOCAL)
set(args "--local")
set(file_message ".local .git/config")
else()
message(FATAL_ERROR "qt_ir_get_git_config_contents: No option specified")
endif()
qt_ir_get_working_directory_from_arg(working_directory)
qt_ir_execute_process_and_log_and_handle_error(
FORCE_QUIET
COMMAND_ARGS git config --list ${args}
OUT_OUTPUT_VAR git_output
WORKING_DIRECTORY "${working_directory}"
ERROR_MESSAGE "Failed to get ${file_message} contents for parsing")
string(STRIP "${git_output}" git_output)
set(${out_var} "${git_output}" PARENT_SCOPE)
endfunction()
# Checks whether the given url has a scheme like https:// or is just a
# relative path.
function(qt_ir_has_url_scheme url out_var)
string(REGEX MATCH "^[a-z][a-z0-9+\-.]*://" has_url_scheme "${url}")
if(has_url_scheme)
set(${out_var} TRUE PARENT_SCOPE)
else()
set(${out_var} FALSE PARENT_SCOPE)
endif()
endfunction()
# Parses a key-value line from a .git/config or .gitmodules file
macro(qt_ir_parse_git_key_value)
string(REGEX REPLACE "^submodule\\.([^.=]+)\\.([^.=]+)=(.*)$" "\\1;\\2;\\3"
parsed_line "${line}")
list(LENGTH parsed_line parsed_line_length)
set(submodule_name "")
set(key "")
set(value "")
if(parsed_line_length EQUAL 3)
list(GET parsed_line 0 submodule_name)
list(GET parsed_line 1 key)
list(GET parsed_line 2 value)
endif()
endmacro()
# Parses a url line from a .gitmodules file
# e.g. line - 'submodule.qtbase.url=../qtbase.git'
#
# Arguments
#
# submodule_name
# submodule name, the key in 'submodule.${submodule_name}.url'
# e.g. 'qtbase'
# url_value
# the url where to clone a repo from
# in perl script it was called $base
# e.g. '../qtbase.git', 'https://code.qt.io/playground/qlitehtml.git'
# parent_repo_base_git_path
# the base git path of the parent of the submodule
# it is either a relative dir or a full url
# in the perl script it was called $my_repo_base,
# it was passed as first arg to git_clone_all_submodules,
# it was passed the value of $subbases{$module} when doing recursive submodule cloning
# e.g. 'qt5', 'tqtc-qt5', 'qtdeclarative.git', 'https://code.qt.io/playground/qlitehtml.git'
#
# Outputs
#
# ${out_var_prefix}_${submodule_name}_url
# just the value of ${url_value}
# ${out_var_prefix}_${submodule_name}_base_git_path
# the whole url if it has a scheme, otherwise it's the value of
# ${url_value} relative to ${parent_repo_base_git_path}, so all the ../ are collapsed
# e.g. 'qtdeclarative.git'
# 'https://code.qt.io/playground/qlitehtml.git',
macro(qt_ir_parse_git_url_key out_var_prefix submodule_name url_value parent_repo_base_git_path)
qt_ir_has_url_scheme("${url_value}" has_url_scheme)
if(NOT has_url_scheme)
set(base_git_path "${parent_repo_base_git_path}/${url_value}")
# The exact code perl code was while ($base =~ s,(?!\.\./)[^/]+/\.\./,,g) {}
# That got rid of ../ and ../../ in the path, but it broke down
# when more than two ../ were present.
# We just use ABSOLUTE to resolve the path and get rid of all ../
# Note the empty BASE_DIR is important, otherwise the path is relative to
# ${CMAKE_CURRENT_SOURCE_DIR}.
get_filename_component(base_git_path "${base_git_path}" ABSOLUTE BASE_DIR "")
else()
set(base_git_path "${url_value}")
endif()
set(${out_var_prefix}_${submodule_name}_url "${url_value}" PARENT_SCOPE)
set(${out_var_prefix}_${submodule_name}_base_git_path "${base_git_path}" PARENT_SCOPE)
endmacro()
# Parses a .git/config or .gitmodules file contents and sets variables for each submodule
# starting with ${out_var_prefix}_
# These include:
# ${out_var_prefix}_${submodule_name}_path
# the path to the submodule relative to the parent repo
# ${out_var_prefix}_${submodule_name}_branch
# the branch that should be checked out when the branch option is used
# ${out_var_prefix}_${submodule_name}_url
# the url key as encountered in the config
# ${out_var_prefix}_${submodule_name}_base_git_path
# the git base path of the submodule, either a full url or a relative path
# ${out_var_prefix}_${submodule_name}_update
# the status of the submodule, can be 'none'
# ${out_var_prefix}_${submodule_name}_status
# the status of the submodule, can be 'essential', 'addon', etc
# ${out_var_prefix}_${submodule_name}_depends
# the list of submodules that this submodule depends on
# ${out_var_prefix}_${submodule_name}_recommends
# the list of submodules that this submodule recommends to be used with
# ${out_var_prefix}_submodules
# a list of all known submodule names encountered in the file
# ${out_var_prefix}_submodules_to_remove
# a list of all submodules to remove due to update == 'none'
# ${out_var_prefix}_statuses to
# a list of all known submodule statuses like 'essential', 'addon', etc
# ${out_var_prefix}_status_${status}_submodules
# a list of all submodules with the specific status
function(qt_ir_parse_git_config_file_contents out_var_prefix)
set(options
READ_GITMODULES
READ_GIT_CONFIG
READ_GIT_CONFIG_LOCAL
)
set(oneValueArgs
PARENT_REPO_BASE_GIT_PATH
WORKING_DIRECTORY
)
set(multiValueArgs "")
cmake_parse_arguments(arg "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
qt_ir_get_working_directory_from_arg(working_directory)
if(NOT arg_PARENT_REPO_BASE_GIT_PATH)
message(FATAL_ERROR
"qt_ir_parse_git_config_file_contents: No base PARENT_REPO_BASE_GIT_PATH specified")
endif()
set(parent_repo_base_git_path "${arg_PARENT_REPO_BASE_GIT_PATH}")
if(arg_READ_GITMODULES)
set(read_git_config READ_GITMODULES)
elseif(arg_READ_GIT_CONFIG)
set(read_git_config READ_GIT_CONFIG)
elseif(arg_READ_GIT_CONFIG_LOCAL)
set(read_git_config READ_GIT_CONFIG_LOCAL)
else()
message(FATAL_ERROR
"qt_ir_parse_gitmodules_file_contents: No valid git config file specified")
endif()
qt_ir_get_git_config_contents(contents
${read_git_config}
WORKING_DIRECTORY "${working_directory}"
)
string(REPLACE "\n" ";" lines "${contents}")
set(known_submodules "")
set(statuses "")
set(submodules_to_remove "")
foreach(line IN LISTS lines)
qt_ir_parse_git_key_value()
if(NOT submodule_name OR NOT key OR value STREQUAL "")
continue()
endif()
list(APPEND known_submodules "${submodule_name}")
if(key STREQUAL "path")
set(${out_var_prefix}_${submodule_name}_path "${value}" PARENT_SCOPE)
elseif(key STREQUAL "branch")
set(${out_var_prefix}_${submodule_name}_branch "${value}" PARENT_SCOPE)
elseif(key STREQUAL "url")
qt_ir_parse_git_url_key(
"${out_var_prefix}" "${submodule_name}" "${value}" "${parent_repo_base_git_path}")
elseif(key STREQUAL "update")
# Some repo submodules had a update = none key in their .gitmodules
# in which case we're supposed to skip initialzing those submodules,
# which the perl script did by adding -${submodule_name} to the subset.
# See qtdeclarative Change-Id: I633404f1c00d83dcbdca06a1d287623190323028
set(${out_var_prefix}_${submodule_name}_update "${value}" PARENT_SCOPE)
if(value STREQUAL "none")
list(APPEND submodules_to_remove "-${submodule_name}")
endif()
elseif(key STREQUAL "status")
set(status_submodules "${${out_var_prefix}_status_${value}_submodules}")
list(APPEND status_submodules "${submodule_name}")
list(REMOVE_DUPLICATES status_submodules)
list(APPEND statuses "${value}")
set(${out_var_prefix}_status_${value}_submodules "${status_submodules}")
set(${out_var_prefix}_status_${value}_submodules "${status_submodules}" PARENT_SCOPE)
set(${out_var_prefix}_${submodule_name}_status "${value}" PARENT_SCOPE)
elseif(key STREQUAL "depends")
string(REPLACE " " ";" value "${value}")
set(${out_var_prefix}_${submodule_name}_depends "${value}" PARENT_SCOPE)
elseif(key STREQUAL "recommends")
string(REPLACE " " ";" value "${value}")
set(${out_var_prefix}_${submodule_name}_recommends "${value}" PARENT_SCOPE)
endif()
endforeach()
list(REMOVE_DUPLICATES known_submodules)
list(REMOVE_DUPLICATES submodules_to_remove)
list(REMOVE_DUPLICATES statuses)
set(${out_var_prefix}_submodules "${known_submodules}" PARENT_SCOPE)
set(${out_var_prefix}_submodules_to_remove "${submodules_to_remove}" PARENT_SCOPE)
set(${out_var_prefix}_statuses "${statuses}" PARENT_SCOPE)
endfunction()

View File

@@ -0,0 +1,185 @@
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
# A low-level execute_process wrapper that can be used to execute a single command
# while controlling the verbosity and error handling.
function(qt_ir_execute_process)
set(options
QUIET
)
set(oneValueArgs
WORKING_DIRECTORY
OUT_RESULT_VAR
OUT_OUTPUT_VAR
OUT_ERROR_VAR
)
set(multiValueArgs
COMMAND_ARGS
EP_EXTRA_ARGS
)
cmake_parse_arguments(arg "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(NOT arg_COMMAND_ARGS)
message(FATAL_ERROR "Missing arguments to qt_ir_execute_process")
endif()
if(arg_WORKING_DIRECTORY)
set(working_dir_value "${arg_WORKING_DIRECTORY}")
else()
set(working_dir_value ".")
endif()
set(working_dir WORKING_DIRECTORY "${working_dir_value}")
set(result_variable "")
if(arg_OUT_RESULT_VAR)
set(result_variable RESULT_VARIABLE proc_result)
endif()
set(swallow_output "")
if(arg_OUT_OUTPUT_VAR OR arg_QUIET)
list(APPEND swallow_output OUTPUT_VARIABLE proc_output)
endif()
if(arg_OUT_ERROR_VAR OR arg_QUIET)
list(APPEND swallow_output ERROR_VARIABLE proc_error)
endif()
if(NOT arg_QUIET)
set(working_dir_message "")
qt_ir_is_verbose(verbose)
if(verbose)
set(working_dir_message " current working dir: ")
if(NOT working_dir_value STREQUAL ".")
string(APPEND working_dir_message "${working_dir_value}")
endif()
endif()
qt_ir_prettify_command_args(command_args_string "${arg_COMMAND_ARGS}")
message("+ ${command_args_string}${working_dir_message}")
endif()
qt_ir_unescape_semicolons(arg_COMMAND_ARGS "${arg_COMMAND_ARGS}")
execute_process(
COMMAND ${arg_COMMAND_ARGS}
${working_dir}
${result_variable}
${swallow_output}
${arg_EP_EXTRA_ARGS}
)
if(arg_OUT_RESULT_VAR)
set(${arg_OUT_RESULT_VAR} "${proc_result}" PARENT_SCOPE)
endif()
if(arg_OUT_OUTPUT_VAR)
set(${arg_OUT_OUTPUT_VAR} "${proc_output}" PARENT_SCOPE)
endif()
if(arg_OUT_ERROR_VAR)
set(${arg_OUT_ERROR_VAR} "${proc_error}" PARENT_SCOPE)
endif()
endfunction()
# Guards the escaped semicolon sequences with square brackets.
function(qt_ir_escape_semicolons out_var input_string)
string(REPLACE "\;" "[[;]]" ${out_var} "${input_string}")
set(${out_var} "${${out_var}}" PARENT_SCOPE)
endfunction()
# Removes the square bracket guards around semicolons and escape them.
function(qt_ir_unescape_semicolons out_var input_string)
string(REPLACE "[[;]]" "\;" ${out_var} "${input_string}")
set(${out_var} "${${out_var}}" PARENT_SCOPE)
endfunction()
# Converts the command line arguments to a nice bash runnable string
function(qt_ir_prettify_command_args output args)
list(JOIN args " " ${output})
qt_ir_unescape_semicolons(${output} "${${output}}")
set(${output} "${${output}}" PARENT_SCOPE)
endfunction()
# A higher level execute_process wrapper that can be used to execute a single command
# that is a bit more opinionated and expects options related to init-repository
# functionality.
# It handles queietness, error handling and logging.
# It also allows for slightly more compact syntax for calling processes.
function(qt_ir_execute_process_and_log_and_handle_error)
set(options
NO_HANDLE_ERROR
FORCE_VERBOSE
FORCE_QUIET
)
set(oneValueArgs
WORKING_DIRECTORY
OUT_RESULT_VAR
OUT_OUTPUT_VAR
OUT_ERROR_VAR
ERROR_MESSAGE
)
set(multiValueArgs
COMMAND_ARGS
EP_EXTRA_ARGS
)
cmake_parse_arguments(arg "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
qt_ir_get_option_value(quiet quiet)
set(quiet_option "")
if((quiet OR arg_FORCE_QUIET) AND NOT arg_FORCE_VERBOSE)
set(quiet_option "QUIET")
endif()
set(working_dir "")
if(arg_WORKING_DIRECTORY)
set(working_dir WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}")
endif()
set(extra_args "")
if(arg_EP_EXTRA_ARGS)
set(extra_args EP_EXTRA_ARGS "${arg_EP_EXTRA_ARGS}")
endif()
set(out_output_var "")
if(arg_OUT_OUTPUT_VAR OR quiet)
set(out_output_var OUT_OUTPUT_VAR proc_output)
endif()
set(out_error_var "")
if(arg_OUT_ERROR_VAR OR quiet)
set(out_error_var OUT_ERROR_VAR proc_error)
endif()
qt_ir_execute_process(
${quiet_option}
COMMAND_ARGS ${arg_COMMAND_ARGS}
OUT_RESULT_VAR proc_result
${extra_args}
${working_dir}
${out_output_var}
${out_error_var}
)
if(NOT proc_result EQUAL 0 AND NOT arg_NO_HANDLE_ERROR)
set(error_message "")
if(arg_ERROR_MESSAGE)
set(error_message "${arg_ERROR_MESSAGE}\n")
endif()
qt_ir_prettify_command_args(cmd "${arg_COMMAND_ARGS}")
string(APPEND error_message "${cmd} exited with status: ${proc_result}\n")
if(proc_output)
string(APPEND error_message "stdout: ${proc_output}\n")
endif()
if(proc_error)
string(APPEND error_message "stderr: ${proc_error}\n")
endif()
message(FATAL_ERROR "${error_message}")
endif()
if(arg_OUT_RESULT_VAR)
set(${arg_OUT_RESULT_VAR} "${proc_result}" PARENT_SCOPE)
endif()
if(arg_OUT_OUTPUT_VAR)
set(${arg_OUT_OUTPUT_VAR} "${proc_output}" PARENT_SCOPE)
endif()
if(arg_OUT_ERROR_VAR)
set(${arg_OUT_ERROR_VAR} "${proc_error}" PARENT_SCOPE)
endif()
endfunction()

17
cmake/QtIRScript.cmake Normal file
View File

@@ -0,0 +1,17 @@
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
cmake_minimum_required(VERSION 3.16)
# Sets up the include paths for all the helpers init-repository uses.
macro(qt_ir_setup_include_paths)
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_CURRENT_LIST_DIR}"
"${CMAKE_CURRENT_LIST_DIR}/3rdparty/cmake"
)
include(QtIRHelpers)
endmacro()
qt_ir_setup_include_paths()
qt_ir_include_all_helpers()
qt_ir_run_main_script("${CMAKE_CURRENT_SOURCE_DIR}" exit_reason)

View File

@@ -1,3 +1,6 @@
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
# The script produces the list of qt submodules that are required to build the submodules listed
# in the QT_BUILD_SUBMODULES variable. The resulting list preserves the required build order.
# Usage:

View File

@@ -1,3 +1,6 @@
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
# This script is to be called (ideally from a git-sync-to alias script):
# cmake -DSYNC_TO_MODULE="$1" -DSYNC_TO_BRANCH="$2" -P cmake/QtSynchronizeRepo.cmake
# Or as follows (ideally from a git-qt-foreach alias script):

View File

@@ -0,0 +1,17 @@
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
cmake_minimum_required(VERSION 3.16)
# Sets up the include paths for all the helpers configure uses.
macro(qt_tl_setup_include_paths)
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_CURRENT_LIST_DIR}"
"${CMAKE_CURRENT_LIST_DIR}/3rdparty/cmake"
)
include(QtTopLevelHelpers)
endmacro()
qt_tl_setup_include_paths()
qt_tl_include_all_helpers()
qt_tl_run_main_script()

View File

@@ -1,3 +1,62 @@
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
macro(qt_tl_include_all_helpers)
include(QtIRHelpers)
qt_ir_include_all_helpers()
endmacro()
function(qt_tl_run_toplevel_configure top_level_src_path)
cmake_parse_arguments(arg "ALREADY_INITIALIZED" "" "" ${ARGV})
qt_ir_get_cmake_flag(ALREADY_INITIALIZED arg_ALREADY_INITIALIZED)
# Filter out init-repository specific arguments before passing them to
# configure.
qt_ir_get_args_from_optfile_configure_filtered("${OPTFILE}" configure_args
${arg_ALREADY_INITIALIZED})
# Get the path to the qtbase configure script.
set(qtbase_dir_name "qtbase")
set(configure_path "${top_level_src_path}/${qtbase_dir_name}/configure")
if(CMAKE_HOST_WIN32)
string(APPEND configure_path ".bat")
endif()
if(NOT EXISTS "${configure_path}")
message(FATAL_ERROR
"The required qtbase/configure script was not found: ${configure_path}\n"
"Try re-running configure with --init-submodules")
endif()
# Make a build directory for qtbase in the current build directory.
set(qtbase_build_dir "${CMAKE_CURRENT_BINARY_DIR}/${qtbase_dir_name}")
file(MAKE_DIRECTORY "${qtbase_build_dir}")
qt_ir_execute_process_and_log_and_handle_error(
COMMAND_ARGS "${configure_path}" -top-level ${configure_args}
WORKING_DIRECTORY "${qtbase_build_dir}"
FORCE_VERBOSE
)
endfunction()
function(qt_tl_run_main_script)
if(NOT TOP_LEVEL_SRC_PATH)
message(FATAL_ERROR "Assertion: configure TOP_LEVEL_SRC_PATH is not set")
endif()
# Tell init-repository it is called from configure.
qt_ir_set_option_value(from-configure TRUE)
# Run init-repository in-process.
qt_ir_run_main_script("${TOP_LEVEL_SRC_PATH}" exit_reason)
if(exit_reason AND NOT exit_reason STREQUAL "ALREADY_INITIALIZED")
return()
endif()
# Then run configure out-of-process.
qt_tl_run_toplevel_configure("${TOP_LEVEL_SRC_PATH}" ${exit_reason})
endfunction()
# Populates $out_module_list with all subdirectories that have a CMakeLists.txt file
function(qt_internal_find_modules out_module_list)
set(module_list "")
@@ -15,7 +74,7 @@ endfunction()
# poor man's yaml parser, populating $out_dependencies with all dependencies
# in the $depends_file
# Each entry will be in the format dependency/sha1/required
function(qt_internal_parse_dependencies depends_file out_dependencies)
function(qt_internal_parse_dependencies_yaml depends_file out_dependencies)
file(STRINGS "${depends_file}" lines)
set(eof_marker "---EOF---")
list(APPEND lines "${eof_marker}")
@@ -48,7 +107,7 @@ function(qt_internal_parse_dependencies depends_file out_dependencies)
endif()
endforeach()
message(DEBUG
"qt_internal_parse_dependencies for ${depends_file}\n dependencies: ${dependencies}")
"qt_internal_parse_dependencies_yaml for ${depends_file}\n dependencies: ${dependencies}")
set(${out_dependencies} "${dependencies}" PARENT_SCOPE)
endfunction()
@@ -99,8 +158,22 @@ endfunction()
# Keyword arguments:
#
# PARSED_DEPENDENCIES is a list of dependencies of module in the format that
# qt_internal_parse_dependencies returns. If this argument is not provided, dependencies.yaml of the
# module is parsed.
# qt_internal_parse_dependencies_yaml returns.
# If this argument is not provided, either a module's dependencies.yaml or .gitmodules file is
# used as the source of dependencies, depending on whether PARSE_GITMODULES option is enabled.
#
# PARSE_GITMODULES is a boolean that controls whether the .gitmodules or the dependencies.yaml
# file of the repo are used for extracting dependencies. Defaults to FALSE, so uses
# dependencies.yaml by default.
#
# EXCLUDE_OPTIONAL_DEPS is a boolean that controls whether optional dependencies are excluded from
# the final result.
#
# GITMODULES_PREFIX_VAR is the prefix of all the variables containing dependencies for the
# PARSE_GITMODULES mode.
# The function expects the following variables to be set in the parent scope
# ${arg_GITMODULES_PREFIX_VAR}_${submodule_name}_depends
# ${arg_GITMODULES_PREFIX_VAR}_${submodule_name}_recommends
#
# IN_RECURSION is an internal option that is set when the function is in recursion.
#
@@ -111,10 +184,13 @@ endfunction()
#
# NORMALIZE_REPO_NAME_IF_NEEDED Will remove 'tqtc-' from the beginning of submodule dependencies
# if a tqtc- named directory does not exist.
#
# SKIP_MODULES Modules that should be skipped from evaluation completely.
function(qt_internal_resolve_module_dependencies module out_ordered out_revisions)
set(options IN_RECURSION NORMALIZE_REPO_NAME_IF_NEEDED)
set(oneValueArgs REVISION SKIPPED_VAR)
set(multiValueArgs PARSED_DEPENDENCIES)
set(options IN_RECURSION NORMALIZE_REPO_NAME_IF_NEEDED PARSE_GITMODULES
EXCLUDE_OPTIONAL_DEPS)
set(oneValueArgs REVISION SKIPPED_VAR GITMODULES_PREFIX_VAR)
set(multiValueArgs PARSED_DEPENDENCIES SKIP_MODULES)
cmake_parse_arguments(arg "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
# Clear the property that stores the repositories we've already seen.
@@ -122,10 +198,10 @@ function(qt_internal_resolve_module_dependencies module out_ordered out_revision
set_property(GLOBAL PROPERTY _qt_internal_seen_repos)
endif()
# Bail out if we've seen the module already.
# Bail out if we've seen the module already or it was skipped explicitly from command line.
qt_internal_resolve_module_dependencies_set_skipped(FALSE)
get_property(seen GLOBAL PROPERTY _qt_internal_seen_repos)
if(module IN_LIST seen)
if(module IN_LIST seen OR module IN_LIST arg_SKIP_MODULES)
qt_internal_resolve_module_dependencies_set_skipped(TRUE)
return()
endif()
@@ -141,10 +217,42 @@ function(qt_internal_resolve_module_dependencies module out_ordered out_revision
if(DEFINED arg_PARSED_DEPENDENCIES)
set(dependencies "${arg_PARSED_DEPENDENCIES}")
else()
set(depends_file "${CMAKE_CURRENT_SOURCE_DIR}/${module}/dependencies.yaml")
set(dependencies "")
if(EXISTS "${depends_file}")
qt_internal_parse_dependencies("${depends_file}" dependencies)
if(NOT arg_PARSE_GITMODULES)
set(depends_file "${CMAKE_CURRENT_SOURCE_DIR}/${module}/dependencies.yaml")
if(EXISTS "${depends_file}")
qt_internal_parse_dependencies_yaml("${depends_file}" dependencies)
if(arg_EXCLUDE_OPTIONAL_DEPS)
set(filtered_dependencies "")
foreach(dependency IN LISTS dependencies)
string(REPLACE "/" ";" dependency_split "${dependency}")
list(GET dependency_split 2 required)
if(required)
list(APPEND filtered_dependencies "${dependency}")
endif()
endforeach()
set(dependencies "${filtered_dependencies}")
endif()
endif()
else()
set(depends "${${arg_GITMODULES_PREFIX_VAR}_${dependency}_depends}")
foreach(dependency IN LISTS depends)
if(dependency)
# The HEAD value is not really used, but we need to add something.
list(APPEND dependencies "${dependency}/HEAD/TRUE")
endif()
endforeach()
set(recommends "${${arg_GITMODULES_PREFIX_VAR}_${dependency}_recommends}")
if(NOT arg_EXCLUDE_OPTIONAL_DEPS)
foreach(dependency IN LISTS recommends)
if(dependency)
list(APPEND dependencies "${dependency}/HEAD/FALSE")
endif()
endforeach()
endif()
endif()
endif()
@@ -171,11 +279,30 @@ function(qt_internal_resolve_module_dependencies module out_ordered out_revision
set_property(GLOBAL APPEND PROPERTY QT_REQUIRED_DEPS_FOR_${module} ${dependency})
endif()
set(parse_gitmodules "")
if(arg_PARSE_GITMODULES)
set(parse_gitmodules "PARSE_GITMODULES")
endif()
set(exclude_optional_deps "")
if(arg_EXCLUDE_OPTIONAL_DEPS)
set(exclude_optional_deps "EXCLUDE_OPTIONAL_DEPS")
endif()
set(extra_options "")
if(arg_SKIP_MODULES)
list(APPEND extra_options SKIP_MODULES ${arg_SKIP_MODULES})
endif()
qt_internal_resolve_module_dependencies(${dependency} dep_ordered dep_revisions
REVISION "${revision}"
SKIPPED_VAR skipped
IN_RECURSION
${normalize_arg}
${parse_gitmodules}
${exclude_optional_deps}
GITMODULES_PREFIX_VAR ${arg_GITMODULES_PREFIX_VAR}
${extra_options}
)
if(NOT skipped)
list(APPEND ordered ${dep_ordered})
@@ -197,20 +324,49 @@ endfunction()
# Arguments:
# modules is the initial list of repos.
# out_all_ordered is the variable name where the result is stored.
# PARSE_GITMODULES and GITMODULES_PREFIX_VAR are keyowrd arguments that change the
# source of dependencies parsing from dependencies.yaml to .gitmodules.
# EXCLUDE_OPTIONAL_DEPS is a keyword argument that excludes optional dependencies from the result.
# See qt_internal_resolve_module_dependencies for details.
#
# SKIP_MODULES Modules that should be skipped from evaluation completely.
#
# See qt_internal_resolve_module_dependencies for side effects.
function(qt_internal_sort_module_dependencies modules out_all_ordered)
set(options PARSE_GITMODULES EXCLUDE_OPTIONAL_DEPS)
set(oneValueArgs GITMODULES_PREFIX_VAR)
set(multiValueArgs SKIP_MODULES)
cmake_parse_arguments(arg "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(parse_gitmodules "")
if(arg_PARSE_GITMODULES)
set(parse_gitmodules "PARSE_GITMODULES")
endif()
set(exclude_optional_deps "")
if(arg_EXCLUDE_OPTIONAL_DEPS)
set(exclude_optional_deps "EXCLUDE_OPTIONAL_DEPS")
endif()
# Create a fake repository "all_selected_repos" that has all repositories from the input as
# required dependency. The format must match what qt_internal_parse_dependencies produces.
# required dependency. The format must match what qt_internal_parse_dependencies_yaml produces.
set(all_selected_repos_as_parsed_dependencies)
foreach(module IN LISTS modules)
list(APPEND all_selected_repos_as_parsed_dependencies "${module}/HEAD/FALSE")
endforeach()
set(extra_args "")
if(arg_SKIP_MODULES)
set(extra_args SKIP_MODULES ${arg_SKIP_MODULES})
endif()
qt_internal_resolve_module_dependencies(all_selected_repos ordered unused_revisions
PARSED_DEPENDENCIES ${all_selected_repos_as_parsed_dependencies}
NORMALIZE_REPO_NAME_IF_NEEDED
${exclude_optional_deps}
${parse_gitmodules}
GITMODULES_PREFIX_VAR ${arg_GITMODULES_PREFIX_VAR}
${extra_args}
)
# Drop "all_selected_repos" from the output. It depends on all selected repos, thus it must be

View File

@@ -0,0 +1,92 @@
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
# This script writes its arguments to the file determined by OUT_FILE.
# Each argument appears on a separate line.
# This is used for writing the init-repository.opt file.
#
# This script takes the following arguments:
# IN_FILE: The input file. The whole command line as one string, or one argument per line.
# REDO_FILE: A file containing extra commands to be joined with IN_FILE.
# OUT_FILE: The output file. One argument per line.
# SKIP_ARGS: Number of arguments to skip from the front of the arguments list.
# IGNORE_ARGS: List of arguments to be ignored, i.e. that are not written.
#
# If the REDO_FILE is given, its parameters will be merged with IN_FILE parameters
# and be written into the OUT_FILE.
cmake_minimum_required(VERSION 3.16)
# Read arguments from IN_FILE and separate them.
file(READ "${IN_FILE}" raw_args)
# To catch cases where the path ends with an `\`, e.g., `-prefix "C:\Path\"`
string(REPLACE "\\\"" "\"" raw_args "${raw_args}")
string(REPLACE ";" "[[;]]" raw_args "${raw_args}")
separate_arguments(args NATIVE_COMMAND "${raw_args}")
string(REPLACE "\;" ";" args "${args}")
string(REPLACE "[[;]]" "\;" args "${args}")
if(DEFINED REDO_FILE)
file(READ "${REDO_FILE}" raw_redo_args)
separate_arguments(redo_args NATIVE_COMMAND "${raw_redo_args}")
if(args)
list(FIND args "--" args_ddash_loc)
list(FIND redo_args "--" redo_ddash_loc)
if("${redo_ddash_loc}" STREQUAL "-1")
if("${args_ddash_loc}" STREQUAL "-1")
list(LENGTH args args_ddash_loc)
endif()
# Avoid adding an empty line for an empty -redo
if(NOT "${redo_args}" STREQUAL "")
list(INSERT args ${args_ddash_loc} "${redo_args}")
endif()
else()
# Handling redo's configure options
list(SUBLIST redo_args 0 ${redo_ddash_loc} redo_config_args)
if(redo_config_args)
if("${args_ddash_loc}" STREQUAL "-1")
list(APPEND args "${redo_config_args}")
else()
list(INSERT args ${args_ddash_loc} "${redo_config_args}")
endif()
endif()
# Handling redo's CMake options
list(LENGTH redo_args redo_args_len)
math(EXPR redo_ddash_loc "${redo_ddash_loc} + 1")
# Catch an unlikely case of -redo being called with an empty --, ie., `-redo --`
if(NOT ${redo_ddash_loc} STREQUAL ${redo_args_len})
list(SUBLIST redo_args ${redo_ddash_loc} -1 redo_cmake_args)
endif()
if(DEFINED redo_cmake_args)
if("${args_ddash_loc}" STREQUAL "-1")
list(APPEND args "--")
endif()
list(APPEND args "${redo_cmake_args}")
endif()
endif()
else()
list(APPEND args "${redo_args}")
endif()
endif()
# Skip arguments if requested
if(DEFINED SKIP_ARGS)
foreach(i RANGE 1 ${SKIP_ARGS})
list(POP_FRONT args)
endforeach()
endif()
# Write config.opt
set(content "")
foreach(arg IN LISTS args)
if(NOT arg IN_LIST IGNORE_ARGS)
string(APPEND content "${arg}\n")
endif()
endforeach()
file(WRITE "${OUT_FILE}" "${content}")

View File

@@ -2,7 +2,6 @@ Version: 2
Include: [
cmake_platforms_qemu.yaml,
cmake_platforms_qemu_qnx710.yaml,
cmake_platforms_qemu_vxworks.yaml,
cmake_platforms_target_android.yaml,
cmake_platforms_wasm.yaml,
macos.yaml
@@ -24,7 +23,7 @@ Configurations:
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}'
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON'
]
# Test on Ubuntu 22.04 X11
-
@@ -39,6 +38,24 @@ Configurations:
Compiler: 'GCC'
Features: ['Sccache', 'TestOnly']
Platform dependency: 'ubuntu-22.04'
# Build on Ubuntu 24.04 ARM64 and test on both X11 and Wayland later
-
Id: 'ubuntu-24.04-arm64'
Template: 'qtci-linux-Ubuntu-24.04-aarch64-50'
Compiler: 'GCC'
Features: ['UseConfigure', 'DoNotRunTests']
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON'
]
# Test on Ubuntu 24.04 ARM64 X11
-
Id: 'ubuntu-24.04-arm64-x11-tests'
Template: 'qtci-linux-Ubuntu-24.04-aarch64-50'
Compiler: 'GCC'
Features: ['TestOnly', 'InsignificantTests']
Platform dependency: 'ubuntu-24.04-arm64'
-
Id: 'opensuse-15.5-developer-build'
Template: 'qtci-linux-openSUSE-15.5-x86_64-52'
@@ -64,23 +81,23 @@ Configurations:
Id: 'windows-10_22h2-msvc2019'
Template: 'qtci-windows-10_22H2-x86_64-51'
Compiler: 'MSVC2019'
Features: ['Packaging', 'Sccache', "DebugAndRelease", 'UseConfigure']
Features: ['Sccache', "DebugAndRelease", 'UseConfigure']
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_native_grpc=OFF',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_native_grpc=OFF -DINPUT_headersclean=ON',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
]
-
Id: 'windows-11_22h2-msvc2019'
Template: 'qtci-windows-11_22H2-x86_64-51'
Id: 'windows-11_23H2-msvc2019'
Template: 'qtci-windows-11_23H2-x86_64-52'
Compiler: 'MSVC2019'
Features: ['Packaging', 'Sccache', "DebugAndRelease", 'UseConfigure']
Features: ['Sccache', "DebugAndRelease", 'UseConfigure']
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_native_grpc=OFF',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_native_grpc=OFF -DINPUT_headersclean=ON',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
]
@@ -92,22 +109,33 @@ Configurations:
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\.. -DMySQL_ROOT={{.Env.ENV_MySQL_ROOT}} -DMySQL_LIBRARY_DIR={{.Env.ENV_MySQL_LIBRARY_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_native_grpc=OFF',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_native_grpc=OFF -DFEATURE_clangcpp=OFF -DINPUT_headersclean=ON',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
]
-
Id: 'windows-11_22h2-msvc2022'
Template: 'qtci-windows-11_22H2-x86_64-51'
Id: 'windows-11_23H2-msvc2022'
Template: 'qtci-windows-11_23H2-x86_64-52'
Compiler: 'MSVC2022'
Features: ['Sccache', "DebugAndRelease", 'UseConfigure']
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib'
Features: ['Sccache', "DebugAndRelease", 'UseConfigure', 'Packaging']
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib -c++std c++20'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_native_grpc=OFF',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_native_grpc=OFF -DFEATURE_clangcpp=OFF -DINPUT_headersclean=ON',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
]
-
Id: 'windows-11_22h2-arm64-msvc2022'
Template: 'qtci-windows-11_22H2-aarch64-51'
Compiler: 'MSVC2022'
Features: ['Packaging', 'DebugAndRelease', 'UseConfigure', 'InsignificantTests']
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib -c++std c++20 -no-sql-psql'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_arm64}}\..',
'NON_QTBASE_CMAKE_ARGS=-DFEATURE_native_grpc=OFF -DFEATURE_clangcpp=OFF -DFEATURE_qdoc=OFF',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
]
-
Id: 'windows-10_22h2-msvc2019-developer-build'
Template: 'qtci-windows-10_22H2-x86_64-51'
@@ -115,7 +143,7 @@ Configurations:
Features: ['Sccache', "DebugAndRelease", 'WarningsAreErrors', 'UseConfigure']
Configure arguments: '-debug-and-release -make examples -developer-build -force-debug-info -qt-zlib'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\..',
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DMySQL_ROOT={{.Env.ENV_MySQL_ROOT}} -DMySQL_LIBRARY_DIR={{.Env.ENV_MySQL_LIBRARY_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
@@ -125,40 +153,40 @@ Configurations:
Template: 'qtci-windows-10_22H2-x86_64-51'
Compiler: 'MSVC2019'
Target arch: 'arm64'
Features: ['Sccache', 'DisableTests', 'TargetBuildOnly', 'Packaging', 'UseConfigure']
Features: ['Sccache', 'DisableTests', 'TargetBuildOnly', 'UseConfigure']
Platform dependency: 'windows-10_22h2-msvc2019-developer-build'
Environment variables: [
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc',
'TARGET_CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ROOT_DIR_x64_arm64}}',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFEATURE_native_grpc=OFF',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFEATURE_native_grpc=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE',
'OPENSSL_CONF_x64={{.Env.OPENSSL_CONF_x64_arm64}}',
'OPENSSL_INCLUDE_x64={{.Env.OPENSSL_INCLUDE_x64_arm64}}',
'OPENSSL_LIB_x64={{.Env.OPENSSL_LIB_x64_arm64}}',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
]
-
Id: 'windows-11_22h2-msvc2019-developer-build'
Template: 'qtci-windows-11_22H2-x86_64-51'
Id: 'windows-11_23H2-msvc2019-developer-build'
Template: 'qtci-windows-11_23H2-x86_64-52'
Compiler: 'MSVC2019'
Features: ['Sccache', "DebugAndRelease", 'WarningsAreErrors', 'UseConfigure']
Configure arguments: '-debug-and-release -make examples -developer-build -force-debug-info -qt-zlib -c++std c++20'
Configure arguments: '-debug-and-release -make examples -developer-build -force-debug-info -qt-zlib'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\..',
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DMySQL_ROOT={{.Env.ENV_MySQL_ROOT}} -DMySQL_LIBRARY_DIR={{.Env.ENV_MySQL_LIBRARY_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
]
-
Id: 'windows-11_22h2-msvc2019-arm64'
Template: 'qtci-windows-11_22H2-x86_64-51'
Id: 'windows-11_23H2-msvc2019-arm64'
Template: 'qtci-windows-11_23H2-x86_64-52'
Compiler: 'MSVC2019'
Target arch: 'arm64'
Features: ['Sccache', 'DisableTests', 'TargetBuildOnly', 'Packaging', 'UseConfigure']
Platform dependency: 'windows-11_22h2-msvc2019-developer-build'
Features: ['Sccache', 'DisableTests', 'TargetBuildOnly', 'UseConfigure']
Platform dependency: 'windows-11_23H2-msvc2019-developer-build'
Environment variables: [
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc',
'TARGET_CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFEATURE_native_grpc=OFF',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFEATURE_native_grpc=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
]
-
@@ -169,7 +197,7 @@ Configurations:
Configure arguments: '-nomake examples -release -force-debug-info -headersclean -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DFEATURE_native_grpc=OFF'
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DFEATURE_native_grpc=OFF -DINPUT_headersclean=ON'
]
-
Id: 'rhel-9.2'
@@ -179,18 +207,29 @@ Configurations:
Configure arguments: '-nomake examples -release -force-debug-info -headersclean -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}'
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON'
]
# Build on Debian-11.6 and split test on Wayland and offscreen later
-
Id: 'debian-11.6-arm64'
Template: 'qtci-linux-Debian-11.6-aarch64-50'
Compiler: 'GCC'
Features: ['Packaging', 'UseConfigure', 'InstallQt5Dependencies', 'InsignificantTests']
Features: ['Packaging', 'UseConfigure', 'InstallQt5Dependencies', 'DoNotRunTests']
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-doubleconversion -qt-harfbuzz -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}',
]
# Test on Debian-11.6 offscreen
-
Id: 'debian-11.6-arm64-offscreen-tests'
Template: 'qtci-linux-Debian-11.6-aarch64-50'
Compiler: 'GCC'
Features: ['Sccache', 'InsignificantTests', 'TestOnly']
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'QT_QPA_PLATFORM=offscreen'
]
Platform dependency: 'debian-11.6-arm64'
-
Id: 'ios-universal'
Template: 'qtci-macos-13-x86_64-103'
@@ -202,16 +241,16 @@ Configurations:
Features: ['Packaging', 'Sccache', 'DebugAndRelease', 'DisableTests', 'UseConfigure', 'WarningsAreErrors']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFEATURE_native_grpc=OFF -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFEATURE_native_grpc=OFF -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include -DFFMPEG_DIR={{.Env.FFMPEG_DIR_IOS}}'
]
-
Id: 'windows-10_22h2-mingw11'
Id: 'windows-10_22h2-mingw13'
Template: 'qtci-windows-10_22H2-x86_64-51'
Compiler: 'Mingw'
Features: ['Packaging', 'Sccache', 'UseConfigure']
Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples'
Environment variables: [
'Path={{.Env.MINGW1120}}\bin;{{.Env.Path}}',
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
'CMAKE_ARGS=-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MINGW}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_native_grpc=OFF -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_mingw}}',
@@ -225,14 +264,14 @@ Configurations:
Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples'
Environment variables: [
'Path=C:\llvm-mingw\bin;{{.Env.Path}}',
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c',
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c -DMySQL_ROOT={{.Env.ENV_MySQL_ROOT}} -DMySQL_LIBRARY_DIR={{.Env.ENV_MySQL_LIBRARY_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_LLVM_MINGW}} -DQT_DEPLOY_FFMPEG=TRUE -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c',
'LLVM_INSTALL_DIR=C:\llvm-mingw',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_llvm_mingw}}',
]
-
Id: 'windows-11_22h2-llvm'
Template: 'qtci-windows-11_22H2-x86_64-51'
Id: 'windows-11_23H2-llvm'
Template: 'qtci-windows-11_23H2-x86_64-52'
Compiler: 'Clang'
Features: ['Packaging','Sccache', 'UseConfigure']
Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples'
@@ -244,27 +283,27 @@ Configurations:
'Protobuf_ROOT={{.Env.Protobuf_ROOT_llvm_mingw}}',
]
-
Id: 'windows-10_22h2-mingw11-developer-build'
Id: 'windows-10_22h2-mingw13-developer-build'
Template: 'qtci-windows-10_22H2-x86_64-51'
Compiler: 'Mingw'
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure']
Configure arguments: '-developer-build -release -force-debug-info -separate-debug-info -make examples'
Environment variables: [
'Path={{.Env.MINGW1120}}\bin;{{.Env.Path}}',
'CMAKE_ARGS=-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c',
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
'CMAKE_ARGS=-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c -DMySQL_ROOT={{.Env.ENV_MySQL_ROOT}} -DMySQL_LIBRARY_DIR={{.Env.ENV_MySQL_LIBRARY_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MINGW}} -DQT_DEPLOY_FFMPEG=TRUE -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c -DFEATURE_native_grpc=OFF',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_mingw}}',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_mingw}}',
]
-
Id: 'windows-11_22h2-mingw11-developer-build'
Template: 'qtci-windows-11_22H2-x86_64-51'
Id: 'windows-11_23H2-mingw13-developer-build'
Template: 'qtci-windows-11_23H2-x86_64-52'
Compiler: 'Mingw'
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure']
Configure arguments: '-developer-build -release -force-debug-info -separate-debug-info -make examples'
Environment variables: [
'Path={{.Env.MINGW1120}}\bin;{{.Env.Path}}',
'CMAKE_ARGS=-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c',
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
'CMAKE_ARGS=-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c -DMySQL_ROOT={{.Env.ENV_MySQL_ROOT}} -DMySQL_LIBRARY_DIR={{.Env.ENV_MySQL_LIBRARY_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MINGW}} -DQT_DEPLOY_FFMPEG=TRUE -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c -DFEATURE_native_grpc=OFF',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_mingw}}',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_mingw}}',
@@ -275,7 +314,7 @@ Configurations:
Compiler: 'GCC'
Features: ['Packaging','DebianPackaging','DisableTests', 'Insignificant']
Environment variables: [
'DEBIAN_RULES_REF=6.7_dev',
'DEBIAN_RULES_REF=6.8_dev',
'COIN_TARGET_DIST=tqtc-jammy',
'COIN_EXTRA_DEBIAN_PACKAGES={{.Env.HOME}}/debian_packages/',
'COIN_SBUILD_CHROOT=jammy-arm64-sbuild',
@@ -288,7 +327,7 @@ Configurations:
Compiler: 'GCC'
Features: ['Packaging','DebianPackaging','DisableTests', 'Insignificant']
Environment variables: [
'DEBIAN_RULES_REF=6.7_dev',
'DEBIAN_RULES_REF=6.8_dev',
'COIN_TARGET_DIST=tqtc-jammy',
'COIN_EXTRA_DEBIAN_PACKAGES={{.Env.HOME}}/debian_packages/',
'COIN_SBUILD_CHROOT=jammy-amd64-sbuild',

View File

@@ -7,7 +7,7 @@ Configurations:
Target arch: 'armv7'
Compiler: 'GCC'
Platform dependency: 'ubuntu-22.04'
Features: ['Sccache', 'UseConfigure']
Features: ['Sccache', 'UseConfigure', 'Insignificant']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -developer-build -no-warnings-are-errors -make examples -qt-harfbuzz -device linux-imx7-g++ -device-option "CROSS_COMPILE={{.Env.QEMUARMV7_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=hard-float boot2qt" -no-feature-forkfd_pidfd',
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUARMV7_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON',
@@ -24,7 +24,7 @@ Configurations:
Target arch: 'arm64'
Compiler: 'GCC'
Platform dependency: 'ubuntu-22.04'
Features: ['Sccache', 'UseConfigure']
Features: ['Sccache', 'UseConfigure', 'Insignificant']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -developer-build -no-warnings-are-errors -nomake examples -qt-harfbuzz -device linux-generic-g++ -device-option "CROSS_COMPILE={{.Env.QEMUARM64_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=boot2qt" -no-feature-forkfd_pidfd',
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUARM64_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON',

View File

@@ -8,7 +8,7 @@ Configurations:
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'ubuntu-22.04'
Features: ['Packaging', 'VMSize8', 'UseConfigure', 'Insignificant', 'DisableTests']
Features: ['VMSize8', 'UseConfigure', 'DisableTests']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-release -developer-build -force-debug-info -qpa eglfs -nomake examples',
'TARGET_CMAKE_ARGS=-DBUILD_SHARED_LIBS=OFF -DWARNINGS_ARE_ERRORS=OFF -DCMAKE_TOOLCHAIN_FILE="{{.Env.WIND_CC_SYSROOT}}/mk/rtp.toolchain.cmake" -DFEATURE_vulkan=OFF -DQT_QMAKE_TARGET_MKSPEC=vxworks-clang -DQT_HOST_PATH=/home/qt/work/install -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_STAGING_PREFIX:PATH=/home/qt/work/install/target'

View File

@@ -22,8 +22,8 @@ Configurations:
'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
]
-
Id: 'macos-11-minimal-static'
Template: 'qtci-macos-11-x86_64-106'
Id: 'macos-minimal-static'
Template: 'qtci-macos-13-x86_64-103'
Compiler: 'Clang'
Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure']
Configure arguments: '-nomake examples -release -force-debug-info -static -no-framework'

View File

@@ -22,17 +22,17 @@ Configurations:
Target arch: 'armv7'
Compiler: 'Mingw'
Target compiler: 'Clang'
Platform dependency: 'windows-10_22h2-mingw11'
Platform dependency: 'windows-10_22h2-mingw13'
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure']
Environment variables: [
'Path={{.Env.MINGW1120}}\bin;{{.Env.Path}}',
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARMV7}} -DFEATURE_native_grpc=OFF -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_msvc}}/include',
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}'
]
-
Id: 'android-6-x86-on-linux'
Id: 'android-9-x86-on-linux'
Template: 'qtci-linux-RHEL-8.8-x86_64-50'
Target os: 'Android_ANY'
Target arch: 'x86'
@@ -45,7 +45,7 @@ Configurations:
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86}} -DFEATURE_native_grpc=OFF -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}',
'ANDROID_EMULATOR=emulator_x86_api_23'
'ANDROID_EMULATOR=emulator_x86_api_28'
]
-
Id: 'android-14-x86_64-on-linux'

View File

@@ -18,10 +18,10 @@ Configurations:
Target os: 'WebAssembly'
Compiler: 'Mingw'
Target compiler: 'Clang'
Platform dependency: 'windows-10_22h2-mingw11'
Platform dependency: 'windows-10_22h2-mingw13'
Features: ['Packaging', 'Sccache', 'DisableTests', 'UseConfigure']
Environment variables: [
'Path={{.Env.EMSDK_PATH}};{{.Env.MINGW1120}}\bin;{{.Env.Path}}',
'Path={{.Env.EMSDK_PATH}};{{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
'TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -nomake examples',
'TARGET_CMAKE_ARGS=-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',

View File

@@ -6,7 +6,7 @@ Configurations:
Compiler: 'GCC'
Target os: 'INTEGRITY'
Platform dependency: 'ubuntu-22.04'
Features: ['MinimalStaticTests', 'DoNotRunTests', 'VMSize16', 'UseConfigure', 'Insignificant']
Features: ['MinimalStaticTests', 'DoNotRunTests', 'VMSize16', 'UseConfigure']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -device integrity-armv8-SA8155P -no-feature-library -no-feature-printdialog -no-dbus -no-feature-gtk3 -no-feature-glib -no-feature-libudev -qt-harfbuzz -qt-pcre -no-sql-mysql -no-feature-brotli',
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE=/home/qt/integrity_toolchain/toolchain.cmake -DCMAKE_C_COMPILER=cxintarm64 -DCMAKE_CXX_COMPILER=cxintarm64 -DBUILD_qtdoc=OFF -DBUILD_qttranslations=OFF -DUNIX=ON --debug-trycompile',

View File

@@ -2,7 +2,7 @@ Version: 2
Configurations:
-
Id: "ios-tests-on-macos"
Template: 'qtci-macos-12-x86_64-106'
Template: 'qtci-macos-13-x86_64-103'
Target os: 'IOS_ANY'
Target arch: 'arm64'
Compiler: 'Clang'

View File

@@ -14,4 +14,4 @@ Configurations:
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID}}',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFEATURE_native_grpc=OFF',
'ANDROID_EMULATOR=emulator_x86_api_23']
'ANDROID_EMULATOR=emulator_x86_api_28']

View File

@@ -9,7 +9,7 @@ Configurations:
Target compiler: 'Clang'
Platform dependency: [
'rhel-8.8',
'android-6-x86-on-linux',
'android-9-x86-on-linux',
'android-14-x86_64-on-linux'
]
Features: [
@@ -21,8 +21,8 @@ Configurations:
]
Environment variables: [
'QT_CI_ARTIFACT_ID_PATH_Android-host=QT_CI_ARTIFACT_ID_PATH_rhel-8.8',
'QT_CI_ARTIFACT_ID_PATH_Android-x86=QT_CI_ARTIFACT_ID_PATH_android-6-x86-on-linux',
'QT_CI_ARTIFACT_ID_PATH_Android-x86=QT_CI_ARTIFACT_ID_PATH_android-9-x86-on-linux',
'QT_CI_ARTIFACT_ID_PATH_Android-x86_64=QT_CI_ARTIFACT_ID_PATH_android-14-x86_64-on-linux',
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_ANDROID_ABIS="x86;x86_64"',
'ANDROID_EMULATOR=emulator_x86_api_23'
'ANDROID_EMULATOR=emulator_x86_api_28'
]

View File

@@ -9,20 +9,20 @@ Configurations:
-
Id: 'macos-universal-on-x86_64'
Template: 'qtci-macos-13-x86_64-103'
Template: 'qtci-macos-14-x86_64-105'
Compiler: 'Clang'
Target arch: 'x86_64-arm64'
Features: ['Packaging', 'Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure']
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -framework'
Environment variables: [
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DODBC_ROOT=/usr/local/opt/libiodbc -DPostgreSQL_ROOT={{.Env.POSTGRESQLBINPATH}}/.. -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFEATURE_gds=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DFEATURE_native_grpc=OFF',
'NON_QTBASE_CMAKE_ARGS=-DFEATURE_gds=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_native_grpc=OFF -DINPUT_headersclean=ON',
'Protobuf_ROOT=/usr/local/lib/cmake/protobuf'
]
-
Id: 'macos-universal-on-arm64'
Template: 'qtci-macos-13-arm64'
Template: 'qtci-macos-14-arm-106'
Compiler: 'Clang'
Target arch: 'x86_64-arm64'
Features: ['DoNotRunTests', 'WarningsAreErrors', 'UseConfigure']
@@ -30,19 +30,13 @@ Configurations:
Environment variables: [
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"',
'Protobuf_ROOT=/usr/local/lib/cmake/protobuf',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON',
]
# Test on all supported macOS versions (deployment targets)
# On x86_64
-
Id: 'macos-11-x86_64-tests'
Template: 'qtci-macos-11-x86_64-106'
Compiler: 'Clang'
Features: ['Sccache', 'TestOnly', 'Packaging']
Platform dependency: 'macos-universal-on-x86_64'
-
Id: 'macos-12-x86_64-tests'
Template: 'qtci-macos-12-x86_64-106'
@@ -70,15 +64,27 @@ Configurations:
Compiler: 'Clang'
Features: ['TestOnly', 'Packaging']
Platform dependency: 'macos-universal-on-x86_64'
-
Id: 'macos-12-arm64-tart-tests'
Template: 'qtci-macos-12-arm-102'
Compiler: 'Clang'
Features: ['TestOnly']
Platform dependency: 'macos-universal-on-x86_64'
-
Id: 'macos-13-arm64-tests'
Template: 'qtci-macos-13-arm64'
Compiler: 'Clang'
Features: ['TestOnly', 'Packaging']
Platform dependency: 'macos-universal-on-x86_64'
-
Id: 'macos-13-arm64-tart-tests'
Template: 'qtci-macos-13-arm-107'
Compiler: 'Clang'
Features: ['TestOnly']
Platform dependency: 'macos-universal-on-x86_64'
-
Id: 'macos-14-arm64-tests'
Template: 'qtci-macos-14-arm64'
Template: 'qtci-macos-14-arm-106'
Compiler: 'Clang'
Features: ['TestOnly', 'Packaging']
Platform dependency: 'macos-universal-on-x86_64'
@@ -91,6 +97,12 @@ Configurations:
Compiler: 'Clang'
Features: ['TestOnly']
Platform dependency: 'macos-universal-on-arm64'
-
Id: 'macos-12-arm-on-arm64-tart-tests'
Template: 'qtci-macos-12-arm-102'
Compiler: 'Clang'
Features: ['TestOnly']
Platform dependency: 'macos-universal-on-arm64'
-
Id: 'macos-12-arm-on-x86_64-tests'
Template: 'qtci-macos-12-x86_64-106'
@@ -117,51 +129,56 @@ Configurations:
# Build on recent macOS version with latest Xcode
-
Id: 'macos-13-x86_64-developer-build'
Template: 'qtci-macos-13-x86_64-103'
Id: 'macos-14-x86_64-developer-build'
Template: 'qtci-macos-14-x86_64-105'
Compiler: 'Clang'
Features: ['Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure']
Configure arguments: '-developer-build -release -force-debug-info -no-pch -no-framework -qtnamespace TestNamespace -make examples'
Environment variables: [
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
'Protobuf_ROOT=/usr/local/lib/cmake/protobuf',
]
-
Id: 'macos-13-arm64-developer-build'
Template: 'qtci-macos-13-arm64'
Id: 'macos-14-arm64-developer-build'
Template: 'qtci-macos-14-arm-106'
Compiler: 'Clang'
Features: ['DoNotRunTests', 'WarningsAreErrors', 'UseConfigure']
Configure arguments: '-developer-build -nomake examples -release -force-debug-info -separate-debug-info -framework'
Environment variables: [
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'Protobuf_ROOT=/usr/local/lib/cmake/protobuf',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
]
# Test on all supported macOS versions (deployment targets)
-
Id: 'macos-11-arm64-developer-build-tests'
Template: 'qtci-macos-11.0-arm64'
Compiler: 'Clang'
Features: ['TestOnly']
Platform dependency: 'macos-13-arm64-developer-build'
-
Id: 'macos-12-arm64-developer-build-tests'
Template: 'qtci-macos-12-arm64'
Compiler: 'Clang'
Features: ['TestOnly']
Platform dependency: 'macos-13-arm64-developer-build'
Platform dependency: 'macos-14-arm64-developer-build'
-
Id: 'macos-12-arm64-tart-developer-build-tests'
Template: 'qtci-macos-12-arm-102'
Compiler: 'Clang'
Features: ['TestOnly']
Platform dependency: 'macos-14-arm64-developer-build'
-
Id: 'macos-13-arm64-developer-build-tests'
Template: 'qtci-macos-13-arm64'
Compiler: 'Clang'
Features: ['TestOnly']
Platform dependency: 'macos-13-arm64-developer-build'
Platform dependency: 'macos-14-arm64-developer-build'
-
Id: 'macos-14-arm64-developer-build-tests'
Template: 'qtci-macos-14-arm64'
Id: 'macos-13-arm64-tart-developer-build-tests'
Template: 'qtci-macos-13-arm-107'
Compiler: 'Clang'
Features: ['TestOnly']
Platform dependency: 'macos-13-arm64-developer-build'
Platform dependency: 'macos-14-arm64-developer-build'
-
Id: 'macos-14-arm64-developer-build-tests'
Template: 'qtci-macos-14-arm-106'
Compiler: 'Clang'
Features: ['TestOnly']
Platform dependency: 'macos-14-arm64-developer-build'

View File

@@ -0,0 +1,4 @@
Version: 2
Module only: True
Include: [yocto.yaml]
Configurations: []

View File

@@ -9,5 +9,5 @@ Configurations:
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}'
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON'
]

View File

@@ -0,0 +1,14 @@
Version: 2
Module only: True
Configurations:
-
Id: 'ubuntu-22.04-axivion'
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
Compiler: 'GCC'
Features: ['Sccache', 'UseConfigure', 'DisableTests', 'Axivion_qtapplicationmanager', 'VMSize8']
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON'
]

View File

@@ -9,5 +9,5 @@ Configurations:
Configure arguments: '-nomake examples -release -c++std c++17 -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DFEATURE_clangcpp=OFF'
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DFEATURE_clangcpp=OFF -DINPUT_headersclean=ON'
]

View File

@@ -0,0 +1,14 @@
Version: 2
Module only: True
Configurations:
-
Id: 'ubuntu-22.04-lcov'
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
Compiler: 'GCC'
Features: ['Sccache', 'UseConfigure', 'lcov', 'VMSize8', 'DisableTests']
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON'
]

View File

@@ -13,7 +13,8 @@ Configurations:
Features: ['Sccache', 'UseConfigure', 'InsignificantTests']
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY'
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DINPUT_headersclean=ON'
]
-
# default.yaml

View File

@@ -0,0 +1,18 @@
Version: 2
Configurations:
# cmake_platforms.yaml
# Build on Ubuntu 24.04 ARM64 and test on both X11 and Wayland later
-
Id: 'ubuntu-24.04-arm64-documentation'
Template: 'qtci-linux-Ubuntu-24.04-aarch64-50'
Compiler: 'GCC'
Features: ['Documentation', 'UseConfigure', 'DoNotRunTests']
Configure arguments: '-make examples -developer-build -c++std c++20 -linker gold -qtlibinfix TestInfix -qtnamespace TestNamespace'
Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}']
# Test on Ubuntu 24.04 ARM64 X11
-
Id: 'ubuntu-24.04-arm64-documentation-x11-tests'
Template: 'qtci-linux-Ubuntu-24.04-aarch64-50'
Compiler: 'GCC'
Features: ['TestDocs', 'TestOnly', 'InsignificantTests']
Platform dependency: 'ubuntu-24.04-arm64-documentation'

View File

@@ -8,6 +8,13 @@ Configurations:
Configure arguments: ''
Environment variables: []
Environment script: ['%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat', 'amd64']
-
Template: 'qtci-windows-10_22H2-x86_64-51'
Compiler: 'MSVC2019'
Features: ['Packaging', 'Sccache', 'DebugAndRelease', 'DisableTests']
Configure arguments: ''
Environment variables: []
Environment script: ['%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat', 'amd64']
-
Template: 'qtci-windows-10-x86-4'
Compiler: 'MSVC2019'
@@ -22,13 +29,7 @@ Configurations:
Configure arguments: ''
Environment variables: []
-
Template: 'qtci-linux-RHEL-9.2-x86_64-51'
Compiler: 'GCC'
Features: ['Qt5', 'Sccache', 'DebugAndRelease']
Configure arguments: ''
Environment variables: []
-
Template: 'qtci-macos-11-x86_64-106'
Template: 'qtci-macos-12-x86_64-106'
Compiler: 'Clang'
Features: ['Packaging', 'Sccache', 'DebugAndRelease']
Configure arguments: ''

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,16 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []
Configurations:
# Test on Debian-11.6 Wayland
-
Id: 'debian-11.6-arm64-wayland-tests'
Template: 'qtci-linux-Debian-11.6-aarch64-50'
Compiler: 'GCC'
Features: ['Sccache', 'TestOnly', 'RunDependencyTests', 'InsignificantTests']
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY'
]
Platform dependency: 'debian-11.6-arm64'

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,13 +1,6 @@
Version: 2
Include: [cmake_platforms.yaml]
Configurations:
-
Id: 'ubuntu-22.04-axivion'
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
Compiler: 'GCC'
Features: ['Sccache', 'UseConfigure', 'DisableTests','Axivion_qtapplicationmanager', 'Insignificant', 'VMSize8']
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}'
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -0,0 +1,14 @@
Version: 2
Configurations:
# Test gcc-12 on RHEL 9.2
-
Id: 'rhel-9.2-gcc12'
Template: 'qtci-linux-RHEL-9.2-x86_64-51'
Compiler: 'GCC'
Features: ['Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'DoNotRunTests']
Configure arguments: '-developer-build -nomake examples -release -force-debug-info -headersclean -separate-debug-info -qt-pcre -no-libudev -bundled-xcb-xinput'
Environment variables: [
'PATH=/opt/rh/gcc-toolset-12/root/usr/bin/:{{.Env.PATH}}',
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON'
]

View File

@@ -6,6 +6,9 @@ Include: [
ios-tests.yaml,
address_sanitizer_platforms.yaml,
linux_android_tests_multi_abi.yaml,
wasm_qtbase_tests.yaml
wasm_qtbase_tests.yaml,
cmake_platforms_qemu_vxworks.yaml,
qtlite.yaml,
qtbase-new-compiler-testing.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,3 +1,6 @@
Version: 2
Include: [cmake_platforms.yaml]
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -4,6 +4,8 @@ Include: [
integrity.yaml,
ios-tests.yaml,
address_sanitizer_platforms.yaml,
cmake_platforms_static_tests.yaml
cmake_platforms_static_tests.yaml,
cmake_platforms_qemu_vxworks.yaml,
qtlite.yaml
]
Configurations: []

View File

@@ -1,3 +1,6 @@
Version: 2
Include: [cmake_platforms.yaml]
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,3 +1,6 @@
Version: 2
Include: [cmake_platforms.yaml]
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,7 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
cmake_platforms_qemu_vxworks.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,3 +1,7 @@
Version: 2
Include: [cmake_platforms.yaml]
Include: [
cmake_platforms.yaml,
cmake_platforms_qemu_vxworks.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -2,6 +2,7 @@ Version: 2
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml,
integrity.yaml
integrity.yaml,
cmake_platforms_qemu_vxworks.yaml
]
Configurations: []

View File

@@ -1,5 +1,8 @@
Version: 2
Include: [cmake_platforms.yaml]
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations:
-
Id: 'ubuntu-22.04-axivion'
@@ -9,5 +12,5 @@ Configurations:
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}'
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON'
]

View File

@@ -1,3 +1,6 @@
Version: 2
Include: [cmake_platforms.yaml]
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -2,6 +2,7 @@ Version: 2
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml,
integrity.yaml
integrity.yaml,
cmake_platforms_qemu_vxworks.yaml
]
Configurations: []

View File

@@ -0,0 +1,205 @@
Version: 2
Configurations:
-
Id: 'debian-11.6-static-qtlite-arm64'
Template: 'qtci-linux-Debian-11.6-aarch64-50'
Compiler: 'GCC'
Features: ['UseConfigure', 'DisableTests']
Configure arguments: >
-nomake examples
-release
-optimize-size
-static
-ltcg
-reduce-exports
-gc-binaries
-feature-linuxfb
-disable-deprecated-up-to 0x070000
-no-feature-abstractbutton
-no-feature-abstractslider
-no-feature-accessibility
-no-feature-action
-no-feature-androiddeployqt
-no-feature-appstore-compliant
-no-feature-backtrace
-no-feature-batch_test_support
-no-feature-brotli
-no-feature-calendarwidget
-no-feature-cborstreamwriter
-no-feature-clipboard
-no-feature-colordialog
-no-feature-columnview
-no-feature-commandlinkbutton
-no-feature-completer
-no-feature-concatenatetablesproxymodel
-no-feature-contextmenu
-no-feature-cssparser
-no-feature-cups
-no-feature-datawidgetmapper
-no-feature-datetimeedit
-no-feature-datetimeparser
-no-feature-dbus
-no-feature-desktopservices
-no-feature-dial
-no-feature-dnslookup
-no-feature-dockwidget
-no-feature-dom
-no-feature-dtls
-no-feature-eglfs
-no-feature-errormessage
-no-feature-filesystemiterator
-no-feature-filesystemmodel
-no-feature-filesystemwatcher
-no-feature-fontcombobox
-no-feature-fontdialog
-no-feature-fscompleter
-no-feature-future
-no-feature-gestures
-no-feature-gif
-no-feature-graphicseffect
-no-feature-graphicsview
-no-feature-gssapi
-no-feature-harfbuzz
-no-feature-highdpiscaling
-no-feature-hijricalendar
-no-feature-http
-no-feature-ico
-no-feature-icu
-no-feature-identityproxymodel
-no-feature-im
-no-feature-imageformat_bmp
-no-feature-imageformat_jpeg
-no-feature-imageformat_ppm
-no-feature-imageformat_xbm
-no-feature-image_heuristic_mask
-no-feature-imageio-text-loading
-no-feature-image_text
-no-feature-inputdialog
-no-feature-islamiccivilcalendar
-no-feature-jalalicalendar
-no-feature-jpeg
-no-feature-keysequenceedit
-no-feature-lcdnumber
-no-feature-libinput
-no-feature-library
-no-feature-lineedit
-no-feature-linux-netlink
-no-feature-localserver
-no-feature-macdeployqt
-no-feature-mainwindow
-no-feature-mdiarea
-no-feature-menu
-no-feature-menubar
-no-feature-messagebox
-no-feature-mimetype
-no-feature-movie
-no-feature-mtdev
-no-feature-multiprocess
-no-feature-networkdiskcache
-no-feature-networkinterface
-no-feature-networkproxy
-no-feature-ocsp
-no-feature-opengl
-no-feature-openssl
-no-feature-pcre2
-no-feature-pdf
-no-feature-permissions
-no-feature-picture
-no-feature-printdialog
-no-feature-printer
-no-feature-printpreviewdialog
-no-feature-printpreviewwidget
-no-feature-printsupport
-no-feature-private_tests
-no-feature-process
-no-feature-processenvironment
-no-feature-progressbar
-no-feature-progressdialog
-no-feature-proxymodel
-no-feature-radiobutton
-no-feature-raster-64bit
-no-feature-raster-fp
-no-feature-resizehandler
-no-feature-rubberband
-no-feature-sanitize_fuzzer_no_link
-no-feature-schannel
-no-feature-scroller
-no-feature-securetransport
-no-feature-sessionmanager
-no-feature-settings
-no-feature-sha3-fast
-no-feature-sharedmemory
-no-feature-shortcut
-no-feature-sizegrip
-no-feature-socks5
-no-feature-sortfilterproxymodel
-no-feature-splashscreen
-no-feature-sql
-no-feature-sqlmodel
-no-feature-sql-sqlite
-no-feature-sspi
-no-feature-stackedwidget
-no-feature-statusbar
-no-feature-statustip
-no-feature-style-stylesheet
-no-feature-syntaxhighlighter
-no-feature-systemsemaphore
-no-feature-systemtrayicon
-no-feature-tabletevent
-no-feature-tablewidget
-no-feature-testlib
-no-feature-textbrowser
-no-feature-texthtmlparser
-no-feature-textmarkdownreader
-no-feature-textmarkdownwriter
-no-feature-textodfwriter
-no-feature-timezone
-no-feature-toolbar
-no-feature-toolbox
-no-feature-topleveldomain
-no-feature-transposeproxymodel
-no-feature-treewidget
-no-feature-udpsocket
-no-feature-undocommand
-no-feature-undogroup
-no-feature-undostack
-no-feature-undoview
-no-feature-valgrind
-no-feature-vkgen
-no-feature-vnc
-no-feature-vulkan
-no-feature-wasm-exceptions
-no-feature-wasm-simd128
-no-feature-whatsthis
-no-feature-wheelevent
-no-feature-widgets
-no-feature-widgettextcontrol
-no-feature-windeployqt
-no-feature-wizard
-no-feature-xkbcommon
-no-feature-xml
-qpa linuxfb
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=
-DFEATURE_qdoc=off
-DFEATURE_qml_debug=off
-DFEATURE_qml_jit=off
-DFEATURE_qml_locale=off
-DFEATURE_qml_network=off
-DFEATURE_qml_profiler=off
-DFEATURE_quickcontrols2_fusion=off
-DFEATURE_quickcontrols2_imagine=off
-DFEATURE_quickcontrols2_ios=off
-DFEATURE_quickcontrols2_macos=off
-DFEATURE_quickcontrols2_material=off
-DFEATURE_quickcontrols2_universal=off
-DFEATURE_quickcontrols2_windows=off
-DFEATURE_quick_designer=off
-DFEATURE_quick_particles=off
-DFEATURE_quick_pixmap_cache_threaded_download=off
-DFEATURE_quick_shadereffect=off
-DFEATURE_quicktemplates2_calendar=off
-DFEATURE_quicktemplates2_hover=off
-DFEATURE_quicktemplates2_multitouch=off'
]

View File

@@ -1,3 +1,6 @@
Version: 2
Include: [cmake_platforms.yaml]
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
]
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,7 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
cmake_platforms_qemu_vxworks.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
]
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,6 +1,8 @@
Version: 2
Include: [
cmake_platforms.yaml,
integrity.yaml
integrity.yaml,
cmake_platforms_qemu_vxworks.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,3 +1,6 @@
Version: 2
Include: [cmake_platforms.yaml]
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,7 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
cmake_platforms_qemu_vxworks.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,6 +1,7 @@
Version: 2
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml,
integrity.yaml
]
Configurations: []

View File

@@ -14,10 +14,10 @@ Include: [
"windows-10_22h2-msvc2022",
"windows-10_22h2-msvc2019-developer-build",
"rhel-8.8",
"windows-10_22h2-mingw11",
"windows-10_22h2-mingw11-developer-build",
"windows-10_22h2-mingw13",
"windows-10_22h2-mingw13-developer-build",
"windows-10_22h2-llvm",
"windows-11_22h2-msvc2019"
"windows-11_23H2-msvc2019"
],
cmake_platforms_qemu_qnx710.yaml: [
"qnx-710-x86_64-developer-build-on-linux",
@@ -26,6 +26,11 @@ Include: [
],
integrity.yaml: [
"integrity-arm64"
],
cmake_platforms_qemu.yaml: [
"qemu-arm64-developer-build",
"qemu-armv7-developer-build",
"qemu-mips64-developer-build"
]
]
Configurations:
@@ -37,7 +42,6 @@ Configurations:
Compiler: 'GCC'
Platform dependency: 'ubuntu-22.04'
Features: ['UseConfigure', 'DoNotRunTests', 'DisableTests', 'Axivion_QSR']
Configure arguments: '-nomake examples -release -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'TARGET_CONFIGURE_ARGS=-release -no-warnings-are-errors -nomake examples -qt-harfbuzz -device linux-generic-g++ -device-option "CROSS_COMPILE={{.Env.QEMUARM64_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=boot2qt" -no-feature-forkfd_pidfd -qtlibinfix TestInfix',
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUARM64_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON',

View File

@@ -13,9 +13,9 @@ Include: [
"windows-10_22h2-msvc2019",
"windows-10_22h2-msvc2022",
"rhel-8.8",
"windows-10_22h2-mingw11",
"windows-10_22h2-mingw13",
"windows-10_22h2-llvm",
"windows-11_22h2-msvc2019"
"windows-11_23H2-msvc2019"
],
cmake_platforms_qemu_qnx710.yaml: [
"qnx-710-x86_64-developer-build-on-linux",
@@ -42,7 +42,8 @@ Configurations:
Features: ['Packaging', 'Sccache', 'UseConfigure', 'MinimalStaticTests']
Configure arguments: '-static -no-icu -nomake examples -release -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput -no-sql-mysql'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY'
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DINPUT_headersclean=ON'
]
-
Id: 'Windows-MSVC2019_Static'
@@ -52,4 +53,6 @@ Configurations:
Configure arguments: '-release -headersclean -nomake examples -qt-zlib -static -no-icu -no-sql-mysql -no-sql-odbc -no-sql-psql -plugin-sql-sqlite -plugin-sql-odbc'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\..',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}']
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
'NON_QTBASE_CMAKE_ARGS=-DINPUT_headersclean=ON'
]

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -2,6 +2,7 @@ Version: 2
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml,
integrity.yaml
integrity.yaml,
cmake_platforms_qemu_vxworks.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
]
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -2,6 +2,7 @@ Version: 2
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml,
integrity.yaml
integrity.yaml,
cmake_platforms_qemu_vxworks.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
]
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -0,0 +1,3 @@
Version: 2
Include: [cmake_platforms.yaml]
Configurations: []

View File

@@ -1,5 +1,7 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
cmake_platforms_qemu_vxworks.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,7 +1,8 @@
Version: 2
Include: [
cmake_platforms.yaml
]
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations:
# Test on Ubuntu 22.04 Wayland
-
@@ -16,3 +17,13 @@ Configurations:
Compiler: 'GCC'
Features: ['Sccache', 'TestOnly', 'RunDependencyTests', 'InsignificantTests']
Platform dependency: 'ubuntu-22.04'
# Test on Debian-11.6 Wayland
-
Id: 'debian-11.6-arm64-wayland-tests'
Template: 'qtci-linux-Debian-11.6-aarch64-50'
Compiler: 'GCC'
Features: ['Sccache', 'TestOnly', 'RunDependencyTests', 'InsignificantTests']
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY'
]
Platform dependency: 'debian-11.6-arm64'

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
]
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -1,5 +1,6 @@
Version: 2
Include: [
cmake_platforms.yaml
]
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
]
Configurations: []

View File

@@ -2,7 +2,7 @@ Version: 2
Include: [
cmake_platforms.yaml: [
'rhel-8.8',
'windows-10_22h2-mingw11',
'windows-10_22h2-mingw13',
'ubuntu-22.04-documentation',
'ubuntu-22.04-documentation-x11-tests'
],
@@ -12,7 +12,7 @@ Include: [
cmake_platforms_target_android.yaml: [
'android-arm64-on-macos',
'android-armv7-on-windows',
'android-6-x86-on-linux',
'android-9-x86-on-linux',
'android-14-x86_64-on-linux'
]
]

View File

@@ -10,5 +10,23 @@ Configurations:
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}'
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON'
]
-
Id: 'Ubuntu-22.04-arm64-x11'
Template: 'qtci-linux-Ubuntu-22.04-aarch64-50'
Compiler: 'GCC'
Features: ['UseConfigure', 'DoNotRunTests']
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY'
]
-
Id: 'Ubuntu-22.04-arm64-wayland'
Template: 'qtci-linux-Ubuntu-22.04-aarch64-51'
Compiler: 'GCC'
Features: ['UseConfigure', 'DoNotRunTests']
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY'
]

View File

@@ -0,0 +1,60 @@
### Ubuntu 24.04 ###
Hard Disk: 1TB
Language: English (United States)
Time & Date: Etc/Coordinated Universal Time
Software Selection: Desktop image, minimal install
Language: English (US)
Typing: English (US)
Privacy: Location Services: OFF
Connect Your Online Accounts: Skip
# Configure Settings
Notifications:
* Notification Popups: OFF
* Lock Screen Notifications: OFF
Privacy:
* Screen Lock: OFF
* File History & Rubbish Bin:
* File History: Off
* Diagnostics:
* Send error reports to Canonical: Never
Power:
* Blank screen: Never
* Automatic suspend: Off
Appearance:
* Auto-hide the dock: Off
Devices:
* Displays: Resolution 1280 x 800 (found 1280 x 768)
Details:
* Time Zone: UTC
* run "sudo timedatectl set-timezone UTC"
* Users: Automatic login on
Software & Updates:
* Updates:
* Subscribed to: Security updates only
* Automatically check for updates: Never
* Notify me of a new Ubuntu version: Never
# Add user to sudoers
Add 'qt ALL=NOPASSWD: ALL' to /etc/sudoers.d/qt
Add 'GRUB_GFXMODE=1280x800' to /etc/default/grub (Now it's 1280x768 - is that OK?)
run 'sudo grub-mkconfig'
# Install ssh server
run 'sudo apt install openssh-server'
# Disable firewall
run 'sudo ufw disable'
# Fetch and run coin-setup (in Opennebula)
Download http://coin/coin/binary/linux_arm64/coin-setup
run 'chmod +x ./coin-setup' to make it executable
run './coin-setup'
Reboot

View File

@@ -0,0 +1,64 @@
# Follow manual pre-setup from intra to install Windows 11 ARM and virtio drivers:
# "How to create a Windows 11 ARM tier1 image using Qemu"
# Configure Windows after pre-setup
* Enable Remote Desktop:
- Settings - System - Remote Desktop - On
* Resolution set to 1280x800
- Unfortunately not possible, only 1280x1024 is available
* Coin-setup:
- Installing Boostrap agent
- Disabling fast boot
- Disabling firewall
- Disabling UAC
- Enabling autologin
- Automatic login
- Disabling windows updates
* Turn off Windows defender:
- Microsoft Defender Antivirus turned off: Open 'gpedit.msc': 'Computer Configuration' - 'Administrative Templates' - 'Windows Components' - 'Microsoft Defender Antivirus'
- Edit 'Turn off Microsoft Defender Antivirus' > 'Enabled' > 'Apply'
- Reboot on Safe mode:
- Open msconfig - Boot tab - enable “Safe boot“ - apply - restart
- In Safe mode:
- Take Ownership of Defender:
- Open properties - Right click "C:\Program Files\Windows Defender\Platform" and select 'Properties'
- Open Security tab - Advanced - Owner: Change - Advanced - Find now - Select Administrators - Ok - Ok
- Remove all Permissions: Permissions tab - Select 'Disable inheritance' - Remove all entries -Select 'Replace all child object permi…' - Apply
- Disable Windows defender also from RegEdit:
- Open regedit - Navigate to 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services'
- Change the following folders the key Start to 4
- Sense (Windows defender advanced threat protection)
- WdBoot (Windows defender boot)
- WdFilter (Microsoft antimalware file system filter driver)
- WdNisDrv (Windows Defender Network Inspection Driver)
- WdNisSvc (Windows Defender Network Inspection Service)
- WinDefend (Windows Defender Antivirus Service)
- mpssvc (Windows Defender Firewall)
- NOTE! Without these step windows defender can't be disabled!
- Reboot back to normal mode
* Background defrag disabled: 'Defragment And Optimize Drives' - 'change settings' - unchecked "run on a schedule"
- Run in terminal: 'schtasks /Delete /TN "Microsoft\Windows\Defrag\ScheduledDefrag"'
* Time:
- Settings - System - Date & time - Time zone: 'Co-ordinated Universal Time'
- Settings - System - Date & time - "Set the time automatically: Off"
* Regional format:
- Settings - Time & language - Language and region - regional format - English (United States)
* Power saver:
- Settings - System - Power - Screen and sleep: set 'When plugged in, turn off my screen after' to 'never'
* Windows search disabled:
- 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Services' - 'Windows search' - stop & disable
* Sysmain disabled:
- 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Services' - 'SysMain' - stop & disable
* Windows update:
- Settings - Windows Update - run available updates (Windows update2023-09 Cumulative Update for Windows 11 Version 22H2 for arm64-based Systems (KB5030219))
- After reboot disable windows updates:
- 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Services' - 'Windows updates' - stop & disable
* Turn windows features on or off -> Check the "SMB 1.0/CIFS File Sharing Support"
* (Restart Windows)
* Google Chrome installed for RTA
* Virus & threat protection settings:
* Check that there's no active antivirus providers
* Activate Windows
# Next
Proceed to install pre-provisioning scripts manually to Tier1 image

View File

@@ -0,0 +1,8 @@
# This script will disable automatic disk cleanup
. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1"
Run-Executable "reg.exe" "ADD `"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy`" /V 04 /T REG_dWORD /D 0 /F"
# Maintenance task used by the system to launch a silent auto disk cleanup when running low on free disk space.
DisableSchedulerTask "DiskCleanup\SilentCleanup"

View File

@@ -0,0 +1,42 @@
# Copyright (C) 2019 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# Windows 7 does not have Get-ScheduledTask and Unregister-ScheduledTask
# thus needing its own version.
Write-Host "Disabling defragmentation"
$version = Get-CimInstance Win32_OperatingSystem | Select-Object -ExpandProperty Caption
if ($version -like '*Windows 7*'){
$pi = New-Object System.Diagnostics.ProcessStartInfo
$pi.FileName = "C:\Windows\System32\schtasks.exe"
$pi.RedirectStandardError = $true
$pi.UseShellExecute = $false
$pi.Arguments = "/Delete /TN `"\Microsoft\Windows\Defrag\ScheduledDefrag`" /F"
$prog = New-Object System.Diagnostics.Process
$prog.StartInfo = $pi
$prog.Start() | Out-Null
$err = $prog.StandardError.ReadToEnd()
$prog.WaitForExit()
if ($prog.ExitCode -eq 0){
Write-Host "Scheduled defragmentation removed"
} else {
if ($err -like '*cannot find the file*'){
Write-Host "No scheduled defragmentation task found"
exit 0
} else {
Write-Host "Error while deleting scheduled defragmentation task: $err"
}
}
}
else {
try {
$state = (Get-ScheduledTask -ErrorAction Stop -TaskName "ScheduledDefrag").State
Write-Host "Scheduled defragmentation task found in state: $state"
}
catch {
Write-Host "No scheduled defragmentation task found"
exit 0
}
Write-Host "Unregistering scheduled defragmentation task"
Unregister-ScheduledTask -ErrorAction Stop -Confirm:$false -TaskName ScheduledDefrag
Write-Host "Scheduled Defragmentation task was cancelled"
}

View File

@@ -0,0 +1,4 @@
. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1"
# Disable the NTP from syncing
Run-Executable "w32tm.exe" "/config /syncfromflags:NO"

View File

@@ -0,0 +1,72 @@
. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1"
# This script will remove unneeded Tasks from Task Scheduler
# Application Experience 'Microsoft Compatibility Appraiser' - "Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program."
DisableSchedulerTask "Application Experience\Microsoft Compatibility Appraiser"
# Application Experience 'ProgramDataUpdater' - "Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program"
DisableSchedulerTask "Application Experience\ProgramDataUpdater"
# Autochk 'Proxy' - "This task collects and uploads autochk SQM data if opted-in to the Microsoft Customer Experience Improvement Program."
DisableSchedulerTask "Autochk\Proxy"
# Chkdsk 'ProactiveScan' - "NTFS Volume Health Scan"
DisableSchedulerTask "Chkdsk\ProactiveScan"
# Chkdsk 'SyspartRepair'
DeleteSchedulerTask "Chkdsk\SyspartRepair"
# Customer Experience Improvement Program 'Consolidator' - "If the user has consented to participate in the Windows Customer Experience Improvement Program, this job collects and sends usage data to Microsoft."
DisableSchedulerTask "Customer Experience Improvement Program\Consolidator"
# Customer Experience Improvement Program 'sbCeip' - "The USB CEIP (Customer Experience Improvement Program) task collects Universal Serial Bus related statistics and information about your machine and sends it to the Windows Device Connectivity engineering group at Microsoft. The information received is used to help improve the reliability, stability, and overall functionality of USB in Windows. If the user has not consented to participate in Windows CEIP, this task does not do anything."
DisableSchedulerTask "Customer Experience Improvement Program\UsbCeip"
# Device Information 'Device'
DisableSchedulerTask "Device Information\Device"
# Diagnosis 'Scheduled' - "The Windows Scheduled Maintenance Task performs periodic maintenance of the computer system by fixing problems automatically or reporting them through Security and Maintenance."
DisableSchedulerTask "Diagnosis\Scheduled"
# DiskDiagnostic 'Microsoft-Windows-DiskDiagnosticDataCollector' - "The Windows Disk Diagnostic reports general disk and system information to Microsoft for users participating in the Customer Experience Program."
DisableSchedulerTask "DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector"
# ExploitGuard 'ExploitGuard MDM policy Refresh' - "Task for applying changes to the machine's Exploit Protection settings."
DisableSchedulerTask "ExploitGuard\ExploitGuard MDM policy Refresh"
# Feedback/Siuf 'DmClient'
DisableSchedulerTask "Feedback\Siuf\DmClient"
# Feedback/Siuf 'DmClient'OnScenarioDownload'
DisableSchedulerTask "Feedback\Siuf\DmClientOnScenarioDownload"
# File Classification Infrastructure 'Property Definition Sync'
DisableSchedulerTask "File Classification Infrastructure\Property Definition Sync"
# InstallService 'ScanForUpdates'
DisableSchedulerTask "InstallService\ScanForUpdates"
# InstallService 'ScanForUpdatesAsUser'
DisableSchedulerTask "InstallService\ScanForUpdatesAsUser"
# LanguageComponentsInstaller 'Installation' - "Install language components that match the user's language list."
DisableSchedulerTask "LanguageComponentsInstaller\Installation"
# LanguageComponentsInstaller 'ReconcileLanguageResources' - "Install language components that match the user's language list."
DisableSchedulerTask "LanguageComponentsInstaller\ReconcileLanguageResources"
# PI 'Secure-Boot-Update' - "This task updates the Secure Boot variables."
DisableSchedulerTask "PI\Secure-Boot-Update"
# PI 'Sqm-Tasks' - "This task gathers information about the Trusted Platform Module (TPM), Secure Boot, and Measured Boot."
DisableSchedulerTask "PI\Sqm-Tasks"
# Power Efficiency Diagnotics 'AnalyzeSystem' - "This task analyzes the system looking for conditions that may cause high energy use."
DisableSchedulerTask "PushToInstall\Registration"
# Servicing 'StartComponentCleanup'
DisableSchedulerTask "Servicing\StartComponentCleanup"
# SoftwareProtectionPlatform 'SvcRestartTaskNetwork' - "This task restarts the Software Protection Platform service when a new network is detected"
DisableSchedulerTask "SoftwareProtectionPlatform\SvcRestartTaskNetwork"

Some files were not shown because too many files have changed in this diff Show More