Compare commits

..

78 Commits

Author SHA1 Message Date
Qt Submodule Update Bot
a99aafab4c Update submodules on '6.9.1 in qt/qt5'
Change-Id: I3bb20d29e111789d953c172e754a37d09f03c83a
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-05-29 10:31:10 +00:00
Qt Submodule Update Bot
fb46e46207 Update submodules on '6.9.1 in qt/qt5'
Change-Id: I33fc8e3a2c0c353a5a25be7a145647fc3e4d0e69
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-05-22 15:04:01 +00:00
Qt Submodule Update Bot
cc4796d925 Update submodules on '6.9.1 in qt/qt5'
Change-Id: I413c3f62fc8c51cdb52425755cc0f6ae90b0bfe3
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-05-21 04:31:43 +00:00
Qt Submodule Update Bot
5e012b5f8f Update submodules on '6.9.1 in qt/qt5'
Change-Id: I3538d953371c5c0c4ab7d42a4ad531f30325d6a2
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-05-17 17:37:55 +00:00
Tony Sarajärvi
36728128d2 Provisioning: Disable Windows Delivery Optimization service
We don't want Windows VMs to spam mDNS messages about optimizing
Windows updates, when the updates themselves are disabled.

Task-number: QTQAINFRA-6761
Change-Id: I1452ebbb612f784c96f07de0a29cb2cfb54f1e75
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit f77919a48b)
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2025-05-16 12:36:14 +00:00
Qt Submodule Update Bot
667e66be76 Update submodules on '6.9.1 in qt/qt5'
Change-Id: Iad0d1d397bb2ed579c6e48e788572f809237da38
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-05-16 06:28:57 +00:00
Qt Submodule Update Bot
407fc722e8 Update submodules on '6.9.1 in qt/qt5'
Change-Id: If3a7f96a337ca7ea21813e90205f5dc4ba238252
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-05-14 12:08:21 +00:00
Jani Heikkinen
436890850f Adjust submodule branches
Change-Id: Idb8d004ee103ed04104f59f8b2bf4b923c0778fe
2025-05-09 05:51:41 +01:00
Joerg Bornemann
0b585e72bd CMake: Don't enable ASM language
Enable ASM only for non-Android Unix.

Pick-to: 6.8 6.5
Change-Id: I435ab55f7daf190ce7be5f8eb80b0c1e43b90d94
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit b330de576f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-05-08 16:46:52 +00:00
Tor Arne Vestbø
dcf0ce644b Update macOS developer build precheck config ID
Change-Id: Ib7a35710f1f7eb870cefab1701fee8f6d4150253
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit bfe2dc9d45)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-05-08 16:46:52 +00:00
Qt Submodule Update Bot
56c03772c7 Update submodules on '6.9 in qt/qt5'
Change-Id: Ic8e6c5ac066e34177424d9a05621dc499169c321
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-05-08 06:10:32 +00:00
Paul Dubsky
a6b86bf58c Update FFmpeg version to n7.1.1
Task-number: QTBUG-134621
Pick-to: 6.8 6.5
Change-Id: I6255f615be533521bf1c3da85b29f96e855197e1
Reviewed-by: Bartlomiej Moskal <bartlomiej.moskal@qt.io>
Reviewed-by: Tim Blechmann <tim.blechmann@qt.io>
(cherry picked from commit 24bba3c8b5)
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2025-05-04 08:44:10 +00:00
Qt Submodule Update Bot
43d9b6bee3 Update submodules on '6.9 in qt/qt5'
Change-Id: Ia6a0ee1633b7c44c334e0092e16247365346c269
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-05-03 01:09:08 +00:00
Qt Submodule Update Bot
5457ea47e1 Update submodules on '6.9 in qt/qt5'
Change-Id: I99b12ca3839bbaa7f6f4ee922cd8e04092a08355
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-05-01 16:33:13 +00:00
Qt Submodule Update Bot
8f5f00b3d0 Update submodules on '6.9 in qt/qt5'
Change-Id: I46b12bc080664ea406694820e93cdbbd31e969d2
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-04-30 05:26:41 +00:00
Tor Arne Vestbø
52a03b3046 Bump build host for macOS to macOS 15
Which gets us Xcode 16, with the macOS 15 SDK.

Change-Id: I755c27f64f903b281f5d1c7947fbf370ddc3ee17
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit e19ea33f09)
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2025-04-28 21:32:44 +00:00
Qt Submodule Update Bot
fc3521a291 Update submodules on '6.9 in qt/qt5'
Change-Id: I666a9e3d78ce2310748bc0ef3447cf7067a7cc7d
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-04-25 03:14:52 +00:00
Nils Petter Skålerud
1a1d923c83 Android, FFmpeg: Allow specifying target output in FFpeg install script
The provisioning script install-ffmpeg-android.sh can be useful to run
locally to make sure we build FFmpeg with the same configuration as we
do in CI.

This patch introduce an optional parameter to this provisioning script
that allows us to specify where to install the compiled binaries.

Change-Id: I7ea30bffa4753ac1fab707ed2876ddcbbca06175
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit 07775b2ad2)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-04-16 22:08:36 +00:00
Artem Dyomin
ea84dba313 Improve the script fix_ffmpeg_dependencies
* add FFmpeg stubs to the 'Required.private' section.
  This will make the logic more robust after integration this
  in qt multimedia.
* add some script comments.
* fix shellcheck.
* add validity checks.

Pick-to: 6.8
Change-Id: I28639d21c7210109e52ff98ce682da51f8744287
Reviewed-by: Jøger Hansegård <jogerh@gmail.com>
Reviewed-by: Pavel Dubsky <pavel.dubsky@qt.io>
(cherry picked from commit a442e4893f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-04-17 00:08:27 +02:00
Artem Dyomin
144715f585 Cleanup in install-ffmpeg-android.sh
Non-functional changes:
* fix alignment
* add the keyword 'local' to local function variables

Pick-to: 6.8
Change-Id: I28639d28c7211809e52f118c1612db52f8954286
Reviewed-by: Jøger Hansegård <jogerh@gmail.com>
Reviewed-by: Pavel Dubsky <pavel.dubsky@qt.io>
(cherry picked from commit 151c0dd58f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-04-17 00:08:23 +02:00
Artem Dyomin
a1427fbd4c Decouple install-ffmpeg on linux and macos specific files
The FFmpeg building flow has become too different on linux and macos.
Decoupling the logic makes it more simple to follow.

The CR also fixes nits and shellcheck warnings in install-ffmpeg.

Pick-to: 6.8
Change-Id: I28639d28c7210809e52ff18ce612da52f8754285
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
(cherry picked from commit 39ad0317d1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-04-17 00:08:18 +02:00
Artem Dyomin
6d7ce3ee6e Add ffmpeg-installation-utils.sh file
There're code duplications in install-ffmpeg scripts.
Let's have a file with FFmpeg installation utils and reuse
the functionality on unix platforms.
The utility functions make the code more robust and get
around code duplications.

This cherry-pick had a minor merge conflict because a patch
for switching arm64-simulator to x86_64-simulator was
merged before this patch. This cherry-oick was updated to
work with this change correctly.

Pick-to: 6.8 6.5
Change-Id: I28639d18c7110109e52ff09ce602da52f8857281
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
(cherry picked from commit 51dad84914)
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2025-04-17 00:08:14 +02:00
Volker Hilsheimer
910069f72d Coin: make tests on VxWorks platforms insignificant
They frequently fail tests. Since 6.9 is not an LTS branch, we can
ignore test failures for this platform.

Change-Id: I2e69bd9b123937366e73c1f30e063494f43a6ca7
Reviewed-by: <lazo.eric@qt.io>
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Jarno Lämsä <jarno.lamsa@qt.io>
2025-04-15 19:51:38 +00:00
Elias Toivola
7437ef45f9 RTA: disable auto-upgrades in Ubuntu 22.04 aarch64
Disable auto-upgrades as it may lock and block scripts from running, resulting an error in /var/lib/dpkg/lock-frontend. Also remove 01-disable_auto_suspend.sh as auto suspend is already disabled in tier-1.

Pick-to: 6.8
Change-Id: Ia4420de72b26c7b4fd851f079fd4686624e5bf02
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
(cherry picked from commit 078bd29e24)
Reviewed-by: Johanna Äijälä <johanna.aijala@qt.io>
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-04-13 07:55:00 +00:00
Elias Toivola
6d5955d1a5 RTA: remove Squish from Ubuntu 22.04 aarch64 provisioning
Squish for Qt 6.8 has glibc 2.38 and glibcxx 3.4.32 dependencies, while
Ubuntu 22.04 LTS supports glibc 2.35 and glibcxx 3.4.30.

Pick-to: 6.8
Change-Id: Ia401daf444fbc3e460477fd1f5397781b902cf9d
Reviewed-by: Johanna Äijälä <johanna.aijala@qt.io>
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
(cherry picked from commit 6170adb71f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-04-13 07:54:58 +00:00
Paul Wicking
e0e3e4738c Update Clang libraries for QDoc to 20.1.0
* Update the version variable used to identify the correct package for
  download and cache sites.
* Update SHA1 for provisioning packages on all platforms.

Fixes: QTBUG-134304
Pick-to: 6.8
Change-Id: I2577600296e75080d503dc1a537ddbc00d0f207f
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
(cherry picked from commit 8c9fe2074b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-04-12 17:38:07 +00:00
Nils Petter Skålerud
68b4ef5b4e iOS, FFmpeg: Improve variable naming in FFmpeg provisioning
Currently this script overwrites a local variables and reuses it for
a (slightly) different purpose. This makes the code a bit hard to
follow.

This patch introduces a separate local variable to improve readability.

No functional changes.

Pick-to: 6.8
Change-Id: Ifa1904482f498d9b380d1ed19ab6b0104afda19b
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit c4315452cb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-04-04 07:33:40 +00:00
Nils Petter Skålerud
5df9315b1f iOS, FFmpeg: Replace arm64-simulator build with x86_64
Currently this provisioning script builds for arm64 architecture
when on iOS simulator. Qt ships x86_64 binaries for iOS simulator, and
we should build FFmpeg similarly.

This patch introduces support for x86_64-simulator in the iOS FFmpeg
provisioning script and uses it in place of arm64-simulator.

Pick-to: 6.8
Task-number: QTQAINFRA-7034
Change-Id: Ie93cffba51924cd1d78651d20dec211817cb0cef
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit aa613ed85d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-04-04 07:33:37 +00:00
Timur Pocheptsov
999e66fb4a install-ffmpeg-ios.sh: remove redundant configure options
While writing a documentation for FFmpeg build on iOS it was found that
many options are redundant. Remove them to simplify the provisioning
script and to reduce the amount of cargo cult code.

Pick-to: 6.8
Fixes: QTBUG-133502
Change-Id: I26aab49365eaca83bcdbfeb86de0638ac701bb80
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit d7d7c522b6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-04-04 07:33:33 +00:00
Olli Vuolteenaho
f95d6b1fdb QtAA: Add "documentation-warnings" config
Starting from 6.9 the "ubuntu-22.04-documentation-x11-tests" config
was replaced by "ubuntu-22.04-developer-build-x11-tests". The new
configuration doesn't test the documentation for warnings which is
why we had failures in 6.8 where to docs were checked but not in 6.9
or dev.

This commit fixes the issue by adding the relatively new
"documentation-warnings" configuration, which will once again check
our documentation.

See also 434e4a224a .

Task-number: QAA-2878
Pick-to: 6.9.0
Change-Id: I479a9606ab16f8b87009d26ab03636c4c658fcb5
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit ea1abd55ce)
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-04-04 03:27:49 +00:00
Rami Potinkara
5393e187d3 Provisioning: update Gradle cache to Android SDK 35
This task updated the build.gradle of Gradle cache
to use SDK 35 for compile and target.

Task-number: QTBUG-130285
Task-number: QTBUG-129461
Pick-to: 6.8 6.5
Change-Id: I076211baf896e65aae3b616a3d6286258c3d0640
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit ed0dc6ad5a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-04-02 11:51:22 +00:00
Qt Submodule Update Bot
139837ad9c Update submodules on '6.9 in qt/qt5'
Change-Id: I798a674d699fb3d85cc94388dfc3b9fdf31ad57e
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-04-02 06:40:21 +00:00
Tero Heikkinen
ca26b90f26 Fix System's openssl version read for openSUSE 15.6
openSUSE 15.6 doesn't have explicit openssl-3,
same was earlier seen with SLES 15.6 as well.

Therefore System's OpenSSL is read from openssl.

Pick-to: 6.8
Change-Id: I38d81b5484732e225036530e5326433ab90ef92b
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
(cherry picked from commit 882e6e61af)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-31 20:26:46 +00:00
Liang Qi
6f01dea4d8 Reapply "platform_configs: remove InsignificantTests for u2404 x11 non-dev"
This reverts commit 7525c795e7.

Task-number: QTQAINFRA-6898
Task-number: QTQAINFRA-6098
Pick-to: 6.8
Change-Id: I74f3d4de45c6f4aa99ef397b19906fcef44c2a16
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit 7111a62bb1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-31 20:26:44 +00:00
Aku Pietikäinen
7a1b5e4e13 Add missing escape when adding Homebrew to PATH
Task-number: QTQAINFRA-6903
Pick-to: 6.8 6.5 5.15
Change-Id: I2f97621d3413df17f9b969113e863974bd739cac
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
(cherry picked from commit cf026224dd)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-31 20:26:42 +00:00
Tero Heikkinen
033cc2c181 Provisioning: Add Root Certificate update for Windows
Windows usually updates certificates once a week, but due
to disabling Windows background updates there is need to
install and update certificates manually.

Updating certificates during provisioning is selected method
as it's aligned with the same procedure how linux machines have
handled the same.

Task-number: QTQAINFRA-7001
Pick-to: 6.8 5.15
Change-Id: I7c077b5e08328b12c481a3501736f06baf85e71e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
(cherry picked from commit ebcc9a1d10)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-31 20:26:40 +00:00
Cristian Le
faf67533c3 Remove RunCMake helpers from top-level repo
These test helpers are moved to qtbase submodule.

Pick-to: 6.8
Change-Id: If8aa31fe1d9a93f2667249abd90ae9b8cb81d07a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit e552513c9f)
2025-03-31 10:45:33 +01:00
Assam Boudjelthia
7d17c5a0a1 Android: update the sha for Gradle script for provisioning
Use the sha from last update of Gradle and update AGP version
to match qtbase's 0e4f9ffa55c2b77fbe79e96362bc68a968982b48 commit.

Task-number: QTBUG-132852
Change-Id: Iab851b08bc11290ee51a22f3bdd64369928dff22
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit 1c20066c69)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-28 19:18:29 +00:00
Marianne Yrjänä
8605087d3a Fix QNX nightly build config for Windows host
Previous dependency platform had been removed from CI, leading nightly
builds failing silently. Changed also from MSCV to mingw since it seems
to be more commonly used among customers.

Task-number: QTQAINFRA-7017
Task-number: QTQAINFRA-7000
Pick-to: 6.8
Change-Id: I009dd5e5c5ad28434816f831de37849a53f2c24f
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit c47f750e65)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-25 08:04:26 +00:00
Tero Heikkinen
42e0846a18 RHEL: Add ca-certificate install to fix missing certificate issues
Other linux distros have similar ca-certificate install/update in use.

Issue was noticed in RTA, and if similar happens again, these RHELs
need new provisioning to get up-to-date ca-certificates available.

Task-number: QTQAINFRA-7014
Pick-to: 6.8
Change-Id: Id0ef369b0d714b40b66117d6e62ddd6a787cae71
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 1144b14584)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-25 08:04:22 +00:00
Simo Fält
bc51840128 COIN: Add Debian packaging config for Debian 12
Pick-to: 6.8
Change-Id: Ifaf0db9b9d39c6e66003e34e6c19957b60d0289f
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
(cherry picked from commit 9babd80169)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 2035320e57)
2025-03-25 08:04:17 +00:00
Axel Spoerl
16981acca4 Handle tgz extensions in InstallFromCompressedFileFromURL.sh
InstallFromCompressedFileFromURL.sh handles tar.gz, but not tgz.
Add the missing extension.

Change-Id: Ie7e10e9b6963d5c24e21818dfd67bea9ab571541
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
(cherry picked from commit 03d05c8781)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-25 08:04:11 +00:00
Rami Potinkara
fb187295fc Provisioning: Update Android NDK to LTS version r27c
This patch updates Android NDK from LTS r26b to LTS r27c.
The version is 27.2.12479018

Task-number: QTQAINFRA-6479
Task-number: QTQAINFRA-6655
Pick-to: 6.8 6.5
Change-Id: Ic791cfd5d5dd2a439f96590b6f6f8ca0ac4fb5ae
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
(cherry picked from commit a242bb2e3e)
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2025-03-24 20:06:07 +00:00
Qt Submodule Update Bot
a2620ffd1f Update submodules on '6.9 in qt/qt5'
Change-Id: I7196c55d5cc128dc93815ad852f2fd893a082801
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-03-14 04:38:30 +00:00
Tor Arne Vestbø
4b1de19ea9 Make macOS 15 a fully significant config
In practice it already is, because qtbase sets COIN_CTEST_IGNORE_EXIT_CODE
to 0 for macOS 15, and this change has propagated to qt5.git now, but this
makes it official.

macOS 15 is now a significant platform [CI Platforms]

Change-Id: I9dc8b0f56582e08560859a17304e886e7fc3020b
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit 7853bee060)
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2025-03-13 06:18:55 +00:00
Toni Saario
f2118bfad1 Update intel VxWorks VSB and VIP
Increases stack size for intel.

Change-Id: Ic40b87582940d03abf4430e2664e55e0a7d322be
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit b25251e2ba)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-13 06:18:52 +00:00
Timur Pocheptsov
998814c9e3 FFmpeg: reduce the number of frameworks we create
to the same libraries we build e.g. on macOS. Also, clean up the
script a bit removing a duplicate configure option.

Pick-to: 6.8
Task-number: QTBUG-133502
Change-Id: If06aad102783bc3025155d3427aa68d87ad4d179
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit a4110ed94f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-13 06:18:49 +00:00
Lucie Gérard
b6f64b9ef0 Make repository reuse compliant
Task-number: QTBUG-124453
Pick-to: 6.8
Change-Id: If49bd983e2c4726ba30ba5a5d12f63e1c6511f57
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit 749e19973f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-13 06:18:47 +00:00
Aku Pietikäinen
3dff41a447 Homebrew flakiness improvements
Use prebuilt package stored in intranet when possible and use
intranet mirror when git is required.

Task-number: QTQAINFRA-6903
Pick-to: 6.8 6.5 5.15
Change-Id: I1630098756c2e9b4f551686679e98a40af5eef2d
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit f23cd54e7f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-13 06:18:44 +00:00
Paul Wicking
62d9b4200c Update Clang libraries for QDoc to 19.1.7
* Update the version variable used to identify the correct package for
  download and cache sites.
* Update the file names for all platforms, as these libraries are built
  directly from upstream without other patches applied on top.
* Add provisioning package locations for Windows VS2022 x64.
* Set 'vs2022' as default toolchain on Windows.
* Update call sites for `libclang.ps1` to pass `vs2022` as argument to
  the script.
* Drop Windows configurations with VS2019.
* Update cached and official URLs with the major version for Windows
  platforms.
* Update SHA1 for provisioning packages on all platforms.
* Move from RHEL 8.8 to 8.10.
* Move from RHEL 9.2 to 9.4.

Fixes: QTBUG-129506
Fixes: QTQAINFRA-6605
Task-number: QTBUG-129373
Pick-to: 6.8
Change-Id: I5146e6551a1b3c83133803f61ca6f8428cb6a14f
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
(cherry picked from commit 9ff9d34626)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-13 06:18:42 +00:00
Alexey Edelev
6d85e52e64 Update Protobuf ROOT env variable match package name
find_package looks for PackageName_ROOT and the package is now
named 'protobuf'.

Fixes: QTBUG-132901
Change-Id: Ifb956e4ab52c3df059d2624eb989c97473a662a2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
(cherry picked from commit b2e1673d99)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-13 06:18:39 +00:00
Tuomas Vaarala
bcd7a6168c Set CMAKE_OBJCOPY for QNX builds in toolchain file
Fixes: QTBUG-132801
Pick-to: 6.8
Change-Id: I9b68ac60cc540524c789fad7af0107b8b023af8e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit f82829a1a2)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-13 06:18:35 +00:00
Timur Pocheptsov
e6386a1a18 install-ffmpeg-ios.sh: use a proper dylib regexp
To fix only names of FFmpeg frameworks, not system libraries/dylibs.

Pick-to: 6.9.0 6.8
Fixes: QTBUG-134289
Change-Id: I74ef7700549abdccbe569ecd5d8e780fefca6e11
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2025-03-07 07:39:30 +00:00
Eike Ziller
c2fcaa2820 COIN/QtCreator: Update to qtci-windows-11_23H2-x86_64-54
Use same as other products

Change-Id: I2a289cce1a7716017bae6ad3f28d088e322fdc3a
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit 75f99d20a7)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-03 09:25:19 +00:00
Qt Submodule Update Bot
faa1c2ba7a Update submodules on '6.9 in qt/qt5'
Change-Id: I2461cc9d2863d9d77c9bfc951fbd0cd95c5a25e4
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-03-01 10:09:14 +00:00
Tero Heikkinen
ad3f5109f8 Disable Super-key causing windows-overview effect on SLES 15 SP6
(amends 8bec383a8e)

Pick-to: 6.8
Task-number: QTBUG-132070
Task-number: QTQAINFRA-6746
Task-number: QTQAINFRA-6745
Change-Id: Iae84ba6dabbc9b9f986b8d3fcf3805549e503704
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
(cherry picked from commit 3cbcfb2d52)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-02-28 19:05:53 +00:00
Tero Heikkinen
207ba9b605 Linux: Add GCC versions visible in versions.txt
Currently only SLES and openSUSE has GCC in versions.txt.
Will also make GCC versions visible in Tools and Versions pages.

Task-number: QTQAINFRA-5901
Pick-to: 6.8 6.5
Change-Id: I9742c3151e074c503947018a0c7f7c2e0c1077bd
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
(cherry picked from commit 5f627786ef)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-02-28 19:05:32 +00:00
Tero Heikkinen
b8778d4e63 Synchronize GNOME based Linux gsettings into a common script
Pick-to: 6.8
Task-number: QTQAINFRA-6967
Change-Id: Ib2f17a49931dc546af82f1e0384814f9f359a3f3
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
(cherry picked from commit 98e55af0f2)
Reviewed-by: Liang Qi <liang.qi@qt.io>
2025-02-28 21:05:05 +02:00
Marianne Yrjänä
a47c2b4ec7 Provisioning: Separate QNX710 and QNX800 qemu configs
QNX qemu configs separated. QNX710 and QNX800 require different set of
dependency libraries and there's an extra image creation bug on QNX800
that needs workaround too.
QNX800 toolchain updated.

Task-number: QTBUG-131708
Pick-to: 6.8
Change-Id: I3bc5c8bb63abbb729d03fcf3afb2f7881bcdd270
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 4791054b10)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-02-25 08:12:54 +00:00
Rami Potinkara
7228be7f72 Provisioning: bump Android sdkBuildToolsVersion to 35
This patch bumps the sdkBuildToolsVersion used in Coin to 35.

Task-number: QTBUG-129461
Task-number: QTBUG-130283
Change-Id: I2e1fbdfd23cb854ec50625ff29331adc61abc32c
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-02-25 07:42:20 +02:00
Konsta Alajärvi
345aae01f5 Provisioning: bump Android sdkApiLevel to 35
This patch bumps the sdkApiLevel used in Coin to 35.

Task-number: QTBUG-129461
Task-number: QTBUG-130283
Change-Id: Ia26248982a2807b2d3554d1a7a7394efcf13f834
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2025-02-23 07:39:53 +00:00
Qt Submodule Update Bot
6e5ad2a7e8 Update submodules on '6.9 in qt/qt5'
Change-Id: Iab5b7d7e49e13195b8e726778f2e35346164ff58
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-02-21 20:17:48 +00:00
Paul Wicking
be88fababd Add .gitreview file
`git-review` is a command line tool for interacting with Gerrit.
Some IDEs offer support for this tool, either natively or through
plugins. The tool relies on a configuration file, .gitreview. Adding
this configuration file to our repositories simplifies initial setup
for contributors that use the tool directly or through their IDE of
choice.

The configuration file adds a remote called 'gerrit'. This is the
default for the tool, and also the name set for
codereview.qt-project.org by Qt's `init-repository` script. Thus,
the configuration should work seamlessly alongside other repository
helpers.

Task-number: QTBUG-132604
Pick-to: 6.8
Change-Id: Iea428aeaa1b4cdbaabd3477aaf061b8960efc887
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
(cherry picked from commit 9b8cb71d6b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-02-20 09:06:07 +00:00
Eike Ziller
626a22cc74 COIN/QtCreator: Move to Ubuntu 24.04 for ARM
Debian is no longer supported for Qt 6.8.1 and later

Pick-to: 6.8
Change-Id: Ic9ddac3d95451b900f60be6a90efd5fb32985601
Reviewed-by: Patrik Teivonen <patrik.teivonen@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
(cherry picked from commit 014bdc24ab)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-02-17 14:59:09 +00:00
Eike Ziller
db2d504099 COIN/QtCreator: Update to Windows 11 23H2
That is what we are using for packages too.

Pick-to: 6.8
Change-Id: I88ab02f577933292c882ec4633d9087b1bf957ea
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit 53280b0697)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-02-14 15:11:16 +00:00
Toni Saario
c03c22faae Remove PinCores features
Effect of this experiment was inconclusive. In some isolated cases
limited benefit was seen, but in overall metrics no change was
observed.

Remove the feature to gain the lost computing capacity back. If the
removal causes noticeably higher flakiness etc, it can be reevaluated.

Task-number: QTQAINFRA-6702
Change-Id: I001fc2d3740a287d4546d0f597e81ded9f5449cb
(cherry picked from commit 8d51e875cb)
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2025-02-11 16:41:39 +02:00
Jøger Hansegård
3b9008ca75 Update Windows provisioning to use 7z version 24.09
Task-number: QTQAINFRA-6833
Pick-to: 6.8 6.5 5.15
Change-Id: Iebb1a6fe879e3b550479cf109df79199536742e6
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
(cherry picked from commit a1c47252fb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-02-08 02:28:06 +00:00
Timur Pocheptsov
27be5c2f98 Update provisioning script to build FFmpeg for iOS
as xcframeworks so that we can provide both arm64 and arm64-simulator
versions (the former can be used in App Store, the latter when
working with a simulator).

Pick-to: 6.8
Task-number: QTBUG-132313
Change-Id: Ic683f58dffcef8a06adb4a915c4e3abc4ab219e5
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit 1968adc126)
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2025-02-05 17:38:56 +01:00
Tor Arne Vestbø
77a614d592 macOS: Set PostgreSQL_ROOT during provisioning rather than in each config
Decouples provisioning from build configurations.

Pick-to: 6.8
Change-Id: I53b0983ab8b20c40568c1b5b9a24bfe3c62cf531
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit 7f51bdbd8d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-02-02 23:32:39 +00:00
Tor Arne Vestbø
55ef82de88 macOS: Set Protobuf_ROOT during provisioning rather than in each config
Decouples provisioning from build configurations.

Pick-to: 6.8
Change-Id: Ied2b60b360ef5ec5aab1dd4b2e6a0b81032d2938
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
(cherry picked from commit ac2b15075c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-02-02 23:32:37 +00:00
Tor Arne Vestbø
1bb142175a Use correct path for libiodbc and forward via ODBC_ROOT env var
The hard-coded path paths added to LIBRARY_PATH and CPLUS_INCLUDE_PATH
was not correct on Apple Silicon Macs, where homebrew installs into
/opt/homebrew/.

There's also no point in passing on the library location via compiler
environment variables, when we can use ODBC_ROOT. And we don't need
to pass it on as a CMake define, as a environment variable works just
fine. This decouples the provisioning of libiodbc from the build
configurations.

Pick-to: 6.8
Change-Id: I40aa3c1852fb0baf3366fa1a9dab85a66eef95e2
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 124957a8cb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-02-02 23:32:28 +00:00
Piotr Wiercinski
27b0c6daff wasm tests: Update Chrome to 131 and use headless mode
Newer version of Chrome together with healdess mode
should provide more stability.

Change-Id: Ifb6b326b90067d9e069ebef662356d28e2c9edd7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
(cherry picked from commit ae85de3cf8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-01-28 22:40:59 +00:00
Qt Submodule Update Bot
ffb6de83c9 Update submodules on '6.9 in qt/qt5'
Change-Id: I5c2a745c3db8d7de6efa3466c82744eb7138302a
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-01-28 03:03:18 +00:00
Piotr Wierciński
e732ea40d7 wasm: Update Emscripten to 3.1.70
Change-Id: I2a1250d2744d12f5d3f8122f7931c821c607f71b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Piotr Wierciński <piotr.wiercinski@qt.io>
(cherry picked from commit c052b991b0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-01-23 17:52:19 +00:00
Tero Heikkinen
4eac58fb7c Add Perl JSON module
Needed with all the machines generating SBOM

Task-number: QTQAINFRA-6871
Task-number: QTBUG-131434
Change-Id: I15a79c005f530c551f9026e2cbfb465ed1211e98
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 6c6faeefd2)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-01-22 08:14:13 +00:00
Tero Heikkinen
1b6c7cfa17 SLES 15 SP5: Update timezone package
Updates:
  - Timezone package from 2023c to 2024a
  - qtci-linux-SLES-15_SP5-x86_64-50 --> 51

Task-number: QTQAINFRA-6901
Pick-to: 6.8
Change-Id: I8ae65d0f8729e9dcf9147f45b09279fb805027ef
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit 8d0f126d85)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-01-22 08:14:11 +00:00
Matti Paaso
3579a0c95c Provisioning: Update Axivion bauhaus suite and license file
Task-number: QTQAINFRA-6880
Pick-to: 6.8 6.5
Change-Id: I92a70dcb14bbba0ded889894059f2de849b1f557
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 45491c61fc)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-01-20 07:12:44 +00:00
Rami Potinkara
f537715537 Android: Android 15 as maximum supported version
This patch
- Replaces Android 14 with Android 15 as a maximum version
- Introduces Android 15 system image to CI cache
- Sets Android 15 as significant

Task-number: QTQAINFRA-6478
Fixes: QTQAINFRA-6652
Pick-to: 6.8 6.5
Change-Id: Icb6de43f3e2c2f7f98f3172c83d66bebf9603d24
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit 2c85a91e07)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-01-18 15:31:45 +00:00
258 changed files with 2016 additions and 1579 deletions

86
.gitmodules vendored
View File

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

4
.gitreview Normal file
View File

@@ -0,0 +1,4 @@
[gerrit]
host=codereview.qt-project.org
project=qt/qt5
defaultbranch=dev

View File

@@ -16,9 +16,13 @@ project(Qt
VERSION "${QT_REPO_MODULE_VERSION}"
DESCRIPTION "Qt Libraries"
HOMEPAGE_URL "https://qt.io/"
LANGUAGES CXX C ASM
LANGUAGES CXX C
)
if(UNIX AND NOT ANDROID)
enable_language(ASM)
endif()
qt_internal_top_level_setup_after_project()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

View File

@@ -0,0 +1,9 @@
Copyright (c) <year> <owner>.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. 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.
3. Neither the name of the copyright holder nor the names of its 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.

View File

@@ -0,0 +1,451 @@
GNU Free Documentation License
Version 1.3, 3 November 2008
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
<https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other
functional and useful document "free" in the sense of freedom: to
assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially.
Secondarily, this License preserves for the author and publisher a way
to get credit for their work, while not being considered responsible
for modifications made by others.
This License is a kind of "copyleft", which means that derivative
works of the document must themselves be free in the same sense. It
complements the GNU General Public License, which is a copyleft
license designed for free software.
We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free
program should come with manuals providing the same freedoms that the
software does. But this License is not limited to software manuals;
it can be used for any textual work, regardless of subject matter or
whether it is published as a printed book. We recommend this License
principally for works whose purpose is instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium, that
contains a notice placed by the copyright holder saying it can be
distributed under the terms of this License. Such a notice grants a
world-wide, royalty-free license, unlimited in duration, to use that
work under the conditions stated herein. The "Document", below,
refers to any such manual or work. Any member of the public is a
licensee, and is addressed as "you". You accept the license if you
copy, modify or distribute the work in a way requiring permission
under copyright law.
A "Modified Version" of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of
the Document that deals exclusively with the relationship of the
publishers or authors of the Document to the Document's overall
subject (or to related matters) and contains nothing that could fall
directly within that overall subject. (Thus, if the Document is in
part a textbook of mathematics, a Secondary Section may not explain
any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding
them.
The "Invariant Sections" are certain Secondary Sections whose titles
are designated, as being those of Invariant Sections, in the notice
that says that the Document is released under this License. If a
section does not fit the above definition of Secondary then it is not
allowed to be designated as Invariant. The Document may contain zero
Invariant Sections. If the Document does not identify any Invariant
Sections then there are none.
The "Cover Texts" are certain short passages of text that are listed,
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
the Document is released under this License. A Front-Cover Text may
be at most 5 words, and a Back-Cover Text may be at most 25 words.
A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, that is suitable for revising the document
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or
for automatic translation to a variety of formats suitable for input
to text formatters. A copy made in an otherwise Transparent file
format whose markup, or absence of markup, has been arranged to thwart
or discourage subsequent modification by readers is not Transparent.
An image format is not Transparent if used for any substantial amount
of text. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain
ASCII without markup, Texinfo input format, LaTeX input format, SGML
or XML using a publicly available DTD, and standard-conforming simple
HTML, PostScript or PDF designed for human modification. Examples of
transparent image formats include PNG, XCF and JPG. Opaque formats
include proprietary formats that can be read and edited only by
proprietary word processors, SGML or XML for which the DTD and/or
processing tools are not generally available, and the
machine-generated HTML, PostScript or PDF produced by some word
processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the material
this License requires to appear in the title page. For works in
formats which do not have any title page as such, "Title Page" means
the text near the most prominent appearance of the work's title,
preceding the beginning of the body of the text.
The "publisher" means any person or entity that distributes copies of
the Document to the public.
A section "Entitled XYZ" means a named subunit of the Document whose
title either is precisely XYZ or contains XYZ in parentheses following
text that translates XYZ in another language. (Here XYZ stands for a
specific section name mentioned below, such as "Acknowledgements",
"Dedications", "Endorsements", or "History".) To "Preserve the Title"
of such a section when you modify the Document means that it remains a
section "Entitled XYZ" according to this definition.
The Document may include Warranty Disclaimers next to the notice which
states that this License applies to the Document. These Warranty
Disclaimers are considered to be included by reference in this
License, but only as regards disclaiming warranties: any other
implication that these Warranty Disclaimers may have is void and has
no effect on the meaning of this License.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License applies
to the Document are reproduced in all copies, and that you add no
other conditions whatsoever to those of this License. You may not use
technical measures to obstruct or control the reading or further
copying of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough
number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and
you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have
printed covers) of the Document, numbering more than 100, and the
Document's license notice requires Cover Texts, you must enclose the
copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify
you as the publisher of these copies. The front cover must present
the full title with all words of the title equally prominent and
visible. You may add other material on the covers in addition.
Copying with changes limited to the covers, as long as they preserve
the title of the Document and satisfy these conditions, can be treated
as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto adjacent
pages.
If you publish or distribute Opaque copies of the Document numbering
more than 100, you must either include a machine-readable Transparent
copy along with each Opaque copy, or state in or with each Opaque copy
a computer-network location from which the general network-using
public has access to download using public-standard network protocols
a complete Transparent copy of the Document, free of added material.
If you use the latter option, you must take reasonably prudent steps,
when you begin distribution of Opaque copies in quantity, to ensure
that this Transparent copy will remain thus accessible at the stated
location until at least one year after the last time you distribute an
Opaque copy (directly or through your agents or retailers) of that
edition to the public.
It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to
give them a chance to provide you with an updated version of the
Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under
the conditions of sections 2 and 3 above, provided that you release
the Modified Version under precisely this License, with the Modified
Version filling the role of the Document, thus licensing distribution
and modification of the Modified Version to whoever possesses a copy
of it. In addition, you must do these things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct
from that of the Document, and from those of previous versions
(which should, if there were any, be listed in the History section
of the Document). You may use the same title as a previous version
if the original publisher of that version gives permission.
B. List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified
Version, together with at least five of the principal authors of the
Document (all of its principal authors, if it has fewer than five),
unless they release you from this requirement.
C. State on the Title page the name of the publisher of the
Modified Version, as the publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modifications
adjacent to the other copyright notices.
F. Include, immediately after the copyright notices, a license notice
giving the public permission to use the Modified Version under the
terms of this License, in the form shown in the Addendum below.
G. Preserve in that license notice the full lists of Invariant Sections
and required Cover Texts given in the Document's license notice.
H. Include an unaltered copy of this License.
I. Preserve the section Entitled "History", Preserve its Title, and add
to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page. If
there is no section Entitled "History" in the Document, create one
stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.
J. Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the "History" section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
K. For any section Entitled "Acknowledgements" or "Dedications",
Preserve the Title of the section, and preserve in the section all
the substance and tone of each of the contributor acknowledgements
and/or dedications given therein.
L. Preserve all the Invariant Sections of the Document,
unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
M. Delete any section Entitled "Endorsements". Such a section
may not be included in the Modified Version.
N. Do not retitle any existing section to be Entitled "Endorsements"
or to conflict in title with any Invariant Section.
O. Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no material
copied from the Document, you may at your option designate some or all
of these sections as invariant. To do this, add their titles to the
list of Invariant Sections in the Modified Version's license notice.
These titles must be distinct from any other section titles.
You may add a section Entitled "Endorsements", provided it contains
nothing but endorsements of your Modified Version by various
parties--for example, statements of peer review or that the text has
been approved by an organization as the authoritative definition of a
standard.
You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list
of Cover Texts in the Modified Version. Only one passage of
Front-Cover Text and one of Back-Cover Text may be added by (or
through arrangements made by) any one entity. If the Document already
includes a cover text for the same cover, previously added by you or
by arrangement made by the same entity you are acting on behalf of,
you may not add another; but you may replace the old one, on explicit
permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License
give permission to use their names for publicity for or to assert or
imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its
license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name but
different contents, make the title of each such section unique by
adding at the end of it, in parentheses, the name of the original
author or publisher of that section if known, or else a unique number.
Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled "History"
in the various original documents, forming one section Entitled
"History"; likewise combine any sections Entitled "Acknowledgements",
and any sections Entitled "Dedications". You must delete all sections
Entitled "Endorsements".
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other
documents released under this License, and replace the individual
copies of this License in the various documents with a single copy
that is included in the collection, provided that you follow the rules
of this License for verbatim copying of each of the documents in all
other respects.
You may extract a single document from such a collection, and
distribute it individually under this License, provided you insert a
copy of this License into the extracted document, and follow this
License in all other respects regarding verbatim copying of that
document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate
and independent documents or works, in or on a volume of a storage or
distribution medium, is called an "aggregate" if the copyright
resulting from the compilation is not used to limit the legal rights
of the compilation's users beyond what the individual works permit.
When the Document is included in an aggregate, this License does not
apply to the other works in the aggregate which are not themselves
derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these
copies of the Document, then if the Document is less than one half of
the entire aggregate, the Document's Cover Texts may be placed on
covers that bracket the Document within the aggregate, or the
electronic equivalent of covers if the Document is in electronic form.
Otherwise they must appear on printed covers that bracket the whole
aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section 4.
Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include
translations of some or all Invariant Sections in addition to the
original versions of these Invariant Sections. You may include a
translation of this License, and all the license notices in the
Document, and any Warranty Disclaimers, provided that you also include
the original English version of this License and the original versions
of those notices and disclaimers. In case of a disagreement between
the translation and the original version of this License or a notice
or disclaimer, the original version will prevail.
If a section in the Document is Entitled "Acknowledgements",
"Dedications", or "History", the requirement (section 4) to Preserve
its Title (section 1) will typically require changing the actual
title.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense, or distribute it is void, and
will automatically terminate your rights under this License.
However, if you cease all violation of this License, then your license
from a particular copyright holder is reinstated (a) provisionally,
unless and until the copyright holder explicitly and finally
terminates your license, and (b) permanently, if the copyright holder
fails to notify you of the violation by some reasonable means prior to
60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, receipt of a copy of some or all of the same material does
not give you any rights to use it.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the
GNU Free Documentation License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in
detail to address new problems or concerns. See
https://www.gnu.org/licenses/.
Each version of the License is given a distinguishing version number.
If the Document specifies that a particular numbered version of this
License "or any later version" applies to it, you have the option of
following the terms and conditions either of that specified version or
of any later version that has been published (not as a draft) by the
Free Software Foundation. If the Document does not specify a version
number of this License, you may choose any version ever published (not
as a draft) by the Free Software Foundation. If the Document
specifies that a proxy can decide which future versions of this
License can be used, that proxy's public statement of acceptance of a
version permanently authorizes you to choose that version for the
Document.
11. RELICENSING
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
World Wide Web server that publishes copyrightable works and also
provides prominent facilities for anybody to edit those works. A
public wiki that anybody can edit is an example of such a server. A
"Massive Multiauthor Collaboration" (or "MMC") contained in the site
means any set of copyrightable works thus published on the MMC site.
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
license published by Creative Commons Corporation, a not-for-profit
corporation with a principal place of business in San Francisco,
California, as well as future copyleft versions of that license
published by that same organization.
"Incorporate" means to publish or republish a Document, in whole or in
part, as part of another Document.
An MMC is "eligible for relicensing" if it is licensed under this
License, and if all works that were first published under this License
somewhere other than this MMC, and subsequently incorporated in whole or
in part into the MMC, (1) had no cover texts or invariant sections, and
(2) were thus incorporated prior to November 1, 2008.
The operator of an MMC Site may republish an MMC contained in the site
under CC-BY-SA on the same site at any time before August 1, 2009,
provided the MMC is eligible for relicensing.
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of
the License in the document and put the following copyright and
license notices just after the title page:
Copyright (c) YEAR YOUR NAME.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
replace the "with...Texts." line with this:
with the Invariant Sections being LIST THEIR TITLES, with the
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
If you have Invariant Sections without Cover Texts, or some other
combination of the three, merge those two alternatives to suit the
situation.
If your document contains nontrivial examples of program code, we
recommend releasing these examples in parallel under your choice of
free software license, such as the GNU General Public License,
to permit their use in free software.

39
REUSE.toml Normal file
View File

@@ -0,0 +1,39 @@
version = 1
[[annotations]]
path = ["tests/**"]
comment = "tests"
precedence = "closest"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GPL-3.0-only"
[[annotations]]
path = ["coin/**", "cmake/**", "**.pro", "**.qrc", "**CMakeLists.txt", ".cmake.conf", "**.yaml",
"coin/axivion/ci_config_linux.json",
"**.cfg", "**.plist", "**.pri", "**.prf", "configure.json"]
precedence = "closest"
comment = "build system"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "BSD-3-Clause"
[[annotations]]
path = [".tag", "**/.gitattributes", "**.gitignore",
".gitmodules"]
precedence = "closest"
comment = "version control system. Licensed as build system"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "BSD-3-Clause"
[[annotations]]
path = ["**README*", "CONTRIBUTING.md", ".commit-template", ".github/pull_request_template.md"]
comment = "documentation"
precedence = "closest"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"
[[annotations]]
path = ["**.toml", "licenseRule.json"]
comment = "documentation"
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"

View File

@@ -1,7 +1,5 @@
# Copyright (C) 2016 Olivier Goffart <ogoffart@woboq.com>
#
# You may use this file under the terms of the 3-clause BSD license.
# See the file LICENSE from this package for details.
# SPDX-License-Identifier: BSD-3-Clause
# This is the clang-format configuration style to be used by Qt,
# based on the rules from https://wiki.qt.io/Qt_Coding_Style and

View File

@@ -1,136 +0,0 @@
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.

View File

@@ -1,349 +0,0 @@
# 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

@@ -1,39 +0,0 @@
# 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

@@ -1,16 +0,0 @@
{
"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

@@ -8,7 +8,6 @@ macro(qt_ir_include_all_helpers)
include(QtIROptionsHelpers)
include(QtIRParsingHelpers)
include(QtIRProcessHelpers)
include(QtIRTestHelpers)
include(QtTopLevelHelpers)
endmacro()

View File

@@ -7,7 +7,6 @@ cmake_minimum_required(VERSION 3.16)
macro(qt_ir_setup_include_paths)
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_CURRENT_LIST_DIR}"
"${CMAKE_CURRENT_LIST_DIR}/3rdparty/cmake"
)
include(QtIRHelpers)
endmacro()

View File

@@ -7,7 +7,6 @@ cmake_minimum_required(VERSION 3.16)
macro(qt_tl_setup_include_paths)
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_CURRENT_LIST_DIR}"
"${CMAKE_CURRENT_LIST_DIR}/3rdparty/cmake"
)
include(QtTopLevelHelpers)
endmacro()

View File

@@ -4,7 +4,7 @@ Configurations:
Id: 'opensuse-15.6-host-asan'
Template: 'qtci-linux-openSUSE-15.6-x86_64-51'
Compiler: 'GCC'
Features: ['PinCores', 'Sccache', 'WarningsAreErrors', 'UseConfigure', 'UseAddressSanitizer']
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure', 'UseAddressSanitizer']
Configure arguments: '-nomake examples -developer-build'
Environment variables: [
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}',

View File

@@ -30,13 +30,13 @@ Configurations:
Id: 'ubuntu-22.04-developer-build-x11-tests'
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
Compiler: 'GCC'
Features: ['PinCores', 'Sccache', 'TestOnly']
Features: ['Sccache', 'TestOnly']
Platform dependency: 'ubuntu-22.04-developer-build'
-
Id: 'ubuntu-22.04-x11-tests'
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
Compiler: 'GCC'
Features: ['PinCores', 'Sccache', 'TestOnly']
Features: ['Sccache', 'TestOnly']
Platform dependency: 'ubuntu-22.04'
# Build on Ubuntu 24.04 ARM64 Wayland and test on offscreen and Wayland later
-
@@ -65,7 +65,7 @@ Configurations:
Id: 'ubuntu-24.04-arm64-offscreen-tests'
Template: 'qtci-linux-Ubuntu-24.04-aarch64-50'
Compiler: 'GCC'
Features: ['PinCores', 'TestOnly']
Features: ['TestOnly']
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'QT_QPA_OFFSCREEN_NO_GLX=1',
@@ -99,19 +99,19 @@ Configurations:
Id: 'ubuntu-24.04-x64-developer-build-x11-tests'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Compiler: 'GCC'
Features: ['PinCores', 'Sccache', 'TestOnly', 'InsignificantTests']
Features: ['Sccache', 'TestOnly', 'InsignificantTests']
Platform dependency: 'ubuntu-24.04-x64-developer-build'
-
Id: 'ubuntu-24.04-x64-x11-tests'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Compiler: 'GCC'
Features: ['PinCores', 'Sccache', 'TestOnly', 'InsignificantTests']
Features: ['Sccache', 'TestOnly']
Platform dependency: 'ubuntu-24.04-x64'
-
Id: 'opensuse-15.6-developer-build'
Template: 'qtci-linux-openSUSE-15.6-x86_64-51'
Compiler: 'GCC'
Features: ['PinCores', 'Sccache', 'WarningsAreErrors', 'UseConfigure']
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure']
Configure arguments: '-nomake examples -developer-build'
Environment variables: [
'PATH={{.Env.CMAKE_MIN_SUPPORTED_BIN_PATH}}:{{.Env.PATH}}',
@@ -120,7 +120,7 @@ Configurations:
]
-
Id: 'sles-15_sp5-static'
Template: 'qtci-linux-SLES-15_SP5-x86_64-50'
Template: 'qtci-linux-SLES-15_SP5-x86_64-51'
Compiler: 'GCC'
Features: ['Sccache', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Configure arguments: '-nomake examples -static -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
@@ -142,7 +142,7 @@ Configurations:
Id: 'windows-10_22h2-msvc2022'
Template: 'qtci-windows-10_22H2-x86_64-53'
Compiler: 'MSVC2022'
Features: ['PinCores', 'Sccache', "DebugAndRelease", 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Features: ['Sccache', "DebugAndRelease", 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
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}}',
@@ -154,7 +154,7 @@ Configurations:
Id: 'windows-11_23H2-msvc2022'
Template: 'qtci-windows-11_23H2-x86_64-54'
Compiler: 'MSVC2022'
Features: ['PinCores', 'Sccache', "DebugAndRelease", 'UseConfigure', 'Packaging', 'GenerateSBOM', 'VerifySBOM']
Features: ['Sccache', "DebugAndRelease", 'UseConfigure', 'Packaging', 'GenerateSBOM', 'VerifySBOM']
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}}\..',
@@ -166,7 +166,7 @@ Configurations:
Id: 'windows-11_22h2-arm64-msvc2022'
Template: 'qtci-windows-11_22H2-aarch64-55'
Compiler: 'MSVC2022'
Features: ['PinCores', 'Packaging', 'DebugAndRelease', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Features: ['Packaging', 'DebugAndRelease', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib -no-opengl -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_arm64}}\..',
@@ -193,7 +193,7 @@ Configurations:
Id: 'windows-11_23H2-msvc2022-developer-build'
Template: 'qtci-windows-11_23H2-x86_64-54'
Compiler: 'MSVC2022'
Features: ['PinCores', 'Sccache', 'DebugAndRelease', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
Features: ['Sccache', 'DebugAndRelease', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
Configure arguments: '-debug-and-release -force-asserts -make examples -developer-build -force-debug-info -qt-zlib -c++std c++20'
Environment variables: [
'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}}',
@@ -205,7 +205,7 @@ Configurations:
Id: 'rhel-8.10'
Template: 'qtci-linux-RHEL-8.10-x86_64-51'
Compiler: 'GCC'
Features: ['PinCores', 'Packaging', 'Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM']
Features: ['Packaging', 'Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM']
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}}',
@@ -215,7 +215,7 @@ Configurations:
Id: 'rhel-9.4'
Template: 'qtci-linux-RHEL-9.4-x86_64-50'
Compiler: 'GCC'
Features: ['PinCores', 'Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM']
Features: ['Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM']
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',
@@ -238,7 +238,7 @@ Configurations:
Id: 'windows-10_22h2-mingw13'
Template: 'qtci-windows-10_22H2-x86_64-53'
Compiler: 'Mingw'
Features: ['PinCores', 'Packaging', 'Sccache', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Features: ['Packaging', 'Sccache', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples'
Environment variables: [
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
@@ -251,7 +251,7 @@ Configurations:
Id: 'windows-11_23H2-llvm'
Template: 'qtci-windows-11_23H2-x86_64-54'
Compiler: 'Clang'
Features: ['PinCores', 'Packaging','Sccache', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Features: ['Packaging','Sccache', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples'
Environment variables: [
'Path=C:\llvm-mingw\bin;{{.Env.Path}}',
@@ -264,7 +264,7 @@ Configurations:
Id: 'windows-11_23H2-mingw13-developer-build'
Template: 'qtci-windows-11_23H2-x86_64-54'
Compiler: 'Mingw'
Features: ['PinCores', 'Sccache', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
Configure arguments: '-developer-build -release -force-asserts -force-debug-info -separate-debug-info -make examples'
Environment variables: [
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
@@ -299,7 +299,19 @@ Configurations:
'COIN_EXTRA_DEBIAN_REPO=deb http://archive.ubuntu.com/ubuntu/ jammy main universe multiverse',
'COIN_SKIP_DEBIAN_MODULES=qt5 qtqa qtactiveqt qtdoc qtwebengine qtwebview',
]
-
Id: 'bookworm-gles-arm64-debian-pkg-packaging'
Template: 'qtci-linux-Debian-11.6-aarch64-50'
Compiler: 'GCC'
Features: ['Packaging','DebianPackaging','DisableTests', 'Insignificant']
Environment variables: [
'DEBIAN_RULES_REF=6.9_gles',
'COIN_TARGET_DIST=tqtc-bookworm',
'COIN_EXTRA_DEBIAN_PACKAGES={{.Env.HOME}}/debian_packages/',
'COIN_SBUILD_CHROOT=stable-arm64-sbuild',
'COIN_EXTRA_DEBIAN_REPO=deb http://deb.debian.org/debian/ bookworm main',
'COIN_SKIP_DEBIAN_MODULES=qt5 qtqa qtactiveqt qtdoc qtwebengine qtwebview',
]
-
# This configuration runs for every submodule, using externally
# built qdoc and qattributionscanner binaries, to ensure that no
@@ -309,6 +321,6 @@ Configurations:
Id: 'documentation-warnings'
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
Compiler: 'GCC'
Features: ['PinCores', 'Sccache', 'TestOnly', 'TestDocs', 'DoNotRunTestsButCreateTestWorkItem', 'DocsGenerationV2']
Features: ['Sccache', 'TestOnly', 'TestDocs', 'DoNotRunTestsButCreateTestWorkItem', 'DocsGenerationV2']
Platform dependency: 'ubuntu-22.04'

View File

@@ -7,7 +7,7 @@ Configurations:
Target arch: 'armv7'
Compiler: 'GCC'
Platform dependency: 'ubuntu-22.04'
Features: ['PinCores', 'Sccache', 'UseConfigure', 'InsignificantTests', 'StandaloneExamples']
Features: ['Sccache', 'UseConfigure', 'InsignificantTests', 'StandaloneExamples']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-release -force-asserts -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: ['PinCores', 'Sccache', 'UseConfigure', 'InsignificantTests']
Features: ['Sccache', 'UseConfigure', 'InsignificantTests']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-release -force-asserts -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,13 +8,14 @@ Configurations:
Compiler: 'GCC'
Target compiler: 'QCC'
Platform dependency: 'ubuntu-22.04'
Features: ['PinCores', 'Packaging', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Features: ['Packaging', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -developer-build -no-dbus -nomake examples',
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_710}}/qnx-toolchain-x8664.cmake -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'QT_CMAKE_DIR=/opt/cmake-3.30.5/bin',
'QNX_TEST_ENV=LD_LIBRARY_PATH={{.Env.QNX_QEMU_LD_LIBRARY_PATH}} QSG_RHI_BACKEND=software QT_QPA_PLATFORM=offscreen QTEST_ENVIRONMENT=ci',
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'QNX_QEMU={{.Env.QNX_710_QEMU}}',
]
-
Id: 'qnx-710-arm64-on-linux'

View File

@@ -8,7 +8,7 @@ Configurations:
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'vxworks-imx6-buildtest'
Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly']
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
Environment variables: [
'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_2_VSB',
'VXWORKS_TEST_LIBS_PATH=/opt/fsl_imx6_2_0_6_2_VSB/usr/lib/common;/opt/fsl_imx6_2_0_6_2_VSB/usr/root/llvm/bin;/opt/fsl_imx6_2_0_6_2_VSB/usr/3pp/develop/usr/lib;/home/qt/work/install/target/lib',
@@ -23,7 +23,7 @@ Configurations:
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'vxworks-x86_64-buildtest'
Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly']
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
Environment variables: [
'WIND_CC_SYSROOT=/opt/itl_generic_skylake_VSB',
'VXWORKS_TEST_LIBS_PATH=/opt/itl_generic_skylake_VSB/usr/lib/common;/opt/itl_generic_skylake_VSB/usr/root/llvm/bin;/opt/itl_generic_skylake_VSB/usr/3pp/develop/usr/lib;/home/qt/work/install/target/lib',

View File

@@ -53,9 +53,8 @@ Configurations:
Features: ['Packaging', 'Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'MinimalStaticTests']
Configure arguments: '-static -nomake examples -release -no-framework -no-icu -qt-doubleconversion -no-feature-sql-psql'
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}}',
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DCMAKE_BUILD_TYPE=Release -DFEATURE_gds=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DFEATURE_native_grpc=OFF',
'Protobuf_ROOT=/usr/local/lib/cmake/protobuf'
]
-

View File

@@ -2,9 +2,9 @@ Version: 2
Configurations:
-
Id: 'sles-15_sp5-minimal-static'
Template: 'qtci-linux-SLES-15_SP5-x86_64-50'
Template: 'qtci-linux-SLES-15_SP5-x86_64-51'
Compiler: 'GCC'
Features: ['PinCores', 'Sccache', 'MinimalStaticTests', 'UseConfigure']
Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure']
Configure arguments: '-nomake examples -static -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
Environment variables: [
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}'
@@ -13,7 +13,7 @@ Configurations:
Id: 'sles-15_sp6-minimal-static'
Template: 'qtci-linux-SLES-15_SP6-x86_64-51'
Compiler: 'GCC'
Features: ['PinCores', 'Sccache', 'MinimalStaticTests', 'UseConfigure', 'InsignificantTests']
Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure', 'InsignificantTests']
Configure arguments: '-nomake examples -static -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
Environment variables: [
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}'
@@ -22,7 +22,7 @@ Configurations:
Id: 'windows-11_23H2-minimal-static'
Template: 'qtci-windows-11_23H2-x86_64-54'
Compiler: 'MSVC2022'
Features: ['PinCores', 'Sccache', 'MinimalStaticTests', 'UseConfigure']
Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure']
Configure arguments: '-release -force-debug-info -static -nomake examples -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\..',
@@ -34,5 +34,5 @@ Configurations:
Id: 'macos-minimal-static'
Template: 'qtci-macos-14-arm-106'
Compiler: 'Clang'
Features: ['PinCores', 'Sccache', 'MinimalStaticTests', 'UseConfigure']
Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure']
Configure arguments: '-nomake examples -release -force-debug-info -static -no-framework'

View File

@@ -39,7 +39,7 @@ Configurations:
Compiler: 'GCC'
Target compiler: 'Clang'
Platform dependency: 'rhel-8.10'
Features: ['PinCores', 'Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86',
'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',
@@ -47,22 +47,6 @@ Configurations:
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}',
'ANDROID_EMULATOR=emulator_x86_api_28'
]
-
Id: 'android-14-x86_64-on-linux'
Template: 'qtci-linux-RHEL-8.10-x86_64-51'
Target os: 'Android_ANY'
Target arch: 'x86_64'
Compiler: 'GCC'
Target compiler: 'Clang'
Platform dependency: 'rhel-8.10'
Features: ['PinCores', 'Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
'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_64}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}',
'ANDROID_EMULATOR=emulator_x86_64_api_34'
]
-
Id: 'android-15-x86_64-on-linux'
Template: 'qtci-linux-RHEL-8.10-x86_64-51'
@@ -71,7 +55,7 @@ Configurations:
Compiler: 'GCC'
Target compiler: 'Clang'
Platform dependency: 'rhel-8.10'
Features: ['PinCores', 'Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests']
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
'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',

View File

@@ -6,11 +6,12 @@ Configurations:
Target os: 'WebAssembly'
Compiler: 'GCC'
Platform dependency: 'opensuse-15.6-developer-build'
Features: ['Sccache', 'DoNotRunTests', 'UseConfigure']
Features: ['DoNotRunTests', 'UseConfigure']
Environment variables: [
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
"TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -nomake examples -feature-thread \
-feature-exceptions -DQT_QMAKE_DEVICE_OPTIONS=\"QT_EMSCRIPTEN_ASYNCIFY=1\""
-feature-exceptions -DQT_QMAKE_DEVICE_OPTIONS=\"QT_EMSCRIPTEN_ASYNCIFY=1\"",
'HEADLESS_CHROME_FOR_TESTING=true'
]
-
Id: 'webassembly-windows'
@@ -19,7 +20,7 @@ Configurations:
Compiler: 'Mingw'
Target compiler: 'Clang'
Platform dependency: 'windows-10_22h2-mingw13'
Features: ['Packaging', 'Sccache', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Features: ['Packaging','DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'Path={{.Env.EMSDK_PATH}};{{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
@@ -33,7 +34,7 @@ Configurations:
Target os: 'WebAssembly'
Compiler: 'GCC'
Platform dependency: 'opensuse-15.6-developer-build'
Features: ['Packaging', 'Sccache', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Features: ['Packaging', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
'TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -nomake examples -feature-thread',
@@ -46,7 +47,7 @@ Configurations:
Target os: 'WebAssembly'
Compiler: 'GCC'
Platform dependency: 'opensuse-15.6-developer-build'
Features: ['Sccache', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Features: ['DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
'TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -no-feature-thread -nomake tests -nomake examples -shared',

View File

@@ -8,7 +8,7 @@ Configurations:
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'macos-universal-on-x86_64'
Features: ['PinCores', 'Sccache', 'DebugAndRelease', 'MinimalStaticTests', 'UseConfigure']
Features: ['Sccache', 'DebugAndRelease', 'MinimalStaticTests', 'UseConfigure']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang'
]

View File

@@ -10,10 +10,9 @@ Configurations:
Platform dependency: [
'rhel-8.10',
'android-9-x86-on-linux',
'android-14-x86_64-on-linux'
'android-15-x86_64-on-linux'
]
Features: [
'PinCores',
'Sccache',
'WarningsAreErrors',
'AndroidTestRun',
@@ -23,7 +22,7 @@ Configurations:
Environment variables: [
'QT_CI_ARTIFACT_ID_PATH_Android-host=QT_CI_ARTIFACT_ID_PATH_rhel-8.10',
'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',
'QT_CI_ARTIFACT_ID_PATH_Android-x86_64=QT_CI_ARTIFACT_ID_PATH_android-15-x86_64-on-linux',
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_ANDROID_ABIS="x86;x86_64"',
'ANDROID_EMULATOR=emulator_x86_api_28'
]

View File

@@ -9,15 +9,14 @@ Configurations:
-
Id: 'macos-universal-on-x86_64'
Template: 'qtci-macos-14-x86_64-105'
Template: 'qtci-macos-15-x86_64-103'
Compiler: 'Clang'
Target arch: 'x86_64-arm64'
Features: ['Packaging', 'Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
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}}',
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFEATURE_gds=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DQT_FEATURE_open62541_security=OFF',
'Protobuf_ROOT=/usr/local/lib/cmake/protobuf'
]
-
@@ -29,7 +28,6 @@ Configurations:
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -framework'
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}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON',
]
@@ -53,7 +51,7 @@ Configurations:
Id: 'macos-15-x86_64-tests'
Template: 'qtci-macos-15-x86_64-103'
Compiler: 'Clang'
Features: ['Sccache', 'TestOnly', 'Packaging', 'InsignificantTests']
Features: ['Sccache', 'TestOnly', 'Packaging']
Platform dependency: 'macos-universal-on-x86_64'
# And arm64
@@ -74,7 +72,7 @@ Configurations:
Id: 'macos-15-arm64-tests'
Template: 'qtci-macos-15-arm-104'
Compiler: 'Clang'
Features: ['TestOnly', 'Packaging', 'InsignificantTests']
Features: ['TestOnly', 'Packaging']
Platform dependency: 'macos-universal-on-x86_64'
# Test the universal packaging built on arm64
@@ -119,7 +117,6 @@ Configurations:
Environment variables: [
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
'Protobuf_ROOT=/usr/local/lib/cmake/protobuf',
]
-
Id: 'macos-14-arm64-developer-build'
@@ -129,7 +126,6 @@ Configurations:
Configure arguments: '-developer-build -nomake examples -debug -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}} -DQT_DEPLOY_FFMPEG=TRUE',
]

View File

@@ -1,7 +1,7 @@
Version: 2
Include: [
cmake_platforms.yaml: [
windows-10_22h2-msvc2019-developer-build
windows-10_22h2-mingw13
]
]
Configurations:
@@ -10,12 +10,13 @@ Configurations:
Template: 'qtci-windows-10_22H2-x86_64-53'
Target os: 'QNX_710'
Target arch: 'arm64'
Compiler: 'MSVC2019'
Compiler: 'Mingw'
Target compiler: 'QCC'
Platform dependency: 'windows-10_22h2-msvc2019-developer-build'
Platform dependency: 'windows-10_22h2-mingw13'
Features: ['DisableTests', 'UseConfigure']
Environment variables: [
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -no-dbus -nomake examples -no-pch',
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_710}}\qnx-toolchain-aarch64le.cmake -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -G "Ninja"',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON'
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_710}}\qnx-toolchain-aarch64le.cmake -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_mingw}}/include'
]

View File

@@ -53,6 +53,5 @@ Configurations:
Configure arguments: '-make examples -debug -force-debug-info -separate-debug-info -headersclean -framework'
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}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DQT_UNITY_BUILD=ON',
]

View File

@@ -9,7 +9,7 @@ Include: [
"ios-universal"
],
macos.yaml: [
"macos-14-arm64-developer-build",
"macos-arm64-developer-build",
"macos-14-arm64-developer-build-tests",
],
cmake_platforms_target_android.yaml: [

View File

@@ -2,7 +2,7 @@ Version: 2
Module only: True
Configurations:
-
Template: 'qtci-windows-10_22H2-x86_64-53'
Template: 'qtci-windows-11_23H2-x86_64-54'
Compiler: 'MSVC2022'
Features: ['Sccache', 'DebugAndRelease']
Configure arguments: ''
@@ -15,7 +15,7 @@ Configurations:
Configure arguments: ''
Environment variables: []
-
Template: 'qtci-linux-Debian-11.6-aarch64-50'
Template: 'qtci-linux-Ubuntu-24.04-aarch64-50'
Compiler: 'GCC'
Features: ['Sccache', 'DebugAndRelease']
Configure arguments: ''
@@ -28,7 +28,7 @@ Configurations:
Environment variables: []
# without tests
-
Template: 'qtci-windows-10_22H2-x86_64-53'
Template: 'qtci-windows-11_23H2-x86_64-54'
Compiler: 'MSVC2022'
Features: ['Sccache', 'DebugAndRelease', 'DisableTests']
Configure arguments: ''
@@ -36,7 +36,7 @@ Configurations:
Environment script: ['%ProgramFiles%\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat', 'amd64']
# oldest Qt version
-
Template: 'qtci-windows-10_22H2-x86_64-53'
Template: 'qtci-windows-11_23H2-x86_64-54'
Compiler: 'MSVC2022'
Features: ['Sccache', 'DebugAndRelease', 'OldestQt']
Configure arguments: ''

View File

@@ -17,4 +17,4 @@ Overrides:
# Make VxWorks tests insignificant.
-
Id: 'vxworks-x86_64-tests'
Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']

View File

@@ -10,7 +10,7 @@ Overrides:
# Make VxWorks tests insignificant.
-
Id: 'vxworks-imx6-tests'
Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
-
Id: 'vxworks-x86_64-tests'
Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']

View File

@@ -14,7 +14,7 @@ Overrides:
# Make VxWorks tests insignificant.
-
Id: 'vxworks-imx6-tests'
Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
-
Id: 'vxworks-x86_64-tests'
Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']

View File

@@ -11,4 +11,4 @@ Overrides:
# Make VxWorks x86_64 tests insignificant.
-
Id: 'vxworks-x86_64-tests'
Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']

View File

@@ -11,4 +11,4 @@ Overrides:
# Make VxWorks x86_64 tests insignificant.
-
Id: 'vxworks-x86_64-tests'
Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']

View File

@@ -10,7 +10,7 @@ Overrides:
# Make VxWorks tests insignificant.
-
Id: 'vxworks-imx6-tests'
Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
-
Id: 'vxworks-x86_64-tests'
Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']

View File

@@ -1,6 +1,7 @@
Version: 2
Include: [
cmake_platforms.yaml: [
"documentation-warnings",
"rhel-8.10",
'windows-10_22h2-mingw13',
'ubuntu-22.04-developer-build',
@@ -13,7 +14,7 @@ Include: [
'android-arm64-on-macos',
'android-armv7-on-windows',
'android-9-x86-on-linux',
'android-14-x86_64-on-linux'
'android-15-x86_64-on-linux'
],
offline_documentation.yaml
]

View File

@@ -5,5 +5,5 @@ Configurations:
Template: 'qtci-linux-openSUSE-15.6-x86_64-51'
Target os: 'WebAssembly'
Compiler: 'GCC'
Features: ['PinCores', 'Sccache', 'TestOnly']
Features: ['Sccache', 'TestOnly']
Platform dependency: 'webassembly-linux-thread-asyncify'

View File

@@ -4,12 +4,12 @@ plugins {
android {
namespace 'com.example.gradle_project'
compileSdk 34
compileSdk 35
defaultConfig {
applicationId "com.example.gradle_project"
minSdk 28
targetSdk 34
targetSdk 35
versionCode 1
versionName "1.0"
}

View File

@@ -1,5 +1,5 @@
[versions]
agp = "8.6.0"
agp = "8.8.0"
core = "1.13.1"
appcompat = "1.6.1"
material = "1.11.0"
@@ -15,4 +15,3 @@ constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayo
androidApplication = { id = "com.android.application", version.ref = "agp" }
[bundles]

View File

@@ -24,20 +24,15 @@ basePath="http://ci-files01-hki.ci.qt.io/input/android"
toolsVersion="2.1"
toolsFile="commandlinetools-linux-6609375_latest.zip"
ndkVersionLatest="r26b"
ndkVersionLatest="r27c"
ndkVersionDefault=$ndkVersionLatest
sdkBuildToolsVersion="34.0.0"
sdkApiLevel="android-34"
sdkBuildToolsVersion="35.0.1"
sdkApiLevel="android-35"
toolsSha1="9172381ff070ee2a416723c1989770cf4b0d1076"
ndkSha1Latest="fdf33d9f6c1b3f16e5459d53a82c7d2201edbcc4"
ndkSha1Latest="090e8083a715fdb1a3e402d0763c388abb03fb4e"
ndkSha1Default=$ndkSha1Latest
# Android 14 avd zip
android14SystemZipName="android14system_UE1A_230829_036.tar.gz"
android14SystemZipSha="ede80c6901e8fad1895c97a86542b8e072bb1ee5"
android14SystemPath="$basePath/$android14SystemZipName"
# Android Automotive max SDK level image
sdkApiLevelAutomotiveMax="android-34"
androidAutomotiveMaxUrl="$basePath/${sdkApiLevelAutomotiveMax}_automotive.tar.gz"
@@ -162,13 +157,20 @@ echo "Unzipping the Android 9 to $minVersionDestination"
sudo unzip -o -q "$minVersionFilePath" -d "$minVersionDestination"
rm "$minVersionFilePath"
echo "y" | ./sdkmanager --install "system-images;android-35;google_apis;x86_64" \
| eval "$sdkmanager_no_progress_bar_cmd"
echo "Download and unzip Android 15 System Image"
maxVersionFileName="x86_64-35_r08.zip"
maxVersionDestination="$sdkTargetFolder/system-images/android-35/google_apis/"
maxVersionFilePath="$maxVersionDestination/$maxVersionFileName"
maxVersionCiUrl="$basePath/system-images/google_apis/$maxVersionFileName"
maxVersionUrl="https://dl.google.com/android/repository/sys-img/google_apis/$maxVersionFileName"
maxVersionSha1="d79169884cabc6680cb29d32c2112ad46c858c1b"
echo "Extract stored Android 14 Beta $android14SystemZipName"
DownloadURL "$android14SystemPath" "$android14SystemPath" "$android14SystemZipSha" \
"/tmp/$android14SystemZipName"
sudo tar -xzf "/tmp/$android14SystemZipName" -C "$sdkTargetFolder/system-images"
mkdir -p "$maxVersionDestination"
DownloadURL "$maxVersionCiUrl" "$maxVersionUrl" "$maxVersionSha1" "$maxVersionFilePath"
echo "Unzipping the Android 15 to $maxVersionDestination"
sudo unzip -o -q "$maxVersionFilePath" -d "$maxVersionDestination"
rm "$maxVersionFilePath"
echo "Checking the contents of Android SDK again..."
ls -l "$sdkTargetFolder"
@@ -176,9 +178,6 @@ ls -l "$sdkTargetFolder"
echo "no" | ./avdmanager create avd -n emulator_x86_api_28 -c 2048M -f \
-k "system-images;android-28;google_apis;x86"
echo "no" | ./avdmanager create avd -n emulator_x86_64_api_34 -c 2048M -f \
-k "system-images;android-34;google_apis;x86_64"
echo "no" | ./avdmanager create avd -n emulator_x86_64_api_35 -c 2048M -f \
-k "system-images;android-35;google_apis;x86_64"
@@ -211,7 +210,7 @@ cp -r "${scripts_dir_name}/android/gradle_project" /tmp/gradle_project
cd /tmp/gradle_project
# Get Gradle files from qtbase
qtbaseGradleUrl="https://code.qt.io/cgit/qt/qtbase.git/plain/src/3rdparty/gradle"
commit_sha="8436455e2740000a817e0b8154e13f47e6abb68c"
commit_sha="e5f79573fe2f21cf7bea8f63386f39bb18b351f0"
curl "$qtbaseGradleUrl/gradle.properties?h=$commit_sha" > gradle.properties
curl "$qtbaseGradleUrl/gradlew?h=$commit_sha" > gradlew
curl "$qtbaseGradleUrl/gradlew.bat?h=$commit_sha" > gradlew.bat

View File

@@ -0,0 +1,17 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
# This script modifies GNOME based Linux configurations
set -ex
# Desktop
echo "Disable blank screen power saving (timeout 0 = never)"
gsettings set org.gnome.desktop.session idle-delay 0
echo "Disable Automatic screen lock when screensaver goes active"
gsettings set org.gnome.desktop.screensaver lock-enabled false
echo "Disable window animations."
gsettings set org.gnome.desktop.interface enable-animations false
echo "Disable hot corner feature"
gsettings set org.gnome.desktop.interface enable-hot-corners false

View File

@@ -0,0 +1,99 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
# This script builds and installs FFmpeg static or shared (default) libs
set -ex
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
build_type=$(get_ffmpeg_build_type "$1")
ffmpeg_source_dir=$(download_ffmpeg)
ffmpeg_name=$(basename "$ffmpeg_source_dir")
ffmpeg_config_options=$(get_ffmpeg_config_options "$build_type")
prefix="/usr/local/$ffmpeg_name"
pkgconfig_path="$PKG_CONFIG_PATH"
install_ff_nvcodec_headers() {
local nv_codec_version="11.1" # use 11.1 to ensure compatibility with 470 nvidia drivers; might be upated to 12.0
local nv_codec_url_public="https://github.com/FFmpeg/nv-codec-headers/archive/refs/heads/sdk/$nv_codec_version.zip"
local nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-sdk-$nv_codec_version.zip"
local nv_codec_sha1="ceb4966ab01b2e41f02074675a8ac5b331bf603e"
#nv_codec_sha1="4f30539f8dd31945da4c3da32e66022f9ca59c08" // 12.0
local target_dir="$HOME"
local nv_codec_dir="$target_dir/nv-codec-headers-sdk-$nv_codec_version"
if [ ! -d "$nv_codec_dir" ]; then
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
InstallFromCompressedFileFromURL "$nv_codec_url_cached" "$nv_codec_url_public" "$nv_codec_sha1" "$target_dir" ""
fi
sudo make -C "$nv_codec_dir" install -j
# Might be not detected by default on RHEL
pkgconfig_path="$pkgconfig_path:/usr/local/lib/pkgconfig"
}
fix_openssl3_pc_files() {
# On RHEL 8, openssl3 pc files are libopenssl3.pc, libssl3.pc, libcrypto3.pc,
# and FFmpeg cannot find them. Instead, it finds FFmpeg 1.x.x if it's installed.
# The function fixes the files with copying them to a custom directory
# assign to 'local' to ignore failure exit codes
local -r openssl3_pcfiledir=$(pkg-config --variable=pcfiledir openssl3)
if [ -z "$openssl3_pcfiledir" ]; then
return
fi
local pcfiles=("libssl" "libcrypto" "openssl")
for pcfile in "${pcfiles[@]}"; do
if [ ! -f "$openssl3_pcfiledir/${pcfile}3.pc" ]; then
echo "pkgconfig has found openssl3 but the file $openssl3_pcfiledir/${pcfile}3.pc does't exist"
return
fi
done
local new_pkgconfig_dir="$ffmpeg_source_dir/openssl3_pkgconfig"
mkdir -p "$new_pkgconfig_dir"
for pcfile in "${pcfiles[@]}"; do
sed -E '/^Requires(\.private)?:/s/ (libssl|libcrypto)3/ \1/g;' "$openssl3_pcfiledir/${pcfile}3.pc" > "$new_pkgconfig_dir/${pcfile}.pc"
done
pkgconfig_path="$new_pkgconfig_dir:$pkgconfig_path"
}
build_ffmpeg() {
local build_dir="$ffmpeg_source_dir/build"
mkdir -p "$build_dir"
pushd "$build_dir"
# shellcheck disable=SC2086
PKG_CONFIG_PATH="$pkgconfig_path" "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix"
# shellcheck disable=
# on RHEL patchelf is not visible under sudo, so we install to a temporary directory
make install DESTDIR="$build_dir/installed" -j
popd
}
ffmpeg_config_options+=" --enable-openssl"
fix_openssl3_pc_files
echo "pkg-config openssl version: $(pkg-config --modversion openssl)"
install_ff_nvcodec_headers
build_ffmpeg
output_dir="$ffmpeg_source_dir/build/installed/$prefix"
if [ "$build_type" == "shared" ]; then
fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh"
"$fix_dependencies" "$output_dir"
fi
sudo mv "$output_dir" "/usr/local"
set_ffmpeg_dir_env_var "FFMPEG_DIR" "$prefix"

View File

@@ -26,12 +26,12 @@ DownloadAndExtract () {
aarch64le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake"
armv7le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake"
x8664_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake"
QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/"
QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/710/"
targetFolder="/opt/"
folderName="qnx710"
targetPath="$targetFolder$folderName"
qemuTargetPath="$HOME/QNX"
qemuTargetPath="$HOME/QNX710"
qemuIpAddress="172.31.1.10"
export qemuNetwork="172.31.1.1"
qemuSSHuser="root"
@@ -81,7 +81,7 @@ fi
# Set env variables
SetEnvVar "QNX_710" "$targetPath"
SetEnvVar "QNX_QEMU" "$qemuTargetPath"
SetEnvVar "QNX_710_QEMU" "$qemuTargetPath"
SetEnvVar "QNX_QEMU_IPADDR" "$qemuIpAddress"
SetEnvVar "QNX_QEMU_SSH" "$qemuSSHurl"
SetEnvVar "QNX_QEMU_LD_LIBRARY_PATH" "$qemuLDpath"

View File

@@ -26,12 +26,12 @@ DownloadAndExtract () {
aarch64le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake"
armv7le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake"
x8664_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake"
QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/"
QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/800/"
targetFolder="/opt/"
folderName="qnx800"
targetPath="$targetFolder$folderName"
qemuTargetPath="$HOME/QNX"
qemuTargetPath="$HOME/QNX800"
qemuIpAddress="172.31.1.10"
export qemuNetwork="172.31.1.1"
qemuSSHuser="root"
@@ -43,9 +43,9 @@ if [ ! -d "$targetFolder" ]; then
fi
# QNX SDP
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-linux-20240510.tar.xz"
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-windows-linux-20240930.tar.xz"
targetFile="qnx800.tar.xz"
sha1="93245a5bc11b88563328f0763573942fd25b5e18"
sha1="a86d6e001e4ad46f50ed430fb85e8230e730751b"
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
sudo cp "$aarch64le_toolchain" "$targetPath"
@@ -81,5 +81,11 @@ fi
# Set env variables
SetEnvVar "QNX_800" "$targetPath"
SetEnvVar "QNX_800_QEMU" "$qemuTargetPath"
# These are common defines with QNX710
SetEnvVar "QNX_QEMU_IPADDR" "$qemuIpAddress"
SetEnvVar "QNX_QEMU_SSH" "$qemuSSHurl"
SetEnvVar "QNX_QEMU_LD_LIBRARY_PATH" "$qemuLDpath"
echo "QNX SDP = 8.0.0" >> ~/versions.txt

View File

@@ -0,0 +1,19 @@
# Need to add all testserver names statically
# as current Docker uses Multicast DNS (mDNS) (avahi)
# Which does not work with QNX qemu
172.31.1.1 apache2 apache2.test-net.qt.local
172.31.1.1 squid squid.test-net.qt.local
172.31.1.1 vsftpd vsftpd.test-net.qt.local
172.31.1.1 ftp-proxy ftp-proxy.test-net.qt.local
172.31.1.1 danted danted.test-net.qt.local
172.31.1.1 cyrus cyrus.test-net.qt.local
172.31.1.1 echo echo.test-net.qt.local
172.31.1.1 iptables iptables.test-net.qt.local
# For network test server which is still used on some test
# like networkselftest for local dns resolution
172.31.1.1 qt-test-server
# QtCoap testservers
172.31.1.1 californium californium.test-net.qt.local
172.31.1.1 freecoap freecoap.test-net.qt.local

View File

@@ -0,0 +1,2 @@
search test-net.qt.local
nameserver 172.31.1.1

View File

@@ -0,0 +1,46 @@
#!/bin/bash
function brief()
{
echo "--nfs=[<mount>|no]"
}
function help()
{
brief
cat <<EOF
If yes, the given nfs share "<mount>" will be mounted at <mount>
The default is no.
EOF
}
function validate() {
exit 0
}
function configure()
{
if [ "$OPT_NFS_QT" != no ]; then
cat >output/option_files/post_start.opt_nfs <<EOF
echo "---> Starting NFS"
STARTU_P(fs_nfs3_t,__FS_NFS3_ID__) fs-nfs3 -t 172.31.1.1:$OPT_NFS_QT $OPT_NFS_QT
EOF
fi
exit 0
}
case "$1" in
brief)
brief;;
help)
help;;
validate)
validate;;
configure)
configure;;
default)
echo no;;
esac

View File

@@ -0,0 +1,88 @@
OPT_ABLELOCK='no'
DEF_OPT_ABLELOCK='no'
OPT_ARCH='x86_64'
DEF_OPT_ARCH='x86_64'
OPT_ASLR='yes'
DEF_OPT_ASLR='yes'
OPT_CERTICOM='no'
DEF_OPT_CERTICOM='no'
OPT_CRYPTODEV='no'
DEF_OPT_CRYPTODEV='no'
OPT_DATA_INODES='3000'
DEF_OPT_DATA_INODES='3000'
OPT_DATA_SIZE='512'
DEF_OPT_DATA_SIZE='60'
OPT_EXTRA_DIRS='none'
DEF_OPT_EXTRA_DIRS='none'
OPT_GRAPHICS='no'
DEF_OPT_GRAPHICS='no'
OPT_GUEST='none'
DEF_OPT_GUEST='none'
OPT_HOSTNAME='qnx_QEMU_CI'
DEF_OPT_HOSTNAME='noname'
OPT_IP='172.31.1.69'
DEF_OPT_IP='dhcp'
OPT_MACADDR='52:54:00:f1:c4:92'
DEF_OPT_MACADDR='generate'
OPT_NFS='no'
DEF_OPT_NFS='no'
OPT_NFS_QT='/home/qt/work'
DEF_OPT_NFS_QT='/home/qt/work'
OPT_PATHTRUST='no'
DEF_OPT_PATHTRUST='no'
OPT_PERL='no'
DEF_OPT_PERL='no'
OPT_POLICY='none'
DEF_OPT_POLICY='none'
OPT_PYTHON='no'
DEF_OPT_PYTHON='no'
OPT_QAUDIT='no'
DEF_OPT_QAUDIT='no'
OPT_QFIM='no'
DEF_OPT_QFIM='no'
OPT_QTD='no'
DEF_OPT_QTD='no'
OPT_QVM='no'
DEF_OPT_QVM='no'
OPT_REPOS='$QNX_STAGE_nto:$QNX_TARGET'
DEF_OPT_REPOS='$QNX_STAGE_nto:$QNX_TARGET'
OPT_ROOT='no'
DEF_OPT_ROOT='no'
OPT_SAFE='no'
DEF_OPT_SAFE='no'
OPT_SECPOL='no'
DEF_OPT_SECPOL='no'
OPT_SECURE_DATA='no'
DEF_OPT_SECURE_DATA='no'
OPT_SECURE_PROCFS='yes'
DEF_OPT_SECURE_PROCFS='yes'
OPT_SLM='no'
DEF_OPT_SLM='no'
OPT_SSHD_PREGEN='yes'
DEF_OPT_SSHD_PREGEN='yes'
OPT_SSH_IDENT='prompt'
DEF_OPT_SSH_IDENT='prompt'
OPT_SYS_INODES='1000'
DEF_OPT_SYS_INODES='1000'
OPT_SYS_SIZE='20'
DEF_OPT_SYS_SIZE='20'
OPT_TCG='no'
DEF_OPT_TCG='no'
OPT_TELNET='no'
DEF_OPT_TELNET='no'
OPT_TOMCRYPT='no'
DEF_OPT_TOMCRYPT='no'
OPT_TOYBOX='no'
DEF_OPT_TOYBOX='no'
OPT_TYPE='qemu'
DEF_OPT_TYPE='qemu'
OPT_TZ='UTC0'
DEF_OPT_TZ='UTC0'
OPT_UNION='yes'
DEF_OPT_UNION='yes'
OPT_USB='no'
DEF_OPT_USB='no'
OPT_VALGRIND='no'
DEF_OPT_VALGRIND='no'
OPT_ZONEINFO='no'
DEF_OPT_ZONEINFO='no'

View File

@@ -0,0 +1,25 @@
# local/snippets/data_files.custom
# Placeholder for local list of files to add to data partition
home/root/.ssh/environment = {
TERM=qansi
PATH=__IFS_PATH__:/system/xbin:.
#LD_LIBRARY_PATH=__PROC_LIB__:/home/qt/work/install/target/lib
#QSG_RHI_BACKEND=software
#QT_QPA_PLATFORM=offscreen
}
[uid=0 gid=0 dperms=755 type=dir] var/share
var/share/zoneinfo=usr/share/zoneinfo
[uid=0 gid=0 dperms=755 type=dir] var/share/fonts
var/etc/fontconfig/fonts.conf=etc/fontconfig/fonts.conf
var/share/fonts=usr/share/fonts
var/etc/hosts=local/misc_files/etc/hosts
var/etc/resolv.conf=local/misc_files/etc/resolv.conf
var/etc/nsswitch.conf=etc/nsswitch.conf
[uid=0 gid=0 dperms=755 type=dir] var/etc/ssl/certs
var/share/ca-certificates=local/misc_files/ca-certificates
var/etc/ssl/certs=local/misc_files/etc/ssl/certs

View File

@@ -0,0 +1,12 @@
# Add root HOME env variable
procmgr_symlink /data/home/root/ /home/root
HOME=/home/root
# Needed for timezone related tests
TZ=Europe/Oslo
procmgr_symlink /data/var/share /usr/share
procmgr_symlink /data/var/share/zoneinfo/Europe/Oslo /data/var/etc/localtime
# fontconfig
#procmgr_symlink /data/var/etc/fontconfig/fonts.conf /etc/fontconfig/fonts.conf
#procmgr_symlink /data/var/share/fonts /usr/share/fonts

View File

@@ -0,0 +1,3 @@
root:x:0:0:Superuser:/data/home/root:/bin/sh
sshd:x:15:6:sshd:/data/var/chroot/sshd:/bin/false
qnxuser:x:__QNXUSER_UID__:__QNXUSER_GID__:User9:/data/home/qnxuser:/bin/sh

View File

@@ -0,0 +1,29 @@
# local/snippets/post_start.custom
# Commands executed from post_startup.sh. Executed at the end of system startup whether slm is in use
# or not
#
# To allow resource managers to be run properly with and without security policies, command lines
# should be written in one of the following forms:
#
# START(resmgr_t) resmgr DROPROOT(resmgr_uid)
# STARTU(resmgr_t, resmgr_uid) resmgr
# Where resmgr_t is the security type name (arbitrary but usually the name of the resmgr with _t appended),
# and resmgr_uid is the id to use for both uid and gid. DROPROOT is used only in cases where the
# resource manager supports a -U option for switching to non-root.
echo "---> Starting Filesystem event manager (fsevmgr)"
STARTU_P(fsevmg_t,__FSEVMG_ID__) fsevmgr -d -F __DEVB_ID__ -N __DEVB_ID__
echo "---> Remove large fonts"
rm -rf /data/var/share/fonts/NotoSansCJK*
rm -rf /data/var/share/fonts/NotoSansMonoCJK*
echo "---> Create fontconfig cache"
fc-cache &
echo "---> Restart ssh daemon"
slay sshd
/system/xbin/sshd -f /system/data/etc/ssh/sshd_config
# Add default route so QNX knows where to send
# requests for unknown network
echo "---> Add default route"
route add default 172.31.1.1

View File

@@ -0,0 +1,2 @@
root::1475759054:0:0
qnxuser:@S@f0J4xZibUbKllVqPMzetauCHLRi+9C8wTsxYXE5r7Pfhda5FI7zkObEmKogy01pAX5f/1niG2S2eLXbLs3xoww==@YjBmOTQwNzZiNzYwMzY3N2RkMGQ1NTZmNzA5MDFhMWY=:1476890273:0:0

View File

@@ -0,0 +1,65 @@
# local/snippets/system_files.custom
# Placeholder for local list of files to add to system partition
[perms=444] data/etc/ssh/sshd_config={
HostKey /data/var/ssh/ssh_host_rsa_key
HostKey /data/var/ssh/ssh_host_ed25519_key
AuthorizedKeysFile .ssh/authorized_keys
PermitUserEnvironment yes
AuthenticationMethods none
PermitEmptyPasswords yes
PermitRootLogin yes
PidFile none
Subsystem sftp /system/xbin/sftp-server
}
# libraries Qt requires
lib/libicuuc.so.67=usr/lib/libicuuc.so.67
lib/libicudata.so.67=usr/lib/libicudata.so.67
lib/libicui18n.so.67=usr/lib/libicui18n.so.67
lib/libGLESv2.so.1=usr/lib/libGLESv2.so.1
lib/libEGL.so.1=usr/lib/libEGL.so.1
lib/libz.so.2=usr/lib/libz.so.2
lib/libzstd.so.1=usr/lib/libzstd.so.1
lib/libxml2.so.2=usr/lib/libxml2.so.2
lib/libfreetype.so.24=usr/lib/libfreetype.so.24
lib/libbz2.so.1=usr/lib/libbz2.so.1
lib/liblzma.so.5=usr/lib/liblzma.so.5
lib/libdbus-1.so=usr/lib//libdbus-1.so
lib/libdbus-1.so.22=usr/lib//libdbus-1.so.22
lib/libbacktrace.so.1=lib/libbacktrace.so.1
lib/libm.so.3=lib/libm.so.3
#############################################
### Image support
#############################################
etc/system/config/img.conf=etc/system/config/img.conf
lib/libpng16.so.16=usr/lib/libpng16.so.16
lib/libjpeg.so.9=lib/libjpeg.so.9
lib/libimg.so.1=lib/libimg.so.1
lib/dll/img_codec_bmp.so=lib/dll/img_codec_bmp.so
lib/dll/img_codec_gif.so=lib/dll/img_codec_gif.so
lib/dll/img_codec_jpg.so=lib/dll/img_codec_jpg.so
lib/dll/img_codec_png.so=lib/dll/img_codec_png.so
lib/dll/img_codec_sgi.so=lib/dll/img_codec_sgi.so
lib/dll/img_codec_tga.so=lib/dll/img_codec_tga.so
lib/dll/img_codec_tif.so=lib/dll/img_codec_tif.so
# for inotify
xbin/fsevmgr=sbin/fsevmgr
##############################################
### Sreen support
##############################################
lib/libscreen.so.1=usr/lib/libscreen.so.1
# for fontconfig
lib/libfontconfig.so.1=usr/lib/libfontconfig.so.1
xbin/fc-cache=bin/fc-cache
xbin/fc-match=local/misc_files/fc-match
# network
lib/libssl.so=usr/lib/libssl.so
xbin/nslookup=usr/bin/nslookup
xbin/unbound=sbin/unbound
xbin/curl=usr/bin/curl

View File

@@ -0,0 +1 @@
#define __FSEVMG_ID__ 50

View File

@@ -21,12 +21,12 @@ InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder"
SetEnvVar "VXWORKS_HOME" "/opt/vxworks"
SetEnvVar "VXWORKS_SSH" "WindRiver@172.31.1.10"
VXWORKS_BUILD_VER="07-11-2024"
VXWORKS_BUILD_VER="18-12-2024"
######### VXworks toolchain #########
# Installs to /opt/fsl_imx6_2_0_6_2_VSB
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_vsb_${VXWORKS_BUILD_VER}.tar.gz"
AltUrl=""
sha1="f4745e9b84a781fe2c0a44abee189fcdf1c2c100"
sha1="6b5a264d08a9d34b03ff13cb28e690c5c5178569"
targetFolder="/opt/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
SetEnvVar "WIND_CC_SYSROOT" "/opt/fsl_imx6_2_0_6_2_VSB"
@@ -35,20 +35,20 @@ SetEnvVar "WIND_CC_SYSROOT" "/opt/fsl_imx6_2_0_6_2_VSB"
# Installs to /opt/fsl_imx6_2_0_6_2_VIP_QEMU
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_vip_${VXWORKS_BUILD_VER}.tar.gz"
AltUrl=""
sha1="186d7da071005d67d898a56cf57b7bec664bb89e"
sha1="117af91a6c93ac89727f8d8bfe4cf840ce4485c9"
targetFolder="/opt/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
# Installs to /opt/itl_generic_skylake_VSB
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_intel_vsb_${VXWORKS_BUILD_VER}.tar.gz"
AltUrl=""
sha1="d5b76b92099dff0304ab97901ff1ad683dd6153d"
sha1="c1b2f2e2903540e8005237ce3641fc043ced0ddf"
targetFolder="/opt/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
# Installs to /opt/itl_generic_skylake_VIP_QEMU
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_intel_vip_${VXWORKS_BUILD_VER}.tar.gz"
AltUrl=""
sha1="1943696ead5d13fba92a5af416bd3f599395fe24"
sha1="2fa12dac1f1460019a418da49b095c743a9fe282"
targetFolder="/opt/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""

View File

@@ -20,11 +20,11 @@ toolsVersion="2.1"
# toolsFile dertermines tools version
toolsFile="commandlinetools-mac-6609375_latest.zip"
ndkVersionLatest="r26b"
ndkVersionLatest="r27c"
ndkVersionDefault="$ndkVersionLatest"
sdkBuildToolsVersion="34.0.0"
sdkBuildToolsVersion="35.0.1"
# this is compile sdk version
sdkApiLevel="android-34"
sdkApiLevel="android-35"
toolsSourceFile="$basePath/$toolsFile"

View File

@@ -1,23 +1,71 @@
#!/bin/bash
#Copyright (C) 2023 The Qt Company Ltd
#Copyright (C) 2025 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
# Will install homebrew package manager for macOS.
# WARNING: Requires commandlinetools
set -e
INSTALLTYPE="$1"
VERSION="$2"
CHECKSUM="$3"
DEFAULT_PKG_VERSION="4.4.21"
DEFAULT_PKG_VERSION_CHECKSUM="cd83c4123d5db7d07eb3042f1c785ed7f599183c5c542040bc6abfa722583861"
DEFAULT_GIT_VERSION="deb02e27d99fd2cb27ae16760e3a5272b612fded"
DEFAULT_GIT_VERSION_CHECKSUM="a30b9fbf0d5c2cff3eb1d0643cceee30d8ba6ea1bb7bcabf60d3188bd62e6ba6"
source "$(dirname "$0")"/../../common/unix/DownloadURL.sh
source "$(dirname "$0")"/../../common/unix/SetEnvVar.sh
installPkg() {
if [ "$VERSION" == "" ]; then
VERSION="$DEFAULT_PKG_VERSION"
CHECKSUM="$DEFAULT_PKG_VERSION_CHECKSUM"
fi
DownloadURL \
"http://ci-files01-hki.ci.qt.io/input/mac/homebrew/$VERSION/Homebrew-$VERSION.pkg" \
"https://github.com/Homebrew/brew/releases/download/$VERSION/Homebrew-$VERSION.pkg" \
"$CHECKSUM" \
"/tmp/Homebrew-$VERSION.pkg"
DownloadURL \
http://ci-files01-hki.ci.qt.io/input/mac/homebrew-install.c744a716f9845988d01e6e238eee7117b8c366c9.rb \
https://raw.githubusercontent.com/Homebrew/install/c744a716f9845988d01e6e238eee7117b8c366c9/install \
b9782cc0b550229de77b429b56ffce04157e60486ab9df00461ccf3dad565b0a \
/tmp/homebrew_install
/usr/bin/ruby /tmp/homebrew_install </dev/null
sudo installer -pkg "/tmp/Homebrew-$VERSION.pkg" -target /
# Add homebrew to PATH
SetEnvVar "PATH" "/opt/homebrew/bin:\$PATH"
# No need to manually do `brew update`, the homebrew installer script does it.
### brew update
echo "Homebrew = $VERSION" >> ~/versions.txt
}
installGit() {
if [ "$VERSION" == "" ]; then
VERSION="$DEFAULT_GIT_VERSION"
CHECKSUM="$DEFAULT_GIT_VERSION_CHECKSUM"
fi
export HOMEBREW_BREW_GIT_REMOTE="https://git.intra.qt.io/external-repository-mirrors/homebrew/brew.git" # put your Git mirror of Homebrew/brew here
export HOMEBREW_CORE_GIT_REMOTE="https://git.intra.qt.io/external-repository-mirrors/homebrew/homebrew-core.git" # put your Git mirror of Homebrew/homebrew-core here
DownloadURL \
"https://git.intra.qt.io/external-repository-mirrors/homebrew/install/-/raw/$VERSION/install.sh" \
"https://git.intra.qt.io/external-repository-mirrors/homebrew/install/-/raw/$VERSION/install.sh" \
$CHECKSUM \
/tmp/homebrew_install.sh
DownloadURL "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" "/Users/qt/pw"
{ pw=$(cat "/Users/qt/pw"); } 2> /dev/null
sudo chmod 755 /tmp/homebrew_install.sh
{ (echo "$pw" | /tmp/homebrew_install.sh); } 2> /dev/null
rm -f "/Users/qt/pw"
}
if [ "$INSTALLTYPE" == "GIT" ]; then
installGit
else
installPkg
fi
# Disable non-ascii output for homebrew to make logs more readable
SetEnvVar "HOMEBREW_NO_COLOR" "1"
SetEnvVar "HOMEBREW_NO_EMOJI" "1"
SetEnvVar "HOMEBREW_NO_ENV_HINTS" "1"

View File

@@ -1,30 +0,0 @@
#!/usr/bin/env bash
# Copyright (C) 2021 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
# Will install homebrew package manager for macOS.
# WARNING: Requires commandlinetools
set -e
. "$(dirname "$0")"/../unix/DownloadURL.sh
. "$(dirname "$0")"/../unix/SetEnvVar.sh
DownloadURL \
http://ci-files01-hki.ci.qt.io/input/mac/homebrew/be699a568315f57b65519df576d7fc5840b8a5cc/install.sh \
https://raw.githubusercontent.com/Homebrew/install/be699a568315f57b65519df576d7fc5840b8a5cc/install \
f20e4a577f0cafbab5a44b4d239886d725b3b985 \
/tmp/homebrew_install.sh
DownloadURL "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" "/Users/qt/pw"
{ pw=$(cat "/Users/qt/pw"); } 2> /dev/null
sudo chmod 755 /tmp/homebrew_install.sh
{ (echo "$pw" | /tmp/homebrew_install.sh); } 2> /dev/null
rm -f "/Users/qt/pw"
# No need to manually do `brew update`, the homebrew installer script does it.
### brew update
SetEnvVar "PATH" "\$PATH:/opt/homebrew/bin"

View File

@@ -0,0 +1,66 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
# This script builds and installs FFmpeg shared libs
set -ex
os="$1"
if [ "$os" != "macos" ] && [ "$os" != "macos-universal" ]; then
>&2 echo "invalid os paremeter: $os"
exit 1
fi
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
ffmpeg_source_dir=$(download_ffmpeg)
ffmpeg_name=$(basename "$ffmpeg_source_dir")
ffmpeg_config_options=$(get_ffmpeg_config_options "shared")
prefix="/usr/local/$ffmpeg_name"
build_ffmpeg() {
local arch="$1"
local build_dir="$ffmpeg_source_dir/build/$arch"
mkdir -p "$build_dir"
pushd "$build_dir"
# shellcheck disable=SC2086
if [ -n "$arch" ]; then
local cc="clang -arch $arch"
"$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix" --enable-cross-compile --arch="$arch" --cc="$cc"
else
"$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix"
fi
# shellcheck disable=
make install DESTDIR="$build_dir/installed" -j4
popd
}
brew install yasm
export MACOSX_DEPLOYMENT_TARGET=12
fix_relative_dependencies="${BASH_SOURCE%/*}/../macos/fix_relative_dependencies.sh"
if [ "$os" == "macos" ]; then
build_ffmpeg
install_dir="$ffmpeg_source_dir/build/installed"
"$fix_relative_dependencies" "$install_dir/usr/local/$ffmpeg_name/lib"
sudo mv "$install_dir/usr/local/$ffmpeg_name" "/usr/local"
else
build_ffmpeg "arm64"
build_ffmpeg "x86_64"
arm64_install_dir="$ffmpeg_source_dir/build/arm64/installed"
x86_64_install_dir="$ffmpeg_source_dir/build/x86_64/installed"
"$fix_relative_dependencies" "$arm64_install_dir/usr/local/$ffmpeg_name/lib"
"$fix_relative_dependencies" "$x86_64_install_dir/usr/local/$ffmpeg_name/lib"
sudo rm -rf "/usr/local/$ffmpeg_name" # lipo fails upon 2nd run
sudo "${BASH_SOURCE%/*}/../macos/makeuniversal.sh" "$arm64_install_dir" "$x86_64_install_dir"
fi
set_ffmpeg_dir_env_var "FFMPEG_DIR" "/usr/local/$ffmpeg_name"

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Copyright (C) 2018 The Qt Company Ltd.
# Copyright (C) 2025 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
# Install libiodbc
@@ -11,12 +11,9 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
brew install --formula "${BASH_SOURCE%/*}/libiodbc.rb" "$@"
# CPLUS_INCLUDE_PATH is set so clang and configure can find libiodbc
read -r -a arr <<< "$(brew list --versions libiodbc)"
version=${arr[1]}
SetEnvVar "CPLUS_INCLUDE_PATH" "/usr/local/Cellar/libiodbc/$version/include${CPLUS_INCLUDE_PATH:+:}${CPLUS_INCLUDE_PATH}"
SetEnvVar "LIBRARY_PATH" "/usr/local/Cellar/libiodbc/$version/lib${LIBRARY_PATH:+:}${LIBRARY_PATH}"
SetEnvVar "ODBC_ROOT" "$(brew --prefix libiodbc)"
echo "libiodbc = $version" >> ~/versions.txt

View File

@@ -37,5 +37,5 @@ umount "$mountpoint"
echo "Removing $packageName"
rm "/tmp/$packageName"
SetEnvVar "POSTGRESQLBINPATH" "/Applications/Postgres.app/Contents/Versions/$psqlVersion/bin"
SetEnvVar "PostgreSQL_ROOT" "/Applications/Postgres.app/Contents/Versions/$psqlVersion"
echo "PostgreSQL = $psqlVersion ($psqlAppVersion)" >> ~/versions.txt

View File

@@ -25,5 +25,6 @@ set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch})
set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntoaarch64-strip)
set(CMAKE_AR $ENV{QNX_HOST}/usr/bin/ntoaarch64-ar)
set(CMAKE_OBJCOPY $ENV{QNX_HOST}/usr/bin/ntoaarch64-objcopy)
set(CMAKE_SYSROOT $ENV{QNX_TARGET})

View File

@@ -25,5 +25,6 @@ set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch})
set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntoarmv7-strip)
set(CMAKE_AR $ENV{QNX_HOST}/usr/bin/ntoarmv7-ar)
set(CMAKE_OBJCOPY $ENV{QNX_HOST}/usr/bin/ntoarmv7-objcopy)
set(CMAKE_SYSROOT $ENV{QNX_TARGET})

View File

@@ -25,5 +25,6 @@ set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch})
set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntox86_64-strip)
set(CMAKE_AR $ENV{QNX_HOST}/usr/bin/ntox86_64-ar)
set(CMAKE_OBJCOPY $ENV{QNX_HOST}/usr/bin/ntox86_64-objcopy)
set(CMAKE_SYSROOT $ENV{QNX_TARGET})

View File

@@ -15,10 +15,12 @@ if [ "$(uname -s)" = "Darwin" ]; then
fi
ffmpeg_libs=("avcodec" "avdevice" "avfilter" "avformat" "avutil" "swresample" "swscale")
stub_prefix="Qt6FFmpegStub-"
for lib_name in "${ffmpeg_libs[@]}"; do
lib_path="$lib_dir/lib$lib_name.so"
pkg_config_file_path="$lib_dir/pkgconfig/lib$lib_name.pc"
stubs_required_versions=""
if [ ! -f "$lib_path" ]; then
echo "FFmpeg lib $lib_path hasn't been found"
@@ -30,21 +32,46 @@ for lib_name in "${ffmpeg_libs[@]}"; do
exit 1
fi
read_needed_deps() {
readelf -d "$lib_path" | grep '(NEEDED)'
}
while read -r line; do
if [[ $line =~ .*\[(lib((ssl|crypto|va|va-x11|va-drm)(_3)?\.so(\.[0-9]+)*))\].* ]]; then
stub_name="libQt6FFmpegStub-${BASH_REMATCH[2]}"
if [[ ${BASH_REMATCH[4]} == "_3" ]]; then
stub_name="${stub_name/_3/}" # Remove "_3" from stub_name
stub_name="lib$stub_prefix${BASH_REMATCH[2]}"
android_ssl_suffix=${BASH_REMATCH[4]}
soversion=${BASH_REMATCH[5]}
if [ -n "$android_ssl_suffix" ] && [ -n "$soversion" ]; then
>&2 echo "both, android_ssl_suffix $android_ssl_suffix and soversion $soversion are found"
continue
fi
if [[ "$android_ssl_suffix" == "_3" ]]; then
stub_name="${stub_name/_3/}" # Remove "_3" from stub_name
stubs_required_versions+=" ${stub_name/.so/ = 3},"
elif [[ -n "$soversion" ]]; then
stubs_required_versions+=" ${stub_name/.so./ = },"
fi
if [[ -n "$additional_suffix" ]]; then
stub_name="${stub_name%%.*}${additional_suffix}.${stub_name#*.}" # Add additional_suffix
fi
patchelf --replace-needed "${BASH_REMATCH[1]}" "${stub_name}" $lib_path
fi
done <<< "$(readelf -d $lib_path | grep '(NEEDED)' )"
sed -i.bak -E '/^Libs.private:/s/ -l(va|va-x11|va-drm|ssl|crypto)/ -lQt6FFmpegStub-\1/g;' $pkg_config_file_path && rm -f ${pkg_config_file_path}.bak
patchelf --replace-needed "${BASH_REMATCH[1]}" "${stub_name}" "$lib_path"
fi
done <<< "$(read_needed_deps)"
sed_cmd="/^Libs.private:/s/ -l(va|va-x11|va-drm|ssl|crypto)/ -l$stub_prefix\\1/g;"
if [[ -n "$stubs_required_versions" ]]; then
stubs_required_versions="${stubs_required_versions%?}" # remove the last comma
sed_cmd+="s/(^Requires.private:[^,]*(,)?.*$)/\\1\\2$stubs_required_versions/g;"
fi
# sed -i doesn't work without parameter on macOS 13
sed -i.bak -E "$sed_cmd" "$pkg_config_file_path" && rm -f "${pkg_config_file_path}.bak"
if [[ "$set_rpath" == "yes" ]]; then
patchelf --set-rpath '$ORIGIN' $lib_path
# shellcheck disable=SC2016
patchelf --set-rpath '$ORIGIN' "$lib_path"
fi
done

View File

@@ -27,6 +27,9 @@ function InstallFromCompressedFileFromURL {
DownloadURL "$url" "$url_alt" "$expectedSha1" "$targetFile"
echo "Uncompress $targetFile"
case $extension in
"tgz")
tar -xzf "$targetFile" --directory "$targetDirectory"
;;
"tar.gz")
tar -xzf "$targetFile" --directory "$targetDirectory"
;;

View File

@@ -8,15 +8,15 @@ source "${BASH_SOURCE%/*}/SetEnvVar.sh"
# shellcheck source=./DownloadURL.sh
source "${BASH_SOURCE%/*}/DownloadURL.sh"
version="3.1.56"
version="3.1.70"
versionNode="v16.20.0"
tarBallVersion="${version//./_}"
if uname -a | grep -q Darwin; then
tarBallPackage="emsdk_macos_${tarBallVersion}.tar.gz"
sha="24c49db971da4fd7c68f6b71984c3d7775fdfb84"
sha="eafd7b96ab12d84183d2eaa62e8d39bb12c252bf"
else
tarBallPackage="emsdk_linux_${tarBallVersion}.tar.gz"
sha="410c93bb2ab3b244190c2cb5f0ff1ce5d6ac4eb5"
sha="047a3da9048edc71fb56af544c4bb2448d6c0644"
fi
cacheUrl="https://ci-files01-hki.ci.qt.io/input/emsdk/${tarBallPackage}"
target="/tmp/${tarBallPackage}"

View File

@@ -0,0 +1,67 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
download_ffmpeg() {
local version="${1:-n7.1.1}"
local sha1="${2:-479291e8555fe036ca760f95cea829a21e9b8365}"
local ffmpeg_name="FFmpeg-$version"
local target_dir="$HOME"
local ffmpeg_source_dir="$target_dir/$ffmpeg_name"
if [ ! -d "$ffmpeg_source_dir" ]; then
local url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
local url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
local app_prefix=""
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix" > /dev/null
fi
echo "$ffmpeg_source_dir"
}
get_ffmpeg_config_options() {
local build_type="$1"
local result
result=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
if [ "$build_type" != "static" ]; then
result+=" --enable-shared --disable-static"
fi
echo "$result"
}
get_ffmpeg_build_type() {
local result="${1:-shared}"
if [ "$result" != "static" ] && [ "$result" != "shared" ]; then
>&2 echo "Invalid build_type: $result. The shared build type will be used."
result="shared"
fi
echo "$result"
}
set_ffmpeg_dir_env_var() {
local envvar="$1"
local dir="$2"
if [ ! -d "$dir" ]; then
>&2 echo "the FFmpeg dir $dir doesn't exist"
exit 1
fi
# minimal validity check, more checks can be added
if [ ! -d "$dir/include" ] || [ ! -d "$dir/lib" ]; then
>&2 echo "The FFmpeg dir $dir is not valid"
exit 1
fi
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
SetEnvVar "$envvar" "$dir"
}

View File

@@ -4,123 +4,117 @@
# This script will build and install FFmpeg shared libs
set -ex
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
os="$1"
# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
version="n7.1"
url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
sha1="f008a93710a7577e3f85a90f4b632cc615164712"
url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
ffmpeg_name="FFmpeg-$version"
target_dir="$HOME"
app_prefix=""
ffmpeg_source_dir="$target_dir/$ffmpeg_name"
if [ ! -d "$ffmpeg_source_dir" ];
then
InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix"
fi
# Optional parameter to set output installation directory. Useful for local builds.
target_install_dir_param="$2"
build_type=$(get_ffmpeg_build_type)
ffmpeg_source_dir=$(download_ffmpeg)
build_ffmpeg_android() {
local target_arch=$1
local target_dir=$2
target_arch=$1
target_dir=$2
shared="${3:-no}"
sudo mkdir -p "$target_dir"
sudo mkdir -p "$target_dir"
local openssl_include="$OPENSSL_ANDROID_HOME_DEFAULT/include"
local openssl_libs
local libs_prefix
local target_cpu
local target_toolchain_arch
openssl_include="$OPENSSL_ANDROID_HOME_DEFAULT/include"
openssl_libs=""
libs_prefix=""
if [ "$target_arch" == "x86_64" ]; then
target_toolchain_arch="x86_64-linux-android"
target_arch=x86_64
target_cpu=x86-64
openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86_64"
libs_prefix="_x86_64"
elif [ "$target_arch" == "x86" ]; then
target_toolchain_arch="i686-linux-android"
target_arch=x86
target_cpu=i686
openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86"
libs_prefix="_x86"
elif [ "$target_arch" == "arm64" ]; then
target_toolchain_arch="aarch64-linux-android"
target_arch=aarch64
target_cpu=armv8-a
openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/arm64-v8a"
libs_prefix="_arm64-v8a"
fi
if [ "$target_arch" == "x86_64" ]; then
target_toolchain_arch="x86_64-linux-android"
target_arch=x86_64
target_cpu=x86-64
openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86_64"
libs_prefix="_x86_64"
elif [ "$target_arch" == "x86" ]; then
target_toolchain_arch="i686-linux-android"
target_arch=x86
target_cpu=i686
openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86"
libs_prefix="_x86"
elif [ "$target_arch" == "arm64" ]; then
target_toolchain_arch="aarch64-linux-android"
target_arch=aarch64
target_cpu=armv8-a
openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/arm64-v8a"
libs_prefix="_arm64-v8a"
fi
ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so"
ln -Ffs "${openssl_libs}/libssl_3.so" "${openssl_libs}/libssl.so"
ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so"
ln -Ffs "${openssl_libs}/libssl_3.so" "${openssl_libs}/libssl.so"
api_version=24
local api_version=24
ndk_root=$ANDROID_NDK_ROOT_DEFAULT
if uname -a |grep -q "Darwin"; then
ndk_host=darwin-x86_64
else
ndk_host=linux-x86_64
fi
local ndk_root=$ANDROID_NDK_ROOT_DEFAULT
local ndk_host
if uname -a |grep -q "Darwin"; then
ndk_host=darwin-x86_64
else
ndk_host=linux-x86_64
fi
toolchain=${ndk_root}/toolchains/llvm/prebuilt/${ndk_host}
toolchain_bin=${toolchain}/bin
sysroot=${toolchain}/sysroot
cxx=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang++
cc=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang
ar=${toolchain_bin}/llvm-ar
ranlib=${toolchain_bin}/llvm-ranlib
local toolchain=${ndk_root}/toolchains/llvm/prebuilt/${ndk_host}
local toolchain_bin=${toolchain}/bin
local sysroot=${toolchain}/sysroot
local cxx=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang++
local cc=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang
local ar=${toolchain_bin}/llvm-ar
local ranlib=${toolchain_bin}/llvm-ranlib
local ffmpeg_config_options
ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
ffmpeg_config_options+=" --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera"
if [[ "$shared" == "yes" ]]; then
ffmpeg_config_options+=" --enable-shared --disable-static"
fi
ffmpeg_config_options+=" --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/"
ffmpeg_config_options+=" --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}"
ffmpeg_config_options+=" --extra-cflags=-I${openssl_include} --extra-ldflags=-L${openssl_libs}"
ffmpeg_config_options=$(get_ffmpeg_config_options $build_type)
ffmpeg_config_options+=" --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera"
ffmpeg_config_options+=" --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/"
ffmpeg_config_options+=" --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}"
ffmpeg_config_options+=" --extra-cflags=-I${openssl_include} --extra-ldflags=-L${openssl_libs}"
local build_dir="$ffmpeg_source_dir/build/$target_arch"
sudo mkdir -p "$build_dir"
pushd "$build_dir"
local build_dir="$ffmpeg_source_dir/build_android/$target_arch"
mkdir -p "$build_dir"
pushd "$build_dir"
# shellcheck disable=SC2086
sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$target_dir"
# shellcheck disable=SC2086
sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$target_dir"
# shellcheck disable=
sudo make install -j4
sudo make install -j4
popd
popd
rm -f "${openssl_libs}/libcrypto.so"
rm -f "${openssl_libs}/libssl.so"
rm -f "${openssl_libs}/libcrypto.so"
rm -f "${openssl_libs}/libssl.so"
if [[ "$shared" == "yes" ]]; then
fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh"
sudo "${fix_dependencies}" "${target_dir}" "${libs_prefix}" "no"
fi
if [[ "$build_type" == "shared" ]]; then
local fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh"
sudo "${fix_dependencies}" "${target_dir}" "${libs_prefix}" "no"
fi
}
if [ "$os" == "android-x86" ]; then
target_arch=x86
target_dir="/usr/local/android/ffmpeg-x86"
SetEnvVar "FFMPEG_DIR_ANDROID_X86" "$target_dir"
target_arch=x86
target_dir="/usr/local/android/ffmpeg-x86"
envvar="FFMPEG_DIR_ANDROID_X86"
elif [ "$os" == "android-x86_64" ]; then
target_arch=x86_64
target_dir="/usr/local/android/ffmpeg-x86_64"
SetEnvVar "FFMPEG_DIR_ANDROID_X86_64" "$target_dir"
target_arch=x86_64
target_dir="/usr/local/android/ffmpeg-x86_64"
envvar="FFMPEG_DIR_ANDROID_X86_64"
elif [ "$os" == "android-arm64" ]; then
target_arch=arm64
target_dir="/usr/local/android/ffmpeg-arm64"
SetEnvVar "FFMPEG_DIR_ANDROID_ARM64" "$target_dir"
target_arch=arm64
target_dir="/usr/local/android/ffmpeg-arm64"
envvar="FFMPEG_DIR_ANDROID_ARM64"
else
>&2 echo "Unhandled android os param: $os"
exit 1
fi
build_ffmpeg_android "$target_arch" "$target_dir" "yes"
# If parameter is set, use it as the target output directory.
if [ ! -z $target_install_dir_param ]; then
target_dir=$target_install_dir_param
fi
build_ffmpeg_android "$target_arch" "$target_dir"
set_ffmpeg_dir_env_var "$envvar" "$target_dir"

View File

@@ -5,71 +5,55 @@
# This script will build and install FFmpeg static libs
set -ex
# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
version="n7.1"
url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
sha1="f008a93710a7577e3f85a90f4b632cc615164712"
url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
ffmpeg_name="FFmpeg-$version"
target_dir="$HOME"
ffmpeg_source_dir="$target_dir/$ffmpeg_name"
ffmpeg_source_dir=$(download_ffmpeg)
ffmpeg_config_options=$(get_ffmpeg_config_options "shared")
prefix="/usr/local/ios/ffmpeg"
if [ ! -d "$ffmpeg_source_dir" ];
then
InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir"
fi
ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
dylib_regex="^@rpath/.*\.dylib$"
build_ffmpeg_ios() {
local target_arch=$1
local target_platform=$1
local target_cpu_arch=""
if [ "$target_platform" == "arm64-simulator" ]; then
target_sdk="iphonesimulator"
target_cpu_arch="arm64"
minos="-mios-simulator-version-min=16.0"
elif [ "$target_platform" == "x86_64-simulator" ]; then
target_sdk="iphonesimulator"
target_cpu_arch="x86_64"
minos="-mios-simulator-version-min=16.0"
elif [ "$target_platform" == "arm64-iphoneos" ]; then
target_sdk="iphoneos"
target_cpu_arch="arm64"
minos="-miphoneos-version-min=16.0"
else
echo "Error when building FFmpeg for iOS. Unknown parameter given for target_platform: '${target_platform}'"
exit 1
fi
if [ "$target_arch" == "x86_64" ]; then
target_sdk="iphonesimulator"
target_arch="x86_64"
minos="-mios-simulator-version-min=13.0"
else
target_sdk="iphoneos"
target_arch="arm64"
minos="-miphoneos-version-min=13.0"
fi
local build_dir="$ffmpeg_source_dir/build_ios/$target_platform"
sudo mkdir -p "$build_dir"
pushd "$build_dir"
local build_dir="$ffmpeg_source_dir/build_ios/$target_arch"
sudo mkdir -p "$build_dir"
pushd "$build_dir"
# shellcheck disable=SC2086
sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options \
# shellcheck disable=SC2086
sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options \
--sysroot="$(xcrun --sdk "$target_sdk" --show-sdk-path)" \
--enable-cross-compile \
--enable-optimizations \
--prefix=$prefix \
--arch=$target_arch \
--cc="xcrun --sdk ${target_sdk} clang -arch $target_arch" \
--cxx="xcrun --sdk ${target_sdk} clang++ -arch $target_arch" \
--ar="$(xcrun --sdk ${target_sdk} --find ar)" \
--ranlib="$(xcrun --sdk ${target_sdk} --find ranlib)" \
--strip="$(xcrun --sdk ${target_sdk} --find strip)" \
--nm="$(xcrun --sdk ${target_sdk} --find nm)" \
--target-os=darwin \
--extra-cflags="$minos" \
--extra-cxxflags="$minos" \
--enable-cross-compile \
--enable-shared \
--disable-static \
--install-name-dir='@rpath/Frameworks' \
--enable-swscale \
--enable-pthreads \
--disable-audiotoolbox
--enable-cross-compile \
--enable-optimizations \
--prefix=$prefix \
--arch=$target_cpu_arch \
--cc="xcrun --sdk ${target_sdk} clang -arch $target_cpu_arch" \
--cxx="xcrun --sdk ${target_sdk} clang++ -arch $target_cpu_arch" \
--target-os=darwin \
--extra-ldflags="$minos" \
--enable-shared \
--disable-static \
--install-name-dir='@rpath' \
--disable-audiotoolbox
sudo make install DESTDIR="$build_dir/installed" -j4
popd
sudo make install DESTDIR="$build_dir/installed" -j4
popd
}
install_ffmpeg() {
@@ -98,11 +82,110 @@ install_ffmpeg() {
popd >/dev/null
done
sudo cp -r $1$prefix/include $prefix
echo "LS done."
}
build_ffmpeg_ios "x86_64"
build_ffmpeg_ios "arm64"
build_info_plist() {
local file_path="$1"
local framework_name="$2"
local framework_id="$3"
install_ffmpeg "$ffmpeg_source_dir/build_ios/x86_64/installed" "$ffmpeg_source_dir/build_ios/arm64/installed"
SetEnvVar "FFMPEG_DIR_IOS" $prefix
local minimum_version_key="MinimumOSVersion"
local minimum_os_version="16.0"
local supported_platforms="iPhoneOS"
# TODO: This should be filled out with the actual version of FFmpeg that we are
# deploying.
info_plist="<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${framework_name}</string>
<key>CFBundleIdentifier</key>
<string>${framework_id}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${framework_name}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>7.0.2</string>
<key>CFBundleVersion</key>
<string>7.0.2</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>${minimum_version_key}</key>
<string>${minimum_os_version}</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>${supported_platforms}</string>
</array>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>"
echo $info_plist | sudo tee ${file_path} 1>/dev/null
}
create_framework() {
# Create a 'traditional' framework from the corresponding dylib.
local framework_name="$1"
local platform="$2" # For now it's either arm64 or arm64-simulator, see below.
local ffmpeg_library_path="$ffmpeg_source_dir/build_ios/${platform}/installed/usr/local/ios/ffmpeg"
local framework_complete_path="${ffmpeg_library_path}/framework/${framework_name}.framework/${framework_name}"
sudo mkdir -p "${ffmpeg_library_path}/framework/${framework_name}.framework"
sudo cp "${ffmpeg_library_path}/lib/${framework_name}.dylib" "${ffmpeg_library_path}/framework/${framework_name}.framework/${framework_name}"
# Fix LC_ID_DYLIB (to be libavcodec.framework/libavcodec instead of @rpath/libavcodec.xx.yy.dylib
sudo install_name_tool -id @rpath/${framework_name}.framework/${framework_name} "${framework_complete_path}"
build_info_plist "${ffmpeg_library_path}/framework/${framework_name}.framework/Info.plist" "${framework_name}" "io.qt.ffmpegkit."${framework_name}
# Fix all FFmpeg-related LC_LOAD_DYLIB, similar to how we fixed LC_ID_DYLIB above:
otool -L "$framework_complete_path" | awk '/\t/ {print $1}' | egrep "$dylib_regex" | while read -r dependency_path; do
found_name=$(tmp=${dependency_path/*\/}; echo ${tmp/\.*})
if [ "$found_name" != "$framework_name" ]
then
sudo install_name_tool -change "$dependency_path" @rpath/${found_name}.framework/${found_name} "${framework_complete_path}"
fi
done
#sudo mkdir -p "$prefix/framework/"
#sudo cp -r "${ffmpeg_library_path}/framework/${framework_name}.framework" "$prefix/framework/"
}
create_xcframework() {
# Create 'traditional' framework from the corresponding dylib,
# also creating
local framework_name="$1"
local target_platform_a="$2"
local target_platform_b="$3"
local fw_a="$ffmpeg_source_dir/build_ios/${target_platform_a}/installed/usr/local/ios/ffmpeg/framework/${framework_name}.framework"
local fw_b="$ffmpeg_source_dir/build_ios/${target_platform_b}/installed/usr/local/ios/ffmpeg/framework/${framework_name}.framework"
sudo mkdir -p "$prefix/framework/"
sudo xcodebuild -create-xcframework -framework $fw_a -framework $fw_b -output "${prefix}/framework/${framework_name}.xcframework"
}
build_ffmpeg_ios "x86_64-simulator"
build_ffmpeg_ios "arm64-iphoneos"
ffmpeg_libs="libavcodec libavformat libavutil libswresample libswscale"
for name in $ffmpeg_libs; do
create_framework $name "arm64-iphoneos"
create_framework $name "x86_64-simulator"
done
# Create corresponding (xc)frameworks containing both arm64 and arm64-simulator frameworks:
for name in $ffmpeg_libs; do
create_xcframework $name "arm64-iphoneos" "x86_64-simulator"
done
install_ffmpeg "$ffmpeg_source_dir/build_ios/x86_64-simulator/installed" "$ffmpeg_source_dir/build_ios/arm64-iphoneos/installed"
set_ffmpeg_dir_env_var "FFMPEG_DIR_IOS" $prefix

View File

@@ -1,156 +0,0 @@
#!/usr/bin/env bash
# Copyright (C) 2023 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
# This script will build and install FFmpeg static libs
set -ex
os="$1"
build_type="$2"
if [ ! -n "$build_type" ] && [ "$build_type" != "static" ] && [ "$build_type" != "shared" ]; then
>&2 echo "Invalid build_type: $build_type. The shared build type will be used."
build_type="shared"
fi
# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
version="n7.1"
url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
sha1="f008a93710a7577e3f85a90f4b632cc615164712"
url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
ffmpeg_name="FFmpeg-$version"
target_dir="$HOME"
app_prefix=""
ffmpeg_source_dir="$target_dir/$ffmpeg_name"
if [ ! -d "$ffmpeg_source_dir" ]
then
InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix"
fi
ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
if [ "$build_type" != "static" ]; then
ffmpeg_config_options+=" --enable-shared --disable-static"
fi
install_ff_nvcodec_headers() {
nv_codec_version="11.1" # use 11.1 to ensure compatibility with 470 nvidia drivers; might be upated to 12.0
nv_codec_url_public="https://github.com/FFmpeg/nv-codec-headers/archive/refs/heads/sdk/$nv_codec_version.zip"
nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-sdk-$nv_codec_version.zip"
nv_codec_sha1="ceb4966ab01b2e41f02074675a8ac5b331bf603e"
#nv_codec_sha1="4f30539f8dd31945da4c3da32e66022f9ca59c08" // 12.0
nv_codec_dir="$target_dir/nv-codec-headers-sdk-$nv_codec_version"
if [ ! -d "$nv_codec_dir" ]
then
InstallFromCompressedFileFromURL "$nv_codec_url_cached" "$nv_codec_url_public" "$nv_codec_sha1" "$target_dir" ""
fi
sudo make -C "$nv_codec_dir" install -j
# Might be not detected by default on RHEL
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig"
}
fix_openssl3_pc_files() {
# On RHEL 8, openssl3 pc files are libopenssl3.pc, libssl3.pc, libcrypto3.pc,
# and FFmpeg cannot find them. Instead, it finds FFmpeg 1.x.x if it's installed.
# The function fixes the files with copying them to a custom directory
local openssl3_pcfiledir=$(pkg-config --variable=pcfiledir openssl3)
if [ ! -n "$openssl3_pcfiledir" ]; then
return
fi
local pcfiles=("libssl" "libcrypto" "openssl")
for pcfile in ${pcfiles[@]}; do
if [ ! -f "$openssl3_pcfiledir/${pcfile}3.pc" ]; then
echo "pkgconfig has found openssl3 but the file $openssl3_pcfiledir/${pcfile}3.pc does't exist"
return
fi
done
local new_pkgconfig_dir="$ffmpeg_source_dir/openssl3_pkgconfig"
mkdir -p $new_pkgconfig_dir
for pcfile in ${pcfiles[@]}; do
sed -E '/^Requires(\.private)?:/s/ (libssl|libcrypto)3/ \1/g;' "$openssl3_pcfiledir/${pcfile}3.pc" > "$new_pkgconfig_dir/${pcfile}.pc"
done
export PKG_CONFIG_PATH="$new_pkgconfig_dir:$PKG_CONFIG_PATH"
}
build_ffmpeg() {
local arch="$1"
local prefix="$2"
local build_dir="$ffmpeg_source_dir/build/$arch"
mkdir -p "$build_dir"
pushd "$build_dir"
if [ -z "$prefix" ]
then prefix="/usr/local/$ffmpeg_name"
fi
if [ -n "$arch" ]
then cc="clang -arch $arch"
fi
# shellcheck disable=SC2086
if [ -n "$arch" ]
then "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix" --enable-cross-compile --arch="$arch" --cc="$cc"
else "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix"
fi
make install DESTDIR="$build_dir/installed" -j4
popd
}
if [ "$os" == "linux" ]; then
install_ff_nvcodec_headers
ffmpeg_config_options+=" --enable-openssl"
fix_openssl3_pc_files
echo "pkg-config openssl version: $(pkg-config --modversion openssl)"
build_ffmpeg
output_dir="$ffmpeg_source_dir/build/installed/usr/local/$ffmpeg_name"
if [ "$build_type" != "static" ]; then
fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh"
"$fix_dependencies" "$output_dir"
fi
sudo mv "$output_dir" "/usr/local"
SetEnvVar "FFMPEG_DIR" "/usr/local/$ffmpeg_name"
elif [ "$os" == "macos" ] || [ "$os" == "macos-universal" ]; then
brew install yasm
export MACOSX_DEPLOYMENT_TARGET=12
fix_relative_dependencies="${BASH_SOURCE%/*}/../macos/fix_relative_dependencies.sh"
if [ "$os" == "macos" ]; then
build_ffmpeg
install_dir="$ffmpeg_source_dir/build/installed"
"$fix_relative_dependencies" "$install_dir/usr/local/$ffmpeg_name/lib"
sudo mv "$install_dir/usr/local/$ffmpeg_name" "/usr/local"
else
build_ffmpeg "arm64"
build_ffmpeg "x86_64"
arm64_install_dir="$ffmpeg_source_dir/build/arm64/installed"
x86_64_install_dir="$ffmpeg_source_dir/build/x86_64/installed"
"$fix_relative_dependencies" "$arm64_install_dir/usr/local/$ffmpeg_name/lib"
"$fix_relative_dependencies" "$x86_64_install_dir/usr/local/$ffmpeg_name/lib"
sudo "${BASH_SOURCE%/*}/../macos/makeuniversal.sh" "$arm64_install_dir" "$x86_64_install_dir"
fi
SetEnvVar "FFMPEG_DIR" "/usr/local/$ffmpeg_name"
fi

View File

@@ -4,6 +4,7 @@
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
# version 0.18.0 doesn't work correctly for Android binaries, so we use 0.17.2
patchelf_version="0.17.2"
url_cached="https://ci-files01-hki.ci.qt.io/input/android/patchelf/$patchelf_version.tar.gz"

View File

@@ -92,6 +92,8 @@ cmake "$targetDir" -G"Ninja Multi-Config" \
ninja all:all
sudo env "PATH=$PATH" ninja install:all
SetEnvVar "protobuf_ROOT" "$installPrefix/lib/cmake/protobuf"
# Refresh shared library cache if OS isn't macOS
if uname -a |grep -qv "Darwin"; then
sudo ldconfig

View File

@@ -20,38 +20,38 @@ PROVISIONING_DIR="$(dirname "$0")/../../"
# shellcheck source=./common.sourced.sh
source "$PROVISIONING_DIR"/common/unix/common.sourced.sh
libclang_version="18.1.7"
libclang_version="20.1.0"
if uname -a |grep -q Darwin; then
version=$libclang_version
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-mac.7z"
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-mac.7z"
sha1="9ea511576645ef4abee6d4c27550406e929334d5"
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-macos-universal.7z"
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-macos-universal.7z"
sha1="a0061a2b7a7411323ae3d81fdb2071ad522ddd5f"
elif test -f /etc/redhat-release && grep "Red Hat" /etc/redhat-release | grep "9" ; then
version=$libclang_version
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Rhel9.2-gcc10.0-x86_64.7z"
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Rhel9.2-gcc10.0-x86_64.7z"
sha1="32c29d8df726b035e0a97e767c5c3e392aa331e1"
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Rhel9.4-gcc11.4-x86_64.7z"
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-linux-Rhel9.4-gcc11.4-x86_64.7z"
sha1="041036bb2b360c18448c993671507bbb16b9b76d"
elif test "$PROVISIONING_OS_ID" == "debian" && test "$PROVISIONING_ARCH" == "arm64" ; then
version=$libclang_version
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Debian11.6-gcc10.0-arm64.7z"
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Debian11.6-gcc10.0-arm64.7z"
sha1="8d876f60c2fe9c55e18fbac0be2acb70bd20d5d1"
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Debian11.6-gcc10.0-arm64.7z"
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-linux-Debian11.6-gcc10.0-arm64.7z"
sha1="ad3244f76cb5dab8e3d5dfe839e21a9bac3039e9"
elif test "$PROVISIONING_OS_ID" == "ubuntu" && test "$PROVISIONING_ARCH" == "arm64" ; then
version=$libclang_version
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Ubuntu24.04-gcc11.2-arm64.7z"
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Ubuntu24.04-gcc11.2-arm64.7z"
sha1="5a7bda4fbd2c52ae66557034591d977ba617482c"
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Ubuntu24.04-gcc11.2-arm64.7z"
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-linux-Ubuntu24.04-gcc11.2-arm64.7z"
sha1="bde39a28872cc618983d231ffd1df2c104ff1992"
elif test "$PROVISIONING_OS_ID" == "ubuntu" && test "$PROVISIONING_ARCH" == "x86_64" ; then
version=$libclang_version
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Ubuntu22.04-gcc11.2-x86_64.7z"
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Ubuntu22.04-gcc11.2-x86_64.7z"
sha1="b9f8735a148342174d7d763b5475175cd0827441"
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Ubuntu22.04-gcc11.2-x86_64.7z"
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-linux-Ubuntu22.04-gcc11.2-x86_64.7z"
sha1="3f5e5214cf31adfb01be21fcf4f27b9adf8f13b0"
else
version=$libclang_version
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Rhel8.8-gcc10.0-x86_64.7z"
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Rhel8.8-gcc10.0-x86_64.7z"
sha1="a51c5562c9b071250e7971390d55ef21924271ca"
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Rhel8.10-gcc10.0-x86_64.7z"
url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-linux-Rhel8.10-gcc10.0-x86_64.7z"
sha1="1fdc23ae0fce48ed82508b1bad0c68d2e5a30c8b"
fi
zip="/tmp/libclang.7z"

View File

@@ -12,12 +12,12 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
version="3.0.7"
ndkVersionLatest="r26b"
ndkVersionLatest="r27c"
ndkVersionDefault=$ndkVersionLatest
prebuiltOpensslNdkShaLatest="ea925d5a5b696916fb3650403a2eb3189c52b5ce"
prebuiltOpensslNdkShaLatest="733cff853b6ee7738e78b90f46b5f028c8490e1e"
prebuiltOpensslNdkShaDefault=$prebuiltOpensslNdkShaLatest
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK 25
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r27c
# Source built requires GCC and Perl to be in PATH. Rhel "requires yum install perl-IPC-Cmd"
exports_file="/tmp/export.sh"
# source previously made environmental variables.
@@ -32,7 +32,7 @@ else
fi
# ANDROID_NDK_ROOT is required during Configure
export ANDROID_NDK_ROOT=/opt/android/android-ndk-r26b
export ANDROID_NDK_ROOT=/opt/android/android-ndk-r27c
officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz"
cachedUrl="http://ci-files01-hki.ci.qt.io/input/openssl/openssl-$version.tar.gz"

View File

@@ -12,12 +12,12 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
version="3.0.7"
ndkVersionLatest="r26b"
ndkVersionLatest="r27c"
ndkVersionDefault=$ndkVersionLatest
prebuiltOpensslNdkShaLatest="ea925d5a5b696916fb3650403a2eb3189c52b5ce"
prebuiltOpensslNdkShaLatest="733cff853b6ee7738e78b90f46b5f028c8490e1e"
prebuiltOpensslNdkShaDefault=$prebuiltOpensslNdkShaLatest
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r26b
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r27c
# Source built requires GCC and Perl to be in PATH. Rhel "requires yum install perl-IPC-Cmd"
exports_file="/tmp/export.sh"
# source previously made environmental variables.

View File

@@ -16,11 +16,11 @@ if (Is64BitWinHost) {
# More info and building instructions can be found from http://doc.qt.io/qt-5/opensslsupport.html
$openssl_version = "3.0.7"
$ndk_version_latest = "r26b"
$ndk_version_latest = "r27c"
$ndk_version_default = "$ndk_version_latest"
$openssl_compressed = Get-DownloadLocation ("openssl-${openssl_version}.tar.gz")
$openssl_sha1 = "f20736d6aae36bcbfa9aba0d358c71601833bf27"
$prebuilt_sha1_ndk_latest = "ea925d5a5b696916fb3650403a2eb3189c52b5ce"
$prebuilt_sha1_ndk_latest = "733cff853b6ee7738e78b90f46b5f028c8490e1e"
$prebuilt_sha1_ndk_default = "$prebuilt_sha1_ndk_latest"
$destination_prefix = "C:\Utils\prebuilt-openssl-${openssl_version}-for-android-ndk"
@@ -70,7 +70,7 @@ function Install($1, $2) {
}
# ANDROID_NDK_ROOT needs to be in environment variables before running this script
# Set-EnvironmentVariable "ANDROID_NDK_ROOT" "C:\Utils\Android\android-ndk-r26b"
# Set-EnvironmentVariable "ANDROID_NDK_ROOT" "C:\Utils\Android\android-ndk-r27c"
$make_install = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"yes | pacman -S make`"")
CheckExitCode $make_install

View File

@@ -10,9 +10,9 @@
# That's why we need to use Andoid-21 API version in Qt 5.9.
# NDK
$ndkVersionLatest = "r26b"
$ndkVersionLatest = "r27c"
$ndkVersionDefault = $ndkVersionLatest
$ndkChecksumLatest = "17453c61a59e848cffb8634f2c7b322417f1732e"
$ndkChecksumLatest = "ac5f7762764b1f15341094e148ad4f847d050c38"
$ndkChecksumDefault = $ndkChecksumLatest
$ndkCachedUrlLatest = "\\ci-files01-hki.ci.qt.io\provisioning\android\android-ndk-$ndkVersionLatest-windows.zip"
$ndkOfficialUrlLatest = "https://dl.google.com/android/repository/android-ndk-$ndkVersionLatest-windows.zip"
@@ -24,8 +24,8 @@ $ndkZip = "C:\Windows\Temp\android_ndk.zip"
$toolsVersion = "2.1"
$toolsFile = "commandlinetools-win-6609375_latest.zip"
$sdkApi = "ANDROID_API_VERSION"
$sdkApiLevel = "android-34"
$sdkBuildToolsVersion = "34.0.0"
$sdkApiLevel = "android-35"
$sdkBuildToolsVersion = "35.0.1"
$toolsCachedUrl= "\\ci-files01-hki.ci.qt.io\provisioning\android\$toolsFile"
$toolsOfficialUrl = "https://dl.google.com/android/repository/$toolsFile"
$toolsChecksum = "e2e19c2ff584efa87ef0cfdd1987f92881323208"

View File

@@ -0,0 +1,12 @@
# Copyright (C) 2025 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
# This script updates Windows Root Certifications which are usually updated weekly by Windows update
. "$PSScriptRoot\helpers.ps1"
$sstCerts = "C:\Windows\Temp\certificates.sst"
Run-Executable "certutil.exe" "-generateSSTFromWU $sstCerts"
$sstCertsPath = (Get-ChildItem -Path $sstCerts)
$sstCertsPath | Import-Certificate -CertStoreLocation "Cert:\LocalMachine\Root" | Out-String | Measure-Object -Line
Remove-Item -Path $sstCerts

View File

@@ -0,0 +1,8 @@
# Copyright (C) 2025 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
# This script disables the Delivery Optimization service
. "$PSScriptRoot\helpers.ps1"
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\DoSvc" -Name "Start" -Value 4

View File

@@ -5,11 +5,11 @@
# This script will install emscripten needed by WebAssembly
$version = "3.1.56"
$version = "3.1.70"
$zipVersion = $version -replace '\.', "_"
$temp = "$env:tmp"
$cacheUrl = "https://ci-files01-hki.ci.qt.io/input/emsdk/emsdk_windows_${zipVersion}.zip"
$sha = "ab376d218f1a66302c36770977948f74f0576a42"
$sha = "4d05e378575cb3d74e2740b121730ba1f5822f27"
# Python used for '.\emsdk install'
$pythonPath = [System.Environment]::GetEnvironmentVariable("PYTHON3_PATH", "Machine")

View File

@@ -6,9 +6,9 @@
# This script will install FFmpeg
$msys = "C:\Utils\msys64\usr\bin\bash"
$version="n7.1"
$version="n7.1.1"
$url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
$sha1="f008a93710a7577e3f85a90f4b632cc615164712"
$sha1="479291e8555fe036ca760f95cea829a21e9b8365"
$url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
$ffmpeg_name="FFmpeg-$version"
@@ -144,7 +144,7 @@ function InstallAndroidArmv7 {
$target_cpu="armv7-a"
$api_version="24"
$ndkVersionLatest = "r26b"
$ndkVersionLatest = "r27c"
$ndkFolderLatest = "/c/Utils/Android/android-ndk-$ndkVersionLatest"
$toolchain="${ndkFolderLatest}/toolchains/llvm/prebuilt/windows-x86_64"

View File

@@ -5,24 +5,24 @@
# This script installs 7-Zip
$version = "23.01"
$nonDottedVersion = "2301"
$version = "24.09"
$nonDottedVersion = "2409"
$cpu_arch = Get-CpuArchitecture
switch ($cpu_arch) {
arm64 {
$arch = "-arm64"
$sha1 = "be65c2ea6119c04945c66b13413892f2bb03d9a7"
$sha1 = "2f5aaa22a4a591b01a1b06c17565233f0cd70429"
Break
}
x64 {
$arch = "-x64"
$sha1 = "7DF28D340D7084647921CC25A8C2068BB192BDBB"
$sha1 = "28b53835fe92c3fa6e0c422fc3b17c6bc1cb27e0"
Break
}
x86 {
$arch = ""
$sha1 = "D5D00E6EA8B8E68CE7A704FD478DC950E543C25C"
$sha1 = "2135a90a9f6c3202c32a87b1c5cf805ce294a497"
Break
}
default {

View File

@@ -1,11 +1,11 @@
param(
[string]$archVer="32",
[string]$toolchain="vs2019",
[string]$toolchain="vs2022",
[bool]$setDefault=$true
)
. "$PSScriptRoot\helpers.ps1"
$libclang_version="18.1.7"
$libclang_version="20.1.0"
Write-Output "libClang = $libclang_version" >> ~/versions.txt
# PySide versions following 5.6 use a C++ parser based on Clang (http://clang.org/).
@@ -24,8 +24,8 @@ function install() {
$zip = "c:\users\qt\downloads\libclang.7z"
$script:OfficialUrl = "https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_$libclang_version-based-windows-$toolchain`_$archVer.7z"
$script:CachedUrl = "http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_$libclang_version-based-windows-$toolchain`_$archVer.7z"
$script:OfficialUrl = "https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain`_$archVer.7z"
$script:CachedUrl = "http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain`_$archVer.7z"
Download $OfficialUrl $CachedUrl $zip
Verify-Checksum $zip $sha1
@@ -38,20 +38,10 @@ $toolchainSuffix = ""
if ( $toolchain -eq "vs2022" ) {
if ( $archVer -eq "64" ) {
$sha1 = "7e51f0eabdfe8eea17aaf1dce7b2ffe1ea064f66"
$sha1 = "60c840e627b5bb03663f00db17bf249b37936428"
}
elseif ( $archVer -eq "arm64" ) {
$sha1 = "986d4d0f253de505ef499345238c101dac1ca3a6"
}
else {
$sha1 = ""
}
$toolchainSuffix = "msvc"
}
if ( $toolchain -eq "vs2019" ) {
if ( $archVer -eq "64" ) {
$sha1 = "8e0862386caef7e4537599ef980eeb6ebee8767f"
$sha1 = "68ead0e3135dfccae21b226f187fc305803ede3d"
}
else {
$sha1 = ""
@@ -61,7 +51,7 @@ if ( $toolchain -eq "vs2019" ) {
if ( $toolchain -eq "mingw" ) {
if ( $archVer -eq "64" ) {
$sha1 = "a23cbb0822cf2eb8d1cecf26e8614ef37a7611e3"
$sha1 = "2180859572dd6ad2029ecffffcc785cba334e037"
}
else {
$sha1 = ""
@@ -72,7 +62,7 @@ if ( $toolchain -eq "mingw" ) {
if ( $toolchain -eq "llvm-mingw" ) {
if ( $archVer -eq "64" ) {
$sha1 = "9c34f99eb575b42c2befe27829c08e6d3f01ae58"
$sha1 = "3e917d002f363c225e5ee2b7d8999a3cabd8b467"
}
else {
$sha1 = ""

View File

@@ -6,6 +6,7 @@
set -ex
BASEDIR=$(dirname "$0")
# shellcheck source=../common/unix/check_and_set_proxy.sh
source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh"
@@ -13,12 +14,9 @@ NTS_IP=10.212.2.216
echo "Set timezone to UTC."
sudo timedatectl set-timezone Etc/UTC
echo "Timeout for blanking the screen (0 = never)"
gsettings set org.gnome.desktop.session idle-delay 0
echo "Prevents screen lock when screesaver goes active."
gsettings set org.gnome.desktop.screensaver lock-enabled false
echo "Disable window animations."
gsettings set org.gnome.desktop.interface enable-animations false
"$BASEDIR/../common/linux/configure-gnome-shell.sh"
echo "Set grub timeout to 0"
sudo sed -i 's|GRUB_TIMEOUT=10|GRUB_TIMEOUT=0|g' /etc/default/grub
sudo update-grub

View File

@@ -9,8 +9,6 @@ BASEDIR=$(dirname "$0")
# shellcheck source=../common/shared/network_test_server_ip.txt
source "$BASEDIR/../common/shared/network_test_server_ip.txt"
echo "Disable window animations."
gsettings set org.gnome.desktop.interface enable-animations false
echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts"
echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts
echo "Set DISPLAY"
@@ -20,10 +18,8 @@ export DISPLAY=:0
# Set timezone to UTC.
sudo timedatectl set-timezone Etc/UTC
# disable Automatic screen lock
gsettings set org.gnome.desktop.screensaver lock-enabled false
# disable blank screen power saving
gsettings set org.gnome.desktop.session idle-delay 0
"$BASEDIR/../common/linux/configure-gnome-shell.sh"
# Set Wayland enable as false.
echo "Setting Wayland enable as false"

View File

@@ -12,6 +12,8 @@ sudo yum -y remove PackageKit gnome-software
sudo yum -y update
installPackages=()
# Make sure needed ca-certificates are available
installPackages+=(ca-certificates)
installPackages+=(git)
installPackages+=(zlib-devel)
installPackages+=(glib2-devel)
@@ -153,6 +155,8 @@ installPackages+=(zip)
installPackages+=(perl-IPC-Cmd)
# password management support for Qt Creator
installPackages+=(libsecret-devel)
# For tst_license.pl with all the machines generating SBOM
installPackages+=(perl-JSON)
sudo yum -y install "${installPackages[@]}"
@@ -174,6 +178,9 @@ sudo python3.11 -m pip install -r "${BASH_SOURCE%/*}/../common/shared/sbom_requi
sudo /usr/bin/pip3 install wheel
sudo /usr/bin/pip3 install dataclasses
gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)"
echo "GCC = $gccVersion" >> versions.txt
OpenSSLVersion="$(openssl3 version |cut -b 9-14)"
echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt

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