mirror of
git://code.qt.io/qt/qt5.git
synced 2026-09-22 00:16:54 +08:00
Compare commits
65
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b679fc833f | ||
|
|
3c74fcadea | ||
|
|
badc52004e | ||
|
|
574021bdfa | ||
|
|
ec6b23ce8a | ||
|
|
392114430e | ||
|
|
acbb42c920 | ||
|
|
f79439844d | ||
|
|
3e9b56e0ad | ||
|
|
da7ca1ee75 | ||
|
|
d110ff4c98 | ||
|
|
f77f152366 | ||
|
|
178aaee44f | ||
|
|
edde2ec93f | ||
|
|
a870cffea0 | ||
|
|
37a97fa211 | ||
|
|
c31f19bf62 | ||
|
|
e1f514bd3a | ||
|
|
478db5551d | ||
|
|
7b72c15f61 | ||
|
|
f582feb449 | ||
|
|
9da885a19b | ||
|
|
1e60576633 | ||
|
|
58114728c5 | ||
|
|
9840747bd7 | ||
|
|
8fb6ce2ecf | ||
|
|
d4abe79578 | ||
|
|
24f5a030f4 | ||
|
|
29a3079d3d | ||
|
|
3925e7d921 | ||
|
|
bce71cf4ca | ||
|
|
9ea9720196 | ||
|
|
44b15983bf | ||
|
|
0538193fa5 | ||
|
|
0f7b2edf0f | ||
|
|
c73ed0d8d5 | ||
|
|
f9b93b1cfc | ||
|
|
71992859b7 | ||
|
|
5f4400aa72 | ||
|
|
84a8c53805 | ||
|
|
ad96407ff2 | ||
|
|
e89a2877ab | ||
|
|
6559cb21d8 | ||
|
|
4dc04de6cd | ||
|
|
a905d91491 | ||
|
|
3cfcbbb4ed | ||
|
|
a7762bff98 | ||
|
|
bfcfb5be1c | ||
|
|
332c5790cd | ||
|
|
24348fe918 | ||
|
|
1b8b29a624 | ||
|
|
6b1a3ddb0b | ||
|
|
02761a0550 | ||
|
|
a1f5df0d8b | ||
|
|
5425c4e6fe | ||
|
|
13aef4ed7b | ||
|
|
b44116913e | ||
|
|
738bd44d38 | ||
|
|
3fc86fbac1 | ||
|
|
d1e144e61b | ||
|
|
36eda6481a | ||
|
|
c301370686 | ||
|
|
58e5ed9147 | ||
|
|
a1989884a3 | ||
|
|
7e17a8b04b |
@@ -3,6 +3,5 @@
|
||||
.gitattributes export-ignore
|
||||
.commit-template export-ignore eol=lf
|
||||
init-repository export-ignore
|
||||
README.git export-ignore
|
||||
*.bat text eol=crlf
|
||||
*.bat.in text eol=crlf
|
||||
|
||||
+46
-55
@@ -1,54 +1,54 @@
|
||||
[submodule "qtbase"]
|
||||
path = qtbase
|
||||
url = ../qtbase.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = essential
|
||||
[submodule "qtsvg"]
|
||||
depends = qtbase
|
||||
path = qtsvg
|
||||
url = ../qtsvg.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtdeclarative"]
|
||||
depends = qtbase
|
||||
recommends = qtimageformats qtshadertools qtsvg qtlanguageserver
|
||||
path = qtdeclarative
|
||||
url = ../qtdeclarative.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = essential
|
||||
[submodule "qtactiveqt"]
|
||||
depends = qtbase
|
||||
path = qtactiveqt
|
||||
url = ../qtactiveqt.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtmultimedia"]
|
||||
depends = qtbase qtshadertools
|
||||
recommends = qtdeclarative qtquick3d
|
||||
path = qtmultimedia
|
||||
url = ../qtmultimedia.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qttools"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtactiveqt
|
||||
path = qttools
|
||||
url = ../qttools.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = essential
|
||||
[submodule "qttranslations"]
|
||||
depends = qttools
|
||||
path = qttranslations
|
||||
url = ../qttranslations.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = essential
|
||||
priority = 30
|
||||
[submodule "qtdoc"]
|
||||
depends = qtdeclarative qttools
|
||||
recommends = qtmultimedia qtshadertools qttasktree qtwebengine
|
||||
recommends = qtmultimedia qtshadertools qttasktree
|
||||
path = qtdoc
|
||||
url = ../qtdoc.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = essential
|
||||
priority = 40
|
||||
[submodule "qtrepotools"]
|
||||
@@ -61,7 +61,7 @@
|
||||
depends = qtbase
|
||||
path = qtqa
|
||||
url = ../qtqa.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = essential
|
||||
priority = 50
|
||||
[submodule "qtlocation"]
|
||||
@@ -69,243 +69,234 @@
|
||||
recommends = qtdeclarative
|
||||
path = qtlocation
|
||||
url = ../qtlocation.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = preview
|
||||
[submodule "qtpositioning"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtserialport
|
||||
path = qtpositioning
|
||||
url = ../qtpositioning.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtsensors"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtsensors
|
||||
url = ../qtsensors.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtconnectivity"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtconnectivity
|
||||
url = ../qtconnectivity.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtwayland"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtwayland
|
||||
url = ../qtwayland.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qt3d"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtshadertools qtmultimedia
|
||||
path = qt3d
|
||||
url = ../qt3d.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = deprecated
|
||||
[submodule "qtimageformats"]
|
||||
depends = qtbase
|
||||
path = qtimageformats
|
||||
url = ../qtimageformats.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtserialbus"]
|
||||
depends = qtbase
|
||||
recommends = qtserialport
|
||||
path = qtserialbus
|
||||
url = ../qtserialbus.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtserialport"]
|
||||
depends = qtbase
|
||||
path = qtserialport
|
||||
url = ../qtserialport.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtwebsockets"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtwebsockets
|
||||
url = ../qtwebsockets.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtwebchannel"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtwebsockets
|
||||
path = qtwebchannel
|
||||
url = ../qtwebchannel.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtwebengine"]
|
||||
depends = qtdeclarative
|
||||
recommends = qtwebchannel qttools qtpositioning
|
||||
path = qtwebengine
|
||||
url = ../qtwebengine.git
|
||||
branch = 6.12
|
||||
status = addon
|
||||
priority = 10
|
||||
[submodule "qtwebview"]
|
||||
depends = qtdeclarative
|
||||
recommends = qtwebengine
|
||||
path = qtwebview
|
||||
url = ../qtwebview.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtcharts"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtmultimedia
|
||||
path = qtcharts
|
||||
url = ../qtcharts.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = deprecated
|
||||
[submodule "qtdatavis3d"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative qtmultimedia
|
||||
path = qtdatavis3d
|
||||
url = ../qtdatavis3d.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = deprecated
|
||||
[submodule "qtvirtualkeyboard"]
|
||||
depends = qtbase qtdeclarative qtsvg
|
||||
recommends = qtmultimedia
|
||||
path = qtvirtualkeyboard
|
||||
url = ../qtvirtualkeyboard.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtscxml"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtscxml
|
||||
url = ../qtscxml.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtspeech"]
|
||||
depends = qtbase qtmultimedia
|
||||
recommends = qtdeclarative
|
||||
path = qtspeech
|
||||
url = ../qtspeech.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtnetworkauth"]
|
||||
depends = qtbase
|
||||
path = qtnetworkauth
|
||||
url = ../qtnetworkauth.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtremoteobjects"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtremoteobjects
|
||||
url = ../qtremoteobjects.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtlottie"]
|
||||
depends = qtbase qtdeclarative qtquicktimeline
|
||||
path = qtlottie
|
||||
url = ../qtlottie.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtquicktimeline"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtquicktimeline
|
||||
url = ../qtquicktimeline
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtquick3d"]
|
||||
depends = qtbase qtdeclarative qtshadertools
|
||||
recommends = qtquicktimeline
|
||||
path = qtquick3d
|
||||
url = ../qtquick3d.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtshadertools"]
|
||||
depends = qtbase
|
||||
path = qtshadertools
|
||||
url = ../qtshadertools.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qt5compat"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qt5compat
|
||||
url = ../qt5compat.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = deprecated
|
||||
[submodule "qtcoap"]
|
||||
depends = qtbase
|
||||
path = qtcoap
|
||||
url = ../qtcoap.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtmqtt"]
|
||||
depends = qtbase qtdeclarative
|
||||
recommends = qtwebsockets
|
||||
path = qtmqtt
|
||||
url = ../qtmqtt.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtopcua"]
|
||||
depends = qtbase qtdeclarative
|
||||
path = qtopcua
|
||||
url = ../qtopcua.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtlanguageserver"]
|
||||
depends = qtbase
|
||||
path = qtlanguageserver
|
||||
url = ../qtlanguageserver.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = preview
|
||||
[submodule "qthttpserver"]
|
||||
depends = qtbase
|
||||
recommends = qtwebsockets
|
||||
path = qthttpserver
|
||||
url = ../qthttpserver.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtquick3dphysics"]
|
||||
depends = qtbase qtdeclarative qtquick3d qtshadertools
|
||||
path = qtquick3dphysics
|
||||
url = ../qtquick3dphysics.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtgrpc"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtgrpc
|
||||
url = ../qtgrpc.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtquickeffectmaker"]
|
||||
depends = qtbase qtdeclarative qtshadertools
|
||||
recommends = qtquick3d
|
||||
path = qtquickeffectmaker
|
||||
url = ../qtquickeffectmaker.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qtgraphs"]
|
||||
depends = qtbase qtdeclarative qtquick3d
|
||||
path = qtgraphs
|
||||
url = ../qtgraphs.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
[submodule "qttasktree"]
|
||||
depends = qtbase
|
||||
path = qttasktree
|
||||
url = ../qttasktree.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = preview
|
||||
[submodule "qtopenapi"]
|
||||
depends = qtbase
|
||||
recommends = qtdeclarative
|
||||
path = qtopenapi
|
||||
url = ../qtopenapi.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = preview
|
||||
[submodule "qtcanvaspainter"]
|
||||
depends = qtbase qtdeclarative qtshadertools
|
||||
path = qtcanvaspainter
|
||||
url = ../qtcanvaspainter.git
|
||||
branch = 6.12
|
||||
branch = 6.12.0
|
||||
status = addon
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# Changelog
|
||||
|
||||
This repository does not keep a changelog of its own. Qt is released as a set
|
||||
of modules, and the change information for a release is published with that
|
||||
release rather than tracked here.
|
||||
|
||||
## Where to look
|
||||
|
||||
**Cumulative release notes** are published in
|
||||
[qt/qtreleasenotes](https://code.qt.io/cgit/qt/qtreleasenotes.git/tree/qt).
|
||||
|
||||
**What changed in a Qt version.** Each minor release has a "What's New" page in
|
||||
the Qt documentation. It lists new modules, new and deprecated APIs, and the
|
||||
notable changes per module.
|
||||
See [What's New in Qt 6](https://doc.qt.io/qt-6/whatsnewqt6.html).
|
||||
|
||||
**Release phases and schedule.** Each release has a wiki page with the
|
||||
release plan. See [Qt Releasing Wiki](https://wiki.qt.io/QtReleasing).
|
||||
|
||||
**Moving between major versions.** The
|
||||
[Porting to Qt 6](https://doc.qt.io/qt-6/portingguide.html) guide covers the
|
||||
changes that affect existing code.
|
||||
|
||||
## Qt 4 and Qt 5 changelogs
|
||||
|
||||
Most module repositories feature a `dist` directory holding `changes-*` files.
|
||||
These are no longer maintained. They stop at `changes-6.0.0` and are kept only
|
||||
as a historical record of Qt 4 and Qt 5 releases. Do not add to them, and do
|
||||
not treat them as a current source of change information for Qt 6. Use the
|
||||
sources above instead.
|
||||
@@ -0,0 +1,23 @@
|
||||
# Code of conduct
|
||||
|
||||
The Qt Community Code of Conduct applies to everyone who takes part in the Qt
|
||||
Project. It covers any forum, mailing list, wiki, website, IRC channel, public
|
||||
meeting, or private correspondence in the context of the project and its
|
||||
services.
|
||||
|
||||
[QUIP 12](https://contribute.qt-project.org/quips/12) is the Code of Conduct
|
||||
itself and is the authoritative text. It asks participants to be considerate,
|
||||
respectful, collaborative, pragmatic, and supportive of one another, and it
|
||||
explains what each of those means in practice.
|
||||
|
||||
## If something goes wrong
|
||||
|
||||
QUIP 12 describes how the community handles problems. In short: offer personal
|
||||
support to anyone who is being attacked, and remind those involved of the Code
|
||||
of Conduct. Moderators of a mailing list, channel, or forum can suspend access
|
||||
for anyone who persistently breaks it, so raise the matter with them when it
|
||||
needs to go further. Where a disagreement is technical, ask the community for
|
||||
advice or request mediation rather than escalating it into a public dispute.
|
||||
|
||||
Read [QUIP 12](https://contribute.qt-project.org/quips/12) in full for the
|
||||
complete guidance.
|
||||
@@ -0,0 +1,29 @@
|
||||
# Governance
|
||||
|
||||
The Qt Project is a meritocratic, consensus-based community. Anyone with an
|
||||
interest in Qt can join it, take part in its decision-making, and contribute to
|
||||
Qt's development.
|
||||
|
||||
[QUIP 2](https://contribute.qt-project.org/quips/2) is the Qt Governance Model
|
||||
and is the authoritative text. It describes five levels of involvement and how
|
||||
people move between them:
|
||||
|
||||
* **Users** — community members who use Qt. They report bugs, help other
|
||||
users, and advocate for the project.
|
||||
* **Contributors** — community members who provide input to the project, by
|
||||
proposing changes in Gerrit, reviewing, writing documentation, or testing.
|
||||
There is no selection process.
|
||||
* **Approvers** — contributors who have shown a sustained commitment to the
|
||||
project and who can approve changes for inclusion.
|
||||
* **Maintainers** — approvers responsible for a specific area of Qt, who
|
||||
decide what happens in the code they maintain.
|
||||
* **Chief Maintainer** — leads the maintainer group, sets the overall
|
||||
direction of the project, and has the final say when the project fails to
|
||||
reach consensus.
|
||||
|
||||
The current maintainers are listed at
|
||||
[wiki.qt.io/Maintainers](https://wiki.qt.io/Maintainers).
|
||||
|
||||
For the processes that sit alongside this model — the branch policy, the
|
||||
security policy, the code of conduct, and the rest — see
|
||||
[contribute.qt-project.org](https://contribute.qt-project.org/).
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
Qt licensing
|
||||
============
|
||||
|
||||
Qt is not distributed under a single license, and this file is not a license
|
||||
text. Qt is available under commercial terms and under several open source
|
||||
licenses, and which terms apply depends on the module and the file.
|
||||
|
||||
The open source licenses in use across the Qt repositories include LGPL-3.0,
|
||||
GPL-2.0, and GPL-3.0 for module implementations, GFDL-1.3 for documentation,
|
||||
and BSD-3-Clause for build system files, examples, and tooling. Third-party
|
||||
code bundled inside a module carries its own terms.
|
||||
|
||||
|
||||
How licensing is declared
|
||||
-------------------------
|
||||
|
||||
Licensing is declared per file, following the
|
||||
[REUSE version 3.3 specification](https://reuse.software/spec-3.3/). Every file
|
||||
carries an SPDX-License-Identifier header, or is covered by an adjacent
|
||||
REUSE.toml file where an inline header is not possible. The full text of every
|
||||
license referenced this way is in the LICENSES directory of the repository it
|
||||
applies to.
|
||||
|
||||
Those SPDX headers and the LICENSES directory are the authoritative,
|
||||
machine-readable record for the Qt sources. They are what the REUSE tool and
|
||||
Qt's software bill of materials pipeline read when generating the SBOM for the
|
||||
sources; they do not describe the licensing of Qt binaries.
|
||||
|
||||
|
||||
Finding the terms for a module
|
||||
------------------------------
|
||||
|
||||
Each Qt module carries its own licensing, and the terms are stated in the
|
||||
"Licenses and Attributions" section of that module's documentation overview
|
||||
page. For example, see:
|
||||
|
||||
https://doc.qt.io/qt-6/qtcore-index.html
|
||||
|
||||
That section also lists the third-party code the module includes and the
|
||||
license of each such component.
|
||||
|
||||
License of built modules and tools
|
||||
----------------------------------
|
||||
|
||||
When building Qt, you can build SBOM documents alongside (`-sbom` argument for
|
||||
`configure`). You can use the generated SBOM artifacts to query copyrights and
|
||||
licenses for built modules, and tools. For more details, see
|
||||
[Software Bill of Materials](https://doc.qt.io/qt-6/sbom.html}.
|
||||
|
||||
Further information
|
||||
-------------------
|
||||
|
||||
Qt licensing overview
|
||||
https://doc.qt.io/qt-6/licensing.html
|
||||
|
||||
Licenses used in Qt
|
||||
https://doc.qt.io/qt-6/licenses-used-in-qt.html
|
||||
|
||||
All Qt modules
|
||||
https://doc.qt.io/qt-6/qtmodules.html
|
||||
|
||||
Commercial licensing
|
||||
https://www.qt.io/licensing/
|
||||
|
||||
Open source licensing and its obligations
|
||||
https://www.qt.io/download-open-source
|
||||
|
||||
Qt educational license
|
||||
https://www.qt.io/qt-educational-license
|
||||
-57
@@ -1,57 +0,0 @@
|
||||
OBTAINING QT 6 FROM GIT
|
||||
=======================
|
||||
|
||||
Synopsis
|
||||
========
|
||||
|
||||
For a more in-depth description on how to build Qt 6 from git,
|
||||
please see: http://wiki.qt.io/Building_Qt_6_from_Git
|
||||
|
||||
Note that, although the git module is called qt5.git, the dev and 6.x branches
|
||||
do contain Qt 6!
|
||||
|
||||
Get The Submodules
|
||||
==================
|
||||
|
||||
Cloning qt5.git does not automatically clone all submodules.
|
||||
To get the submodules, it is recommended to use the `init-repository' script.
|
||||
|
||||
./init-repository
|
||||
|
||||
See `./init-repository -help' for full documentation on the many supported
|
||||
options.
|
||||
|
||||
|
||||
Update The Submodules (optional)
|
||||
================================
|
||||
|
||||
After a plain `git clone' and `init-repository', you will have each submodule
|
||||
checked out to a particular SHA1. This combination of SHA1s is guaranteed to
|
||||
have passed some basic acceptance testing.
|
||||
|
||||
If (and only if!) you need newer versions of some submodules, you can manually
|
||||
fetch and/or pull and/or reset any modules you like, or use the qt5_tool to
|
||||
pull all modules:
|
||||
|
||||
./qtrepotools/bin/qt5_tool -p
|
||||
|
||||
NOTE! As soon as you change the SHA1 of any submodule, you are using a
|
||||
combination of modules which is potentially untested and broken! If you want
|
||||
something which is more likely to compile, stick to the module SHA1s provided
|
||||
in this repository.
|
||||
|
||||
|
||||
Install The Git Grafts (optional)
|
||||
=================================
|
||||
|
||||
If you want to be able to connect the Qt5 and Qt4 development history, you
|
||||
may set up git grafts with the following command:
|
||||
|
||||
git submodule foreach '../qtrepotools/bin/git-qt-grafts <path_to_history>'
|
||||
|
||||
|
||||
Developing and Contributing to Qt
|
||||
=================================
|
||||
|
||||
For more information on how to develop and contribute to Qt, please see:
|
||||
http://wiki.qt.io/Category:Developing_Qt
|
||||
@@ -1,127 +1,80 @@
|
||||
HOW TO BUILD Qt 6
|
||||
=================
|
||||
# Qt 6
|
||||
|
||||
This repository, `qt5.git`, is the Qt super-repository. It records a git
|
||||
submodule pointer to each Qt module repository, such as `qtbase` and
|
||||
`qtdeclarative`, along with the build system, the `configure` scripts, and the
|
||||
continuous integration configuration that build those modules as a single tree.
|
||||
|
||||
Synopsis
|
||||
========
|
||||
Each submodule points at a specific revision. The combination of revisions that
|
||||
a branch records is a snapshot that has passed Qt's continuous integration.
|
||||
Clone this repository first and let it select the module revisions for you. If
|
||||
you move a submodule to a different revision, you are building a combination
|
||||
that nobody has tested.
|
||||
|
||||
System requirements
|
||||
-------------------
|
||||
> Despite the name `qt5.git`, the `dev` and `6.x` branches contain Qt 6.
|
||||
|
||||
* C++ compiler supporting the C++17 standard
|
||||
* CMake
|
||||
* Ninja
|
||||
* Python 3
|
||||
To use Qt rather than build it from sources, see
|
||||
[Get and Install Qt](https://doc.qt.io/qt-6/get-and-install-qt.html).
|
||||
|
||||
For more details, see also https://doc.qt.io/qt-6/build-sources.html
|
||||
## Repository layout
|
||||
|
||||
Linux, Mac:
|
||||
-----------
|
||||
Each Qt module lives in its own directory, such as `qtbase` or
|
||||
`qtdeclarative`. Those directories are git submodules.
|
||||
|
||||
```
|
||||
cd <path>/<source_package>
|
||||
./configure -prefix $PWD/qtbase
|
||||
cmake --build .
|
||||
```
|
||||
The other top-level entries are:
|
||||
|
||||
Windows:
|
||||
--------
|
||||
| Entry | Purpose |
|
||||
| ----- | ------- |
|
||||
|`.gitmodules`| Lists modules for the current branch.|
|
||||
| `CMakeLists.txt` | Entry point for the top-level build of all modules. |
|
||||
| `configure`, `configure.bat` | Wrappers that configure that build. |
|
||||
| `init-repository` | Checks out the submodules. Git clones only. |
|
||||
| `cmake/` | CMake modules shared by the top-level build. |
|
||||
| `coin/` | Continuous integration configuration and provisioning. |
|
||||
| `LICENSES/`, `REUSE.toml` | License texts and per-file licensing metadata. |
|
||||
|
||||
1. Open a command prompt.
|
||||
2. Ensure that the following tools can be found in the path:
|
||||
* Supported compiler (Visual Studio 2022 or later, or MinGW-builds gcc 13.1 or later)
|
||||
* Python 3 ([https://www.python.org/downloads/windows/] or from Microsoft Store)
|
||||
## Get the sources
|
||||
|
||||
```
|
||||
cd <path>\<source_package>
|
||||
configure -prefix %CD%\qtbase
|
||||
cmake --build .
|
||||
```
|
||||
For instructions, see [Getting Qt Sources from the Git repository](https://doc.qt.io/qt-6/getting-sources-from-git.html).
|
||||
|
||||
More details follow.
|
||||
## Build Qt
|
||||
|
||||
For instructions, see [Build from sources](https://doc.qt.io/qt-6/build-sources.html).
|
||||
|
||||
Build!
|
||||
======
|
||||
## Documentation
|
||||
|
||||
Qt is built with CMake, and a typical
|
||||
`configure && cmake --build .` build process is used.
|
||||
The [Qt 6 documentation](https://doc.qt.io/qt-6/index.html) covers the
|
||||
framework itself.
|
||||
|
||||
If Ninja is installed, it is automatically chosen as CMake generator.
|
||||
## Report an issue
|
||||
|
||||
Some relevant configure options (see configure -help):
|
||||
Report bugs at [bugreports.qt.io](https://bugreports.qt.io/), following
|
||||
[these steps](https://doc.qt.io/qt-6/bughowto.html).
|
||||
|
||||
* `-release` Compile and link Qt with debugging turned off.
|
||||
* `-debug` Compile and link Qt with debugging turned on.
|
||||
## Security
|
||||
|
||||
Example for a release build:
|
||||
To report a security vulnerability in Qt, and to read what the Qt Project
|
||||
commits to in response, see [SECURITY.md](SECURITY.md).
|
||||
|
||||
```
|
||||
./configure -prefix $PWD/qtbase
|
||||
cmake --build .
|
||||
```
|
||||
## Contribute to Qt
|
||||
|
||||
Example for a developer build:
|
||||
(enables more autotests, builds debug version of libraries, ...)
|
||||
The Qt Project does not accept pull requests on GitHub. Every contribution goes
|
||||
through [Gerrit](https://codereview.qt-project.org), so read
|
||||
[how to contribute](CONTRIBUTING.md) before you push a change. All
|
||||
participation in the project is subject to our
|
||||
[code of conduct](CODE_OF_CONDUCT.md). To learn who decides what, and how
|
||||
someone becomes an approver or a maintainer, see
|
||||
[how the project is governed](GOVERNANCE.md).
|
||||
Development discussions happens in the open on the
|
||||
[Qt Project mailing lists](https://lists.qt-project.org/).
|
||||
|
||||
```
|
||||
./configure -developer-build
|
||||
cmake --build .
|
||||
```
|
||||
## License
|
||||
|
||||
See output of `./configure -help` for documentation on various options to
|
||||
configure.
|
||||
Qt is available under both commercial and open source licenses, and the terms
|
||||
depend on the module you use. [LICENSE](LICENSE) explains how licensing is
|
||||
declared across the Qt repositories and where to find the terms that apply to
|
||||
a given module.
|
||||
|
||||
The above examples will build whatever Qt modules have been enabled
|
||||
by default in the build system.
|
||||
|
||||
It is possible to build selected repositories with their dependencies by doing
|
||||
a `ninja <repo-name>/all`. For example, to build only qtdeclarative,
|
||||
and the modules it depends on:
|
||||
|
||||
```
|
||||
./configure
|
||||
ninja qtdeclarative/all
|
||||
```
|
||||
|
||||
This can save a lot of time if you are only interested in a subset of Qt.
|
||||
|
||||
|
||||
Hints
|
||||
=====
|
||||
|
||||
The submodule repository `qtrepotools` contains useful scripts for
|
||||
developers and release engineers. Consider adding qtrepotools/bin
|
||||
to your `PATH` environment variable to access them.
|
||||
|
||||
|
||||
Building Qt from git
|
||||
====================
|
||||
|
||||
See http://wiki.qt.io/Building_Qt_6_from_Git and [README.git](README.git)
|
||||
for more information.
|
||||
See http://wiki.qt.io/Qt_6 for the reference platforms.
|
||||
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
||||
After configuring and compiling Qt, building the documentation is possible by running
|
||||
|
||||
```
|
||||
cmake --build . --target docs
|
||||
```
|
||||
|
||||
After having built the documentation, you need to install it with the following
|
||||
command:
|
||||
|
||||
```
|
||||
cmake --build . --target install_docs
|
||||
```
|
||||
|
||||
The documentation is installed in the path specified with the
|
||||
configure argument `-docdir`.
|
||||
|
||||
Information about Qt's documentation is located in qtbase/doc/README
|
||||
|
||||
Note: Building the documentation is only tested on desktop platforms.
|
||||
For the full picture, see the
|
||||
[Qt licensing overview](https://doc.qt.io/qt-6/licensing.html) and
|
||||
[qt.io/licensing](https://www.qt.io/licensing/).
|
||||
|
||||
+3
-3
@@ -34,6 +34,6 @@ We welcome contributions to Qt! If you'd like to contribute, read the
|
||||
Qt is available under various licenses. For details, check out the
|
||||
[license documentation](https://doc.qt.io/qt-6/licensing.html).
|
||||
|
||||
*Note that this README.md.template serves as a guideline for README.md files,
|
||||
and that further sections can be added to individual README.md files if
|
||||
necessary.*
|
||||
*Note that this README.md.template serves as a guideline for the README.md
|
||||
files of Qt module repositories, and that further sections can be added to
|
||||
individual README.md files if necessary.*
|
||||
|
||||
+3
-1
@@ -26,7 +26,9 @@ 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"]
|
||||
path = ["**README*", "CONTRIBUTING.md", "CODE_OF_CONDUCT.md", "GOVERNANCE.md",
|
||||
"SECURITY.md", "CHANGELOG.md", "LICENSE",
|
||||
".commit-template", ".github/pull_request_template.md"]
|
||||
comment = "documentation"
|
||||
precedence = "closest"
|
||||
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
|
||||
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
# Security policy
|
||||
|
||||
## Reporting a vulnerability
|
||||
|
||||
Report suspected security vulnerabilities in Qt by email to
|
||||
<security@qt-project.org>. Do not report them in the public bug tracker at
|
||||
bugreports.qt.io.
|
||||
|
||||
If you hold a commercial license, you can instead report the issue to the Qt
|
||||
Company support team through the support portal, using the "Security Issues"
|
||||
category.
|
||||
|
||||
## The policy
|
||||
|
||||
[QUIP 15](https://contribute.qt-project.org/quips/15) is the Qt Project
|
||||
Security Policy. It is the authoritative source for how the project handles
|
||||
security issues, and it covers:
|
||||
|
||||
* How reports are received, acknowledged, and triaged, and in what time frame.
|
||||
* Who is responsible for addressing an issue, and how it is escalated.
|
||||
* How issues are disclosed, including CVE handling and notification of
|
||||
packagers.
|
||||
* Which versions of Qt fixes are guaranteed for.
|
||||
|
||||
Security announcements are published to the
|
||||
[announce mailing list](https://lists.qt-project.org/listinfo/announce).
|
||||
|
||||
Qt customers with a commercial license now have the opportunity to subscribe to
|
||||
the Qt Early Warning List in the [Customer Portal](https://account.qt.io/). The
|
||||
EWL subscription requires an active
|
||||
[Commercial Qt license](https://www.qt.io/development/qt-framework/commercial-qt).
|
||||
|
||||
## Related material
|
||||
|
||||
* [Security in Qt](https://doc.qt.io/qt-6/security.html) — what Qt does and
|
||||
does not protect against, and how to use Qt securely.
|
||||
* [QUIP 23](https://contribute.qt-project.org/quips/23) — the `Qt-Security`
|
||||
header that marks how security-relevant a source file is.
|
||||
* [QUIP 16](https://contribute.qt-project.org/quips/16) — the branch policy,
|
||||
which governs which branches accept which changes.
|
||||
* [Responsible Vulnerability Disclosure Agreement](https://www.qt.io/terms-conditions/responsible-vulnerability-disclosure-process) -
|
||||
Terms and Conditions of Responsible Vulnerability Disclosure Process at Qt Group.
|
||||
@@ -324,7 +324,7 @@ function(qt_ir_get_already_initialized_submodules prefix
|
||||
)
|
||||
|
||||
qt_ir_parse_git_config_file_contents("${prefix}"
|
||||
READ_GIT_CONFIG
|
||||
READ_GIT_CONFIG_LOCAL
|
||||
PARENT_REPO_BASE_GIT_PATH "${parent_repo_base_git_path}"
|
||||
WORKING_DIRECTORY "${working_directory}"
|
||||
)
|
||||
|
||||
@@ -1386,7 +1386,7 @@ function(qt_internal_foreach_repo_run)
|
||||
|
||||
set(color_supported FALSE)
|
||||
set(output_goes_where "")
|
||||
if(NOT tty_exit_CODE AND tty_name)
|
||||
if(NOT tty_exit_code AND tty_name)
|
||||
set(color_supported TRUE)
|
||||
set(output_goes_where "OUTPUT_FILE" "${tty_name}")
|
||||
endif()
|
||||
|
||||
@@ -16,6 +16,13 @@ instructions:
|
||||
variableName: CONFIGURE_ENV_PREFIX
|
||||
variableValue: "{{.Env.ENV_PREFIX}}"
|
||||
|
||||
# Re-fetch the qlitehtml repository in the Coin git mirror, otherwise the
|
||||
# RunCMake.InitRepository test might fail trying to checkout a newer sha1 than what is
|
||||
# available in the Coin git mirror.
|
||||
- type: UpdateRepo
|
||||
gitRemote: code.qt.io
|
||||
repos: [playground/qlitehtml.git]
|
||||
|
||||
- type: ExecuteCommand
|
||||
command: "{{.Env.CONFIGURE_ENV_PREFIX}} cmake {{.SourceDir}}/tests/manual/RunCMake"
|
||||
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
||||
|
||||
@@ -269,7 +269,7 @@ Configurations:
|
||||
Compiler: 'MSVC2022'
|
||||
Target arch: 'arm64'
|
||||
Features: ['Sccache', 'Packaging', 'DoNotRunTests', 'TargetBuildOnly', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Platform dependency: 'windows-11_24h2-mingw13'
|
||||
Platform dependency: 'windows-11_24h2-mingw15'
|
||||
Environment variables: [
|
||||
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer',
|
||||
@@ -290,7 +290,7 @@ Configurations:
|
||||
Compiler: 'MSVC2026'
|
||||
Target arch: 'arm64'
|
||||
Features: ['Sccache', 'DoNotRunTests', 'TargetBuildOnly', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Platform dependency: 'windows-11_24h2-mingw13'
|
||||
Platform dependency: 'windows-11_24h2-mingw15'
|
||||
Environment variables: [
|
||||
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer',
|
||||
@@ -367,7 +367,7 @@ Configurations:
|
||||
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
|
||||
]
|
||||
-
|
||||
Id: 'ios-universal'
|
||||
Id: 'ios-device'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Target os: 'IOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
@@ -376,7 +376,35 @@ Configurations:
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Features: ['Packaging', 'Sccache', 'DebugAndRelease', 'DisableTests', 'UseConfigure', 'WarningsAreErrors', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang',
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang -sdk iphoneos',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include -DFFMPEG_DIR={{.Env.FFMPEG_DIR_IOS}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
]
|
||||
-
|
||||
Id: 'ios-arm64-simulator'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Target os: 'IOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Features: ['Packaging', 'Sccache', 'DebugAndRelease', 'DisableTests', 'UseConfigure', 'WarningsAreErrors', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang -sdk iphonesimulator',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="arm64"',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include -DFFMPEG_DIR={{.Env.FFMPEG_DIR_IOS}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
]
|
||||
-
|
||||
Id: 'ios-x86_64-simulator'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Target os: 'IOS_ANY'
|
||||
Target arch: 'x86_64'
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Features: ['Packaging', 'Sccache', 'DebugAndRelease', 'DisableTests', 'UseConfigure', 'WarningsAreErrors', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang -sdk iphonesimulator',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64"',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include -DFFMPEG_DIR={{.Env.FFMPEG_DIR_IOS}} -DQT_DEPLOY_FFMPEG=TRUE',
|
||||
]
|
||||
-
|
||||
@@ -392,7 +420,7 @@ Configurations:
|
||||
'TARGET_CONFIGURE_ARGS=-developer-build -no-warnings-are-errors -nomake examples -nomake tests -platform macx-visionos-clang',
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24h2-mingw13'
|
||||
Id: 'windows-11_24h2-mingw15'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'Mingw'
|
||||
Features: ['Packaging', 'Sccache', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
@@ -418,7 +446,7 @@ Configurations:
|
||||
'Protobuf_ROOT={{.Env.Protobuf_ROOT_llvm_mingw}}',
|
||||
]
|
||||
-
|
||||
Id: 'windows-11_24H2-mingw13-developer-build'
|
||||
Id: 'windows-11_24H2-mingw15-developer-build'
|
||||
Template: 'qtci-windows-11_24H2-x86_64-73'
|
||||
Compiler: 'Mingw'
|
||||
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
|
||||
|
||||
@@ -12,7 +12,7 @@ Configurations:
|
||||
'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',
|
||||
'QT_YOCTO_ENVSETUP={{.Env.QEMUARMV7_TOOLCHAIN_ENVSETUP}}',
|
||||
"QT_CMAKE_DIR=/opt/cmake-3.30.5/bin",
|
||||
"QT_CMAKE_DIR=/opt/cmake-4.3.2/bin",
|
||||
'QT_SYSROOT_FOR_RUNNING_TESTS={{.Env.QEMUARMV7_TOOLCHAIN_SYSROOT}}',
|
||||
'GST_PLUGIN_SCANNER={{.Env.QEMUARMV7_TOOLCHAIN_SYSROOT}}/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
|
||||
'QT_QUICK_BACKEND=software',
|
||||
@@ -31,7 +31,7 @@ Configurations:
|
||||
'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',
|
||||
'QT_YOCTO_ENVSETUP={{.Env.QEMUARM64_TOOLCHAIN_ENVSETUP}}',
|
||||
"QT_CMAKE_DIR=/opt/cmake-3.30.5/bin",
|
||||
"QT_CMAKE_DIR=/opt/cmake-4.3.2/bin",
|
||||
'QT_SYSROOT_FOR_RUNNING_TESTS={{.Env.QEMUARM64_TOOLCHAIN_SYSROOT}}',
|
||||
'GST_PLUGIN_SCANNER={{.Env.QEMUARM64_TOOLCHAIN_SYSROOT}}/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
|
||||
'QT_QUICK_BACKEND=software',
|
||||
@@ -50,7 +50,7 @@ Configurations:
|
||||
'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.QEMUMIPS64_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=boot2qt" -no-feature-forkfd_pidfd',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUMIPS64_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON',
|
||||
'QT_YOCTO_ENVSETUP={{.Env.QEMUMIPS64_TOOLCHAIN_ENVSETUP}}',
|
||||
"QT_CMAKE_DIR=/opt/cmake-3.30.5/bin",
|
||||
"QT_CMAKE_DIR=/opt/cmake-4.3.2/bin",
|
||||
'QT_SYSROOT_FOR_RUNNING_TESTS={{.Env.QEMUMIPS64_TOOLCHAIN_SYSROOT}}',
|
||||
'GST_PLUGIN_SCANNER={{.Env.QEMUMIPS64_TOOLCHAIN_SYSROOT}}/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
|
||||
'QT_QUICK_BACKEND=software',
|
||||
|
||||
@@ -12,7 +12,7 @@ Configurations:
|
||||
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',
|
||||
'QT_CMAKE_DIR=/opt/cmake-4.3.2/bin',
|
||||
'QNX_TEST_ENV=TMPDIR=/data/var/tmp HOME=/data/home/root FONTCONFIG_FILE=/data/var/etc/fontconfig/fonts.conf 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=-DCMAKE_SYSTEM_VERSION=710 -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'QNX_QEMU={{.Env.QNX_710_QEMU}}',
|
||||
@@ -63,7 +63,7 @@ Configurations:
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -developer-build -no-dbus -nomake examples',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_800}}/qnx-toolchain-x8664.cmake -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'QT_CMAKE_DIR=/opt/cmake-3.30.5/bin',
|
||||
'QT_CMAKE_DIR=/opt/cmake-4.3.2/bin',
|
||||
'QNX_TEST_ENV=TMPDIR=/data/var/tmp HOME=/data/home/root FONTCONFIG_FILE=/data/var/etc/fontconfig/fonts.conf 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=-DCMAKE_SYSTEM_VERSION=802 -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'QNX_QEMU={{.Env.QNX_800_QEMU}}',
|
||||
|
||||
@@ -10,7 +10,7 @@ Configurations:
|
||||
Platform dependency: 'ubuntu-22.04'
|
||||
Features: ['VMSize8', 'UseConfigure', 'DoNotRunTests', 'DoNotUploadTests']
|
||||
Environment variables: [
|
||||
'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_2_VSB',
|
||||
'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_3_VSB',
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -qpa offscreen -nomake examples',
|
||||
'TARGET_CMAKE_ARGS=-DBUILD_SHARED_LIBS=OFF -DWARNINGS_ARE_ERRORS=OFF -DCMAKE_TOOLCHAIN_FILE="{{.Env.WIND_CC_SYSROOT}}/mk/rtp.toolchain.cmake" -DFEATURE_vulkan=OFF -DQT_QMAKE_TARGET_MKSPEC=vxworks-clang -DQT_HOST_PATH=/home/qt/work/install -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_STAGING_PREFIX:PATH=/home/qt/work/install/target',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
@@ -26,8 +26,8 @@ Configurations:
|
||||
Platform dependency: 'ubuntu-22.04'
|
||||
Features: ['VMSize8', 'UseConfigure', 'DoNotRunTests', 'DoNotUploadTests']
|
||||
Environment variables: [
|
||||
'WIND_CC_SYSROOT=/opt/nxp_imx8_1_0_7_0_VSB',
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -qpa offscreen -nomake examples',
|
||||
'WIND_CC_SYSROOT=/opt/nxp_imx8_1_0_7_1_VSB',
|
||||
'TARGET_CONFIGURE_ARGS=-release -qpa offscreen -nomake examples',
|
||||
'TARGET_CMAKE_ARGS=-DBUILD_SHARED_LIBS=OFF -DWARNINGS_ARE_ERRORS=OFF -DCMAKE_TOOLCHAIN_FILE="{{.Env.WIND_CC_SYSROOT}}/mk/rtp.toolchain.cmake" -DFEATURE_vulkan=OFF -DQT_QMAKE_TARGET_MKSPEC=vxworks-clang -DQT_HOST_PATH=/home/qt/work/install -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_STAGING_PREFIX:PATH=/home/qt/work/install/target'
|
||||
]
|
||||
-
|
||||
|
||||
@@ -8,10 +8,10 @@ Configurations:
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'vxworks-imx6-buildtest'
|
||||
Features: ['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',
|
||||
'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_3_VSB',
|
||||
'VXWORKS_TEST_LIBS_PATH=/opt/fsl_imx6_2_0_6_3_VSB/usr/lib/common;/opt/fsl_imx6_2_0_6_3_VSB/usr/root/llvm/bin;/opt/fsl_imx6_2_0_6_3_VSB/usr/3pp/develop/usr/lib;/home/qt/work/install/target/lib',
|
||||
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -qpa offscreen -nomake examples',
|
||||
'TARGET_CMAKE_ARGS=-DBUILD_SHARED_LIBS=OFF -DWARNINGS_ARE_ERRORS=OFF -DCMAKE_TOOLCHAIN_FILE="{{.Env.WIND_CC_SYSROOT}}/mk/rtp.toolchain.cmake" -DFEATURE_vulkan=OFF -DQT_QMAKE_TARGET_MKSPEC=vxworks-clang -DQT_HOST_PATH=/home/qt/work/install -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_STAGING_PREFIX:PATH=/home/qt/work/install/target',
|
||||
'VCPKG_HOST_TRIPLET=x64-linux-qt',
|
||||
@@ -25,7 +25,7 @@ Configurations:
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'vxworks-x86_64-buildtest'
|
||||
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly']
|
||||
Features: ['VMSize16', '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',
|
||||
|
||||
@@ -10,7 +10,7 @@ Configurations:
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis arm64-v8a',
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis arm64-v8a',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARM64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}'
|
||||
@@ -22,11 +22,11 @@ Configurations:
|
||||
Target arch: 'armv7'
|
||||
Compiler: 'Mingw'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'windows-11_24h2-mingw13'
|
||||
Platform dependency: 'windows-11_24h2-mingw15'
|
||||
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config',
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARMV7_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_msvc}}/include',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}'
|
||||
@@ -41,7 +41,7 @@ Configurations:
|
||||
Platform dependency: 'rhel-9.6'
|
||||
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'JavaDocs']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86',
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -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_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
# We check QT_USE_TARGET_ANDROID_BUILD_DIR only in one configuration, to ensure builds
|
||||
@@ -60,12 +60,12 @@ Configurations:
|
||||
Platform dependency: 'rhel-9.6'
|
||||
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'JavaDocs']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -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_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
# We check QT_USE_TARGET_ANDROID_BUILD_DIR and QT_USE_ANDROID_MODERN_BUNDLE only in one
|
||||
# We check QT_USE_TARGET_ANDROID_BUILD_DIR and QT_ANDROID_GRADLE_MULTI_MODULE only in one
|
||||
# configuration, to ensure builds without this option work too.
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_USE_TARGET_ANDROID_BUILD_DIR=ON -DQT_USE_ANDROID_MODERN_BUNDLE=ON',
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_USE_TARGET_ANDROID_BUILD_DIR=ON -DQT_ANDROID_GRADLE_MULTI_MODULE=ON',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_36'
|
||||
]
|
||||
@@ -79,12 +79,12 @@ Configurations:
|
||||
Platform dependency: 'rhel-9.6'
|
||||
Features: ['Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'JavaDocs', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
|
||||
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -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_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
|
||||
# We check QT_USE_TARGET_ANDROID_BUILD_DIR and QT_USE_ANDROID_MODERN_BUNDLE only in one
|
||||
# We check QT_USE_TARGET_ANDROID_BUILD_DIR and QT_ANDROID_GRADLE_MULTI_MODULE only in one
|
||||
# configuration, to ensure builds without this option work too.
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_USE_TARGET_ANDROID_BUILD_DIR=ON -DQT_USE_ANDROID_MODERN_BUNDLE=ON',
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_USE_TARGET_ANDROID_BUILD_DIR=ON -DQT_ANDROID_GRADLE_MULTI_MODULE=ON',
|
||||
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
|
||||
'ANDROID_EMULATOR=emulator_x86_64_api_37'
|
||||
]
|
||||
|
||||
@@ -32,3 +32,19 @@ Configurations:
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'QT_HARMONYOS_HVIGOR=/opt/harmonyos/command-line-tools/bin/hvigorw'
|
||||
]
|
||||
-
|
||||
Id: 'harmonyos-23-arm64-on-macos'
|
||||
Template: 'qtci-macos-26-arm-105'
|
||||
Target os: 'HarmonyOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'macos-universal-on-arm64'
|
||||
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'StandaloneExamples']
|
||||
Environment variables: [
|
||||
'TARGET_CONFIGURE_ARGS=-developer-build -debug -make examples -no-dbus -no-use-gold-linker -no-pch -openssl-runtime',
|
||||
'TARGET_CMAKE_ARGS=-DOHOS_SDK_ROOT={{.Env.HARMONYOS_SDK_ROOT}} -DOHOS_ARCH=arm64-v8a -DWARNINGS_ARE_ERRORS=OFF -DQT_QMAKE_TARGET_MKSPEC=ohos-clang -DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'COMMON_TARGET_TEST_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
|
||||
'QT_HARMONYOS_HVIGOR=/opt/harmonyos/command-line-tools/bin/hvigorw'
|
||||
]
|
||||
|
||||
@@ -19,7 +19,7 @@ Configurations:
|
||||
Target os: 'WebAssembly'
|
||||
Compiler: 'Mingw'
|
||||
Target compiler: 'Clang'
|
||||
Platform dependency: 'windows-11_24h2-mingw13'
|
||||
Platform dependency: 'windows-11_24h2-mingw15'
|
||||
Features: ['Packaging','DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
|
||||
Environment variables: [
|
||||
'Path={{.Env.EMSDK_PATH}};{{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
|
||||
|
||||
@@ -2,7 +2,7 @@ Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'rhel-9.6',
|
||||
'windows-11_24h2-mingw13'
|
||||
'windows-11_24h2-mingw15'
|
||||
],
|
||||
cmake_platforms_target_android.yaml: [
|
||||
'android-15-x86_64-on-linux',
|
||||
|
||||
@@ -2,7 +2,7 @@ Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'rhel-9.6',
|
||||
'windows-11_24h2-mingw13'
|
||||
'windows-11_24h2-mingw15'
|
||||
],
|
||||
cmake_platforms_target_android.yaml: [
|
||||
'android-15-x86_64-on-linux',
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
Version: 2
|
||||
Module only: True
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
"ubuntu-24.04-x64-developer-build"
|
||||
],
|
||||
cmake_platforms_target_harmonyos.yaml: [
|
||||
"harmonyos-23-arm64-on-linux-developer-build"
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
Overrides:
|
||||
-
|
||||
Id: 'harmonyos-23-arm64-on-linux-developer-build'
|
||||
-Features: ['DoNotRunTests']
|
||||
@@ -0,0 +1,14 @@
|
||||
Version: 2
|
||||
Module only: True
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'ubuntu-22.04'
|
||||
]
|
||||
]
|
||||
Configurations:
|
||||
-
|
||||
Id: 'ubuntu-22.04-Axivion'
|
||||
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
|
||||
Compiler: 'GCC'
|
||||
Features: ['UseConfigure', 'VMSize16', 'RunAsPlatformDependency', 'PysideAxivion']
|
||||
Platform dependency: 'ubuntu-22.04'
|
||||
@@ -1,7 +1,7 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'windows-11_24h2-mingw13'
|
||||
'windows-11_24h2-mingw15'
|
||||
]
|
||||
]
|
||||
Configurations:
|
||||
@@ -12,7 +12,7 @@ Configurations:
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Mingw'
|
||||
Target compiler: 'QCC'
|
||||
Platform dependency: 'windows-11_24h2-mingw13'
|
||||
Platform dependency: 'windows-11_24h2-mingw15'
|
||||
Features: ['DisableTests', 'UseConfigure']
|
||||
Environment variables: [
|
||||
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
|
||||
|
||||
@@ -3,7 +3,7 @@ Configurations: []
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'windows-11_24H2-msvc2022-developer-build',
|
||||
'windows-11_24H2-mingw13-developer-build',
|
||||
'windows-11_24H2-mingw15-developer-build',
|
||||
'windows-11_24H2-llvm'
|
||||
]
|
||||
]
|
||||
@@ -13,7 +13,7 @@ Overrides:
|
||||
Id: 'windows-11_24H2-msvc2022-developer-build'
|
||||
Configure arguments: '-qtnamespace TestNamespace -debug-and-release -force-asserts -make examples -developer-build -force-debug-info -qt-zlib -c++std c++20'
|
||||
-
|
||||
Id: 'windows-11_24H2-mingw13-developer-build'
|
||||
Id: 'windows-11_24H2-mingw15-developer-build'
|
||||
Configure arguments: '-qtnamespace TestNamespace -developer-build -release -force-asserts -force-debug-info -separate-debug-info -make examples'
|
||||
-
|
||||
Id: 'windows-11_24H2-llvm'
|
||||
|
||||
@@ -7,7 +7,7 @@ Include: [
|
||||
"ubuntu-22.04-developer-build-x11-tests",
|
||||
"ubuntu-24.04-x64",
|
||||
"windows-11_24H2-msvc2022-developer-build",
|
||||
"ios-universal",
|
||||
"ios-device",
|
||||
"documentation-warnings",
|
||||
],
|
||||
macos.yaml: [
|
||||
|
||||
@@ -11,8 +11,8 @@ Include: [
|
||||
"sles-15_sp6-static",
|
||||
"windows-10_22h2-msvc2022",
|
||||
"rhel-9.6",
|
||||
"windows-11_24h2-mingw13",
|
||||
"windows-11_24H2-mingw13-developer-build",
|
||||
"windows-11_24h2-mingw15",
|
||||
"windows-11_24H2-mingw15-developer-build",
|
||||
"windows-11_24H2-llvm",
|
||||
"windows-11_24H2-msvc2022",
|
||||
"windows-11_23h2-arm64-msvc2022"
|
||||
@@ -45,7 +45,7 @@ Configurations:
|
||||
'TARGET_CONFIGURE_ARGS=-release -no-warnings-are-errors -nomake examples -qt-harfbuzz -device linux-generic-g++ -device-option "CROSS_COMPILE={{.Env.QEMUARM64_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=boot2qt" -no-feature-forkfd_pidfd -qtlibinfix TestInfix',
|
||||
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUARM64_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON',
|
||||
'QT_YOCTO_ENVSETUP={{.Env.QEMUARM64_TOOLCHAIN_ENVSETUP}}',
|
||||
"QT_CMAKE_DIR=/opt/cmake-3.30.5/bin",
|
||||
"QT_CMAKE_DIR=/opt/cmake-4.3.2/bin",
|
||||
'QT_SYSROOT_FOR_RUNNING_TESTS={{.Env.QEMUARM64_TOOLCHAIN_SYSROOT}}',
|
||||
'GST_PLUGIN_SCANNER={{.Env.QEMUARM64_TOOLCHAIN_SYSROOT}}/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
|
||||
'QT_QUICK_BACKEND=software',
|
||||
|
||||
@@ -13,8 +13,8 @@ Include: [
|
||||
"sles-15_sp6-static",
|
||||
"windows-10_22h2-msvc2022",
|
||||
"rhel-9.6",
|
||||
"windows-11_24h2-mingw13",
|
||||
"windows-11_24H2-mingw13-developer-build",
|
||||
"windows-11_24h2-mingw15",
|
||||
"windows-11_24H2-mingw15-developer-build",
|
||||
"windows-11_24H2-llvm",
|
||||
"windows-11_24H2-msvc2022",
|
||||
"windows-11_23h2-arm64-msvc2022"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml,
|
||||
address_sanitizer_platforms.yaml
|
||||
address_sanitizer_platforms.yaml,
|
||||
offline_documentation.yaml
|
||||
]
|
||||
Configurations: []
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'rhel-9.6',
|
||||
'ubuntu-24.04-arm64',
|
||||
'ubuntu-24.04-x64-developer-build'
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
@@ -3,7 +3,7 @@ Include: [
|
||||
cmake_platforms.yaml: [
|
||||
"documentation-warnings",
|
||||
"rhel-9.6",
|
||||
'windows-11_24h2-mingw13',
|
||||
'windows-11_24h2-mingw15',
|
||||
],
|
||||
macos.yaml: [
|
||||
'macos-universal-on-arm64'
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'ubuntu-22.04',
|
||||
'ubuntu-22.04-x11-tests',
|
||||
'ubuntu-24.04-x64',
|
||||
'ubuntu-24.04-x64-x11-tests',
|
||||
'rhel-9.6',
|
||||
'rhel-10.0',
|
||||
'windows-11_24H2-msvc2022',
|
||||
'windows-11_24H2-msvc2026',
|
||||
'windows-11_24h2-mingw15',
|
||||
'windows-11_24H2-llvm'
|
||||
],
|
||||
macos.yaml: [
|
||||
'macos-universal-on-arm64',
|
||||
'macos-14-x86_64-tests',
|
||||
'macos-15-x86_64-tests',
|
||||
'macos-26-x86_64-tests',
|
||||
'macos-14-arm64-tests',
|
||||
'macos-15-arm64-tests',
|
||||
'macos-26-arm64-tests'
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
@@ -0,0 +1,37 @@
|
||||
Version: 2
|
||||
Include: [
|
||||
cmake_platforms.yaml: [
|
||||
'ubuntu-22.04',
|
||||
'ubuntu-24.04-x64',
|
||||
'ubuntu-24.04-arm64',
|
||||
'jammy-arm64-debian-pkg-packaging',
|
||||
'jammy-amd64-debian-pkg-packaging'
|
||||
],
|
||||
cmake_platforms_qemu.yaml: [
|
||||
'qemu-arm64-developer-build'
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
Overrides:
|
||||
# Set pch off due to stale pch file causing false positive sccache hit
|
||||
-
|
||||
Id: 'ubuntu-22.04'
|
||||
-Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON -DQT_DEPLOY_FFMPEG=TRUE']
|
||||
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON -DQT_DEPLOY_FFMPEG=TRUE -DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
|
||||
-
|
||||
Id: 'ubuntu-24.04-x64'
|
||||
-Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON']
|
||||
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
|
||||
-
|
||||
Id: 'ubuntu-24.04-arm64'
|
||||
-Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DINPUT_tiff=qt -DINPUT_webp=qt']
|
||||
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DINPUT_tiff=qt -DINPUT_webp=qt -DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
|
||||
-
|
||||
Id: 'jammy-arm64-debian-pkg-packaging'
|
||||
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
|
||||
-
|
||||
Id: 'jammy-amd64-debian-pkg-packaging'
|
||||
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
|
||||
-
|
||||
Id: 'qemu-arm64-developer-build'
|
||||
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
|
||||
@@ -5,11 +5,21 @@ Include: [
|
||||
'ubuntu-22.04-x11-tests',
|
||||
'ubuntu-24.04-x64',
|
||||
'ubuntu-24.04-x64-x11-tests',
|
||||
'windows-11_24H2-msvc2022'
|
||||
'rhel-9.6',
|
||||
'rhel-10.0',
|
||||
'windows-11_24H2-msvc2022',
|
||||
'windows-11_24H2-msvc2026',
|
||||
'windows-11_24h2-mingw15',
|
||||
'windows-11_24H2-llvm'
|
||||
],
|
||||
macos.yaml: [
|
||||
'macos-arm64-developer-build',
|
||||
'macos-14-arm64-developer-build-tests'
|
||||
'macos-universal-on-arm64',
|
||||
'macos-14-x86_64-tests',
|
||||
'macos-15-x86_64-tests',
|
||||
'macos-26-x86_64-tests',
|
||||
'macos-14-arm64-tests',
|
||||
'macos-15-arm64-tests',
|
||||
'macos-26-arm64-tests'
|
||||
]
|
||||
]
|
||||
Configurations: []
|
||||
|
||||
@@ -25,8 +25,8 @@ basePath="http://ci-files01-hki.ci.qt.io/input/android"
|
||||
toolsVersion="19.0"
|
||||
toolsFile="commandlinetools-linux-13114758_latest.zip"
|
||||
toolsBackupUrl="https://dl.google.com/android/repository/$toolsFile"
|
||||
sdkBuildToolsVersion="36.0.0"
|
||||
sdkApiLevel="android-36"
|
||||
sdkBuildToolsVersion="37.0.0"
|
||||
sdkApiLevel="android-37.0"
|
||||
toolsSha1="5fdcc763663eefb86a5b8879697aa6088b041e70"
|
||||
|
||||
ndkVersionLatest="r27c"
|
||||
|
||||
@@ -11,13 +11,26 @@ source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
# shellcheck source=../unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
majorminorversion="3.30"
|
||||
version="3.30.5"
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/cmake/cmake-$version-linux-x86_64.tar.gz"
|
||||
AltUrl="https://cmake.org/files/v$majorminorversion/cmake-$version-linux-x86_64.tar.gz"
|
||||
SHA1="61b339cac5f110d5ed2934f66a26c2e991945e01"
|
||||
majorminorversion="4.3"
|
||||
version="4.3.2"
|
||||
|
||||
uname_m="$(uname -m)"
|
||||
case "$uname_m" in
|
||||
x86_64|amd64)
|
||||
SHA1="736c0722ed8393b3eb74fd573f6c9c245770206a"
|
||||
arch="x86_64"
|
||||
;;
|
||||
arm64|aarch64)
|
||||
SHA1="a173eb910c808f561422feb45fe1fe57c3e346fa"
|
||||
arch="aarch64"
|
||||
;;
|
||||
*) fatal "Unknown architecture in uname: $uname_m" 43 ;;
|
||||
esac
|
||||
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/cmake/cmake-$version-linux-$arch.tar.gz"
|
||||
AltUrl="https://cmake.org/files/v$majorminorversion/cmake-$version-linux-$arch.tar.gz"
|
||||
targetFolder="/opt/cmake-$version"
|
||||
appPrefix="cmake-$version-linux-x86_64"
|
||||
appPrefix="cmake-$version-linux-$arch"
|
||||
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$targetFolder" "$appPrefix"
|
||||
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2026 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
|
||||
|
||||
set -e
|
||||
|
||||
OS_STATE_DIR="/var/lib/qtciid"
|
||||
OS_STATE_FILE="$OS_STATE_DIR/os-version"
|
||||
|
||||
get_os_id() {
|
||||
if [[ -r /etc/os-release ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
. /etc/os-release
|
||||
# os-release contains ID of the distro (e.g. 'ubuntu')
|
||||
# VERSION e.g. '24.04.1 LTS (Noble Numbat)'
|
||||
if [[ -n "${ID:-}" && -n "${VERSION:-}" ]]; then
|
||||
echo "${ID}:${VERSION}"
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "unknown:unknown"
|
||||
return 1
|
||||
}
|
||||
|
||||
record_os_version() {
|
||||
local os_id
|
||||
|
||||
os_id="$(get_os_id)"
|
||||
|
||||
if [[ "$os_id" == "unknown:unknown" ]]; then
|
||||
echo "ERROR: Unable to determine OS version"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo mkdir -p "$OS_STATE_DIR"
|
||||
echo "$os_id" | sudo tee "$OS_STATE_FILE" > /dev/null
|
||||
|
||||
echo "OS version: $os_id"
|
||||
}
|
||||
|
||||
verify_os_version_unchanged() {
|
||||
if [[ ! -f "$OS_STATE_FILE" ]]; then
|
||||
echo "ERROR: OS version state file missing: $OS_STATE_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local start_version current_version
|
||||
|
||||
start_version="$(cat "$OS_STATE_FILE")"
|
||||
current_version="$(get_os_id)"
|
||||
|
||||
if [[ "$current_version" == "unknown:unknown" ]]; then
|
||||
echo "ERROR: Unable to determine current OS version"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$start_version" != "$current_version" ]]; then
|
||||
echo "ERROR: OS version changed during provisioning!"
|
||||
echo " Start version : $start_version"
|
||||
echo " End version : $current_version"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "OS version unchanged ($current_version)"
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
diffutils
|
||||
make
|
||||
nasm
|
||||
yasm
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
diffutils
|
||||
libva-devel
|
||||
make
|
||||
nasm
|
||||
yasm
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
diffutils
|
||||
make
|
||||
nasm
|
||||
yasm
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
diffutils
|
||||
libva-dev
|
||||
make
|
||||
nasm
|
||||
yasm
|
||||
|
||||
@@ -9,18 +9,105 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
|
||||
# shellcheck source=../unix/SourceEnvVars.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SourceEnvVars.sh"
|
||||
|
||||
echo "Caching Gradle distribution and dependencies"
|
||||
gradleCacheFileName="gradle_9.3.1_linux_cache_v2.tar.gz"
|
||||
gradleCacheUrl="http://ci-files01-hki.ci.qt.io/input/gradle/$gradleCacheFileName"
|
||||
gradleCacheSha1="e88989d55f68e978442e567e4707a6093c829af6"
|
||||
gradleCacheFile="/tmp/$gradleCacheFileName"
|
||||
DownloadURL "$gradleCacheUrl" "$gradleCacheUrl" "$gradleCacheSha1" "$gradleCacheFile"
|
||||
mkdir -p "$HOME/.gradle"
|
||||
tar -xzf "$gradleCacheFile" -C "$HOME/.gradle" --strip-components=1
|
||||
rm "$gradleCacheFile"
|
||||
echo "Caching Gradle distributions and dependencies"
|
||||
|
||||
gradle_project_source="${BASH_SOURCE%/*}/../shared/gradle/project"
|
||||
cp -r "$gradle_project_source" /tmp/gradle_project
|
||||
cd /tmp/gradle_project
|
||||
chmod +x gradlew
|
||||
sh gradlew build
|
||||
gradleDistributionMirror="http://ci-files01-hki.ci.qt.io/input/gradle"
|
||||
gradleInitScript="init.d/nexus-mirror.gradle"
|
||||
|
||||
# Route every Gradle repository through the internal Nexus mirror.
|
||||
mkdir -p "$HOME/.gradle/init.d"
|
||||
cp "${BASH_SOURCE%/*}/../shared/gradle/$gradleInitScript" "$HOME/.gradle/$gradleInitScript"
|
||||
|
||||
# Returns the hash of the Gradle binary distribution for a given Gradle version.
|
||||
# Gradle calculates the hash as base36(md5(distributionUrl)).
|
||||
gradleDistributionHash () {
|
||||
version="$1"
|
||||
propertiesFile="$gradle_project_source/gradle/wrapper/gradle-wrapper.properties"
|
||||
|
||||
# 1. Read the project's distributionUrl.
|
||||
distributionUrl=$(grep '^distributionUrl=' "$propertiesFile")
|
||||
distributionUrl=${distributionUrl#distributionUrl=}
|
||||
# 2. Unescape the Java-properties (e.g. '\:').
|
||||
distributionUrl=${distributionUrl//\\:/:}
|
||||
# 3. Swap in the requested version while maintaining the distribution URL.
|
||||
distributionUrl=${distributionUrl/gradle-[0-9.]*-bin.zip/gradle-$version-bin.zip}
|
||||
|
||||
if command -v md5sum >/dev/null 2>&1; then
|
||||
md5Hex=$(printf '%s' "$distributionUrl" | md5sum | awk '{print $1}')
|
||||
else
|
||||
md5Hex=$(printf '%s' "$distributionUrl" | md5)
|
||||
fi
|
||||
|
||||
# Convert the md5 to base36: read it as a number, then repeatedly take the
|
||||
# next digit (number % 36) and divide by 36, prepending each digit's character.
|
||||
number=$(printf 'ibase=16; %s\n' "$(printf '%s' "$md5Hex" | tr 'a-f' 'A-F')" | bc)
|
||||
hash=""
|
||||
alphabet="0123456789abcdefghijklmnopqrstuvwxyz"
|
||||
while [ "$number" != "0" ]; do
|
||||
digit=$(printf '%s %% 36\n' "$number" | bc)
|
||||
number=$(printf '%s / 36\n' "$number" | bc)
|
||||
hash="${alphabet:$digit:1}$hash"
|
||||
done
|
||||
printf '%s' "$hash"
|
||||
}
|
||||
|
||||
# Seed a Gradle distribution binary into ~/.gradle from the internal mirror.
|
||||
seedGradleDistribution () {
|
||||
version="$1"
|
||||
sha="$2"
|
||||
|
||||
distributionDir="$HOME/.gradle/wrapper/dists/gradle-${version}-bin/$(gradleDistributionHash "$version")"
|
||||
if [ -e "$distributionDir/gradle-${version}-bin.zip.ok" ]; then
|
||||
return 0
|
||||
fi
|
||||
mkdir -p "$distributionDir"
|
||||
zip="$distributionDir/gradle-${version}-bin.zip"
|
||||
url="$gradleDistributionMirror/gradle-${version}-bin.zip"
|
||||
DownloadURL "$url" "$url" "$sha" "$zip"
|
||||
unzip -q -o "$zip" -d "$distributionDir"
|
||||
rm -f "$zip"
|
||||
touch "$distributionDir/gradle-${version}-bin.zip.ok"
|
||||
}
|
||||
|
||||
# Populate ~/.gradle/caches by priming the shared project for each Gradle and AGP profile.
|
||||
cacheGradleProfile () {
|
||||
echo "Caching Gradle profile $*"
|
||||
tmp="$(mktemp -d)"
|
||||
project="$tmp/project"
|
||||
cp -r "$gradle_project_source" "$project"
|
||||
|
||||
props="$project/gradle/wrapper/gradle-wrapper.properties"
|
||||
for kv in "$@"; do
|
||||
case "$kv" in
|
||||
gradle=*)
|
||||
sed "s#gradle-[0-9.]*-bin.zip#gradle-${kv#*=}-bin.zip#" "$props" > "$props.tmp"
|
||||
mv "$props.tmp" "$props"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
toml="$project/gradle/libs.versions.toml"
|
||||
for kv in "$@"; do
|
||||
case "$kv" in
|
||||
gradle=*) ;;
|
||||
*)
|
||||
key="${kv%%=*}"
|
||||
val="${kv#*=}"
|
||||
sed "/^\[versions\]/,/^\[/ s/^$key = .*/$key = \"$val\"/" "$toml" > "$toml.tmp"
|
||||
mv "$toml.tmp" "$toml"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
sh "$project/gradlew" --project-dir "$project" build
|
||||
rm -rf "$tmp"
|
||||
}
|
||||
|
||||
# Cache both the current and the previous versions to avoid issues during bumps.
|
||||
seedGradleDistribution 9.3.1 "b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06"
|
||||
cacheGradleProfile gradle=9.3.1 agp=9.0.0
|
||||
seedGradleDistribution 9.5.1 "bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f"
|
||||
cacheGradleProfile gradle=9.5.1 agp=9.2.1
|
||||
|
||||
echo "Cached Gradle distributions and dependencies under $HOME/.gradle."
|
||||
|
||||
@@ -21,13 +21,12 @@ prefix="${2:-$default_prefix}"
|
||||
pkgconfig_path="$PKG_CONFIG_PATH"
|
||||
|
||||
install_ff_nvcodec_headers() {
|
||||
local nv_codec_version="11.1.5.3" # use 11.x.x.x 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/tags/n$nv_codec_version.zip"
|
||||
local nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-$nv_codec_version.zip"
|
||||
local nv_codec_sha1="78715d521de102362e553dc92577bbe81905a321"
|
||||
#nv_codec_sha1="4f30539f8dd31945da4c3da32e66022f9ca59c08" // 12.0
|
||||
local nv_codec_version="12.0.16.1" # use 11.x.x.x to ensure compatibility with 520 nvidia drivers
|
||||
local nv_codec_url_public="https://github.com/FFmpeg/nv-codec-headers/releases/download/n12.0.16.1/nv-codec-headers-$nv_codec_version.tar.gz"
|
||||
local nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-$nv_codec_version.tar.gz"
|
||||
local nv_codec_sha1="df7239777af15af5d7e563d2af0deff874c3b770"
|
||||
local target_dir="$HOME"
|
||||
local nv_codec_dir="$target_dir/nv-codec-headers-n$nv_codec_version"
|
||||
local nv_codec_dir="$target_dir/nv-codec-headers-$nv_codec_version"
|
||||
|
||||
if [ ! -d "$nv_codec_dir" ]; then
|
||||
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
|
||||
@@ -17,8 +17,8 @@ APPNAME="CiNetworkTest"
|
||||
EXECPATH="${ROOT}/${APPNAME}/bin"
|
||||
EXEC="${EXECPATH}/${APPNAME}"
|
||||
URL="https://ci-files01-hki.ci.qt.io/input/networktestapp"
|
||||
TARBALL="CiNetworkTest-rhel-linux-x86_64-v1.1.tgz"
|
||||
sha256="3a23593f163ca2452546d20d56cabc81fed03c930d6d96334a22827da5a6840a"
|
||||
TARBALL="CiNetworkTest-rhel-linux-x86_64-v1.2.tgz"
|
||||
sha256="2be05baebf48ff29ebcd06a0761b2a3d92ae5a66f78d0cd953513d8271eb7f83"
|
||||
SOURCE="$URL/$TARBALL"
|
||||
InstallFromCompressedFileFromURL "$SOURCE" "" "$sha256" "$ROOT" "$PREFIX"
|
||||
|
||||
|
||||
@@ -43,11 +43,19 @@ if [ ! -d "$targetFolder" ]; then
|
||||
fi
|
||||
|
||||
# QNX SDP
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx710-windows-linux-20240417.tar.xz"
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx710-windows-linux-20260422.tar.xz"
|
||||
targetFile="qnx710.tar.xz"
|
||||
sha1="cd2d35004fb2798089e29d9e1226691426632da0"
|
||||
sha1="98b24df7e8c53a104aee76e769011396fa4bdafd"
|
||||
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
|
||||
|
||||
# IANA timezone database overlay. Packaged separately from the SDP so it can be
|
||||
# bumped without rebuilding the SDP tarball. Archive root is usr/ so the same
|
||||
# archive suits both the 7.1 and 8.0 SDP layouts.
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/zoneinfo-2026a-usr.tar.xz"
|
||||
targetFile="zoneinfo.tar.xz"
|
||||
sha1="02deef2df3513d191ee3bb3a13fd61a814d7161a"
|
||||
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetPath/target/qnx7"
|
||||
|
||||
sudo cp "$aarch64le_toolchain" "$targetPath"
|
||||
sudo cp "$armv7le_toolchain" "$targetPath"
|
||||
sudo cp "$x8664_toolchain" "$targetPath"
|
||||
|
||||
@@ -49,12 +49,12 @@ sha1="a3fdcd98e12bc5054d00f18e4088af26288fd020"
|
||||
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
|
||||
|
||||
# IANA timezone database overlay. Packaged separately from the SDP so it can be
|
||||
# bumped without rebuilding the SDP tarball. Archive root is qnx800/target/qnx/
|
||||
# so it overlays onto $targetFolder (/opt/) directly.
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/zoneinfo-2026a.tar.xz"
|
||||
# bumped without rebuilding the SDP tarball. Archive root is usr/ so the same
|
||||
# archive suits both the 7.1 and 8.0 SDP layouts.
|
||||
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/zoneinfo-2026a-usr.tar.xz"
|
||||
targetFile="zoneinfo.tar.xz"
|
||||
sha1="8c1678ff673bb588f63fc9277497cd38e0ea2253"
|
||||
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
|
||||
sha1="02deef2df3513d191ee3bb3a13fd61a814d7161a"
|
||||
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetPath/target/qnx"
|
||||
|
||||
sudo cp "$aarch64le_toolchain" "$targetPath"
|
||||
sudo cp "$armv7le_toolchain" "$targetPath"
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ PATH=__IFS_PATH__:/system/xbin:.
|
||||
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/etc/fontconfig/fonts.conf=etc/fonts/fonts.conf
|
||||
var/share/fonts=usr/share/fonts
|
||||
|
||||
var/etc/hosts=local/misc_files/etc/hosts
|
||||
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
# local/snippets/ifs_files.custom
|
||||
# Placeholder for local list of files to add to ifs
|
||||
/usr/libexec/sshd-session=usr/libexec/sshd-session
|
||||
+2
@@ -18,6 +18,8 @@ rm -rf /data/var/share/fonts/NotoSansCJK*
|
||||
rm -rf /data/var/share/fonts/NotoSansMonoCJK*
|
||||
echo "---> Create fontconfig cache"
|
||||
fc-cache &
|
||||
# For fc-match in QFont tests
|
||||
ln -Ps /system/lib/libfontconfig.so.17 /system/lib/libfontconfig.so.1
|
||||
|
||||
# Add default route so QNX knows where to send
|
||||
# requests for unknown network
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ 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/libxml2.so.2=usr/lib/libxml2.so.2
|
||||
lib/libfreetype.so.24=usr/lib/libfreetype.so.24
|
||||
lib/libfreetype.so.26=usr/lib/libfreetype.so.26
|
||||
lib/libbz2.so.1=usr/lib/libbz2.so.1
|
||||
lib/liblzma.so.5=usr/lib/liblzma.so.5
|
||||
lib/libbacktrace.so.1=usr/lib/libbacktrace.so.1
|
||||
@@ -54,7 +54,7 @@ lib/libmmrndclient.so.1=usr/lib/libmmrndclient.so.1
|
||||
lib/libscreen.so.1=usr/lib/libscreen.so.1
|
||||
|
||||
# for fontconfig
|
||||
lib/libfontconfig.so.1=usr/lib/libfontconfig.so.1
|
||||
lib/libfontconfig.so.17=usr/lib/libfontconfig.so.17
|
||||
xbin/fc-cache=bin/fc-cache
|
||||
xbin/fc-match=local/misc_files/fc-match
|
||||
|
||||
|
||||
+5
@@ -53,6 +53,11 @@ xbin/fsevmgr=sbin/fsevmgr
|
||||
##############################################
|
||||
lib/libscreen.so.1=usr/lib/libscreen.so.1
|
||||
|
||||
##############################################
|
||||
### Audio support
|
||||
##############################################
|
||||
lib/libasound.so.5=lib/libasound.so.5
|
||||
|
||||
# for fontconfig
|
||||
lib/libfontconfig.so.17=usr/lib/libfontconfig.so.17
|
||||
xbin/fc-cache=bin/fc-cache
|
||||
|
||||
@@ -13,60 +13,60 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
######### VXworks libs #########
|
||||
# Installs to /opt/vxworks
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_libs_2503.tar.gz"
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_libs_2603.tar.gz"
|
||||
AltUrl=""
|
||||
sha1="96db52d86c2138a1ca31212372f48838ec08013e"
|
||||
sha1="e9337894d4591e1d9e67640181c3d48fdb3d4a12"
|
||||
targetFolder="/opt"
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
||||
SetEnvVar "VXWORKS_HOME" "/opt/vxworks"
|
||||
SetEnvVar "VXWORKS_SSH" "[email protected]"
|
||||
|
||||
# IMX 6
|
||||
VXWORKS_BUILD_VER="16-04-2025"
|
||||
VXWORKS_BUILD_VER="20-08-2026"
|
||||
######### VXworks toolchain #########
|
||||
# Installs to /opt/fsl_imx6_2_0_6_2_VSB
|
||||
# Installs to /opt/fsl_imx6_2_0_6_3_VSB
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_vsb_${VXWORKS_BUILD_VER}.tar.gz"
|
||||
AltUrl=""
|
||||
sha1="88f0f139ac62e8c0a4c5477d880a1ff345826479"
|
||||
sha1="cb40acde7227aaefe8397e3472318fe09af2d9d0"
|
||||
targetFolder="/opt/"
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
||||
SetEnvVar "WIND_CC_SYSROOT" "/opt/fsl_imx6_2_0_6_2_VSB"
|
||||
SetEnvVar "WIND_CC_SYSROOT" "/opt/fsl_imx6_2_0_6_3_VSB"
|
||||
|
||||
######### VXworks VIP kernel #########
|
||||
# Installs to /opt/fsl_imx6_2_0_6_2_VIP_QEMU
|
||||
# Installs to /opt/fsl_imx6_2_0_6_3_VIP_QEMU
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_vip_${VXWORKS_BUILD_VER}.tar.gz"
|
||||
AltUrl=""
|
||||
sha1="96056c0f9b1234160db2d9038a9e6fc24a2bbbd7"
|
||||
sha1="4209a8c2724fccfec9d30a22e53ca6598ef83b57"
|
||||
targetFolder="/opt/"
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
||||
|
||||
# IMX 8
|
||||
# Installs to /opt/nxp_imx8_1_0_6_3_VSB
|
||||
# Installs to /opt/nxp_imx8_1_0_7_1_VSB
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_imx8_vsb_${VXWORKS_BUILD_VER}.tar.gz"
|
||||
AltUrl=""
|
||||
sha1="cf6194b78bf08b894397fd5ce2a57abd25cf497b"
|
||||
sha1="20c1c31fc8ddc5356566a717a913e51bef42d41f"
|
||||
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="4c75222364d3907db9fb1605cabe0c92616d9ec9"
|
||||
sha1="dae9280a45f0ece5a2adc3bc6182ff0b675f4389"
|
||||
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="c3af7da92832ea71201dcf1022d7404966291f5c"
|
||||
sha1="264b3280e6fa89c8c8a2b1cdc8cb29bd3f1bb621"
|
||||
targetFolder="/opt/"
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
||||
|
||||
######### VXworks fonts and certs #########
|
||||
# Installs to /opt/fsl_imx6_2_0_6_2_VSB
|
||||
# Installs to /opt/fsl_imx6_2_0_6_3_VSB
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_misc.tar.gz"
|
||||
AltUrl=""
|
||||
sha1="1bc529b90b35b0b249f219e47d5798225a9b68d8"
|
||||
targetFolder="/opt/fsl_imx6_2_0_6_2_VSB/"
|
||||
targetFolder="/opt/fsl_imx6_2_0_6_3_VSB/"
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
||||
######### VXworks fonts and certs #########
|
||||
# Installs to /opt/itl_generic_skylake_VSB
|
||||
@@ -76,13 +76,6 @@ sha1="1bc529b90b35b0b249f219e47d5798225a9b68d8"
|
||||
targetFolder="/opt/itl_generic_skylake_VSB/"
|
||||
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
|
||||
|
||||
# Setup NFS exports that are needed by VxWorks qemu
|
||||
sudo bash -c "echo '/home/qt/work 172.31.1.10/24(rw,sync,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
|
||||
sudo bash -c "echo '/opt/fsl_imx6_2_0_6_2_VSB 172.31.1.10/24(rw,sync,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
|
||||
sudo bash -c "echo '/opt/itl_generic_skylake_VSB 172.31.1.10/24(rw,sync,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
|
||||
|
||||
sudo exportfs -a
|
||||
|
||||
# Enable ipv4 routing from vxWorks to Qt DNS
|
||||
sudo sed -i s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g /etc/sysctl.conf
|
||||
sudo iptables -I FORWARD 1 -j ACCEPT
|
||||
|
||||
@@ -2,57 +2,160 @@
|
||||
# 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
|
||||
|
||||
# Launch a single VxWorks QEMU emulator instance.
|
||||
#
|
||||
# Usage: vxworks_qemu_launcher.sh <arm|intel> [instance-id]
|
||||
#
|
||||
# Multiple instances are run in parallel to speed up the autotest run. Each
|
||||
# instance gets its own tap device, guest IP, MAC address, serial FIFO pair,
|
||||
# QEMU log and (for the TCG-based ARM emulator) a dedicated set of host CPU
|
||||
# cores. Instance 0 keeps the historical addresses so a single-instance run
|
||||
# behaves exactly as before.
|
||||
|
||||
[ $# -ge 1 ] || echo "Supply parameter which emulator to start <arm|intel> [instance-id]"
|
||||
TYPE=$1
|
||||
INSTANCE=${2:-0}
|
||||
|
||||
# Per-instance identifiers. Instance 0 == the original single-emulator layout.
|
||||
TAP="tap${INSTANCE}"
|
||||
GUEST_IP="172.31.1.$((10 + INSTANCE))"
|
||||
MAC=$(printf '52:54:00:12:34:%02x' "$INSTANCE")
|
||||
PIPE="/tmp/guest${INSTANCE}"
|
||||
QEMU_LOG_PATH="/home/qt/work/vxworks_qemu_log_${INSTANCE}.txt"
|
||||
|
||||
# Per-instance SSH target: same user as VXWORKS_SSH, but the instance's IP.
|
||||
if [[ "$VXWORKS_SSH" == *"@"* ]]; then
|
||||
SSH_TARGET="${VXWORKS_SSH%@*}@${GUEST_IP}"
|
||||
else
|
||||
SSH_TARGET="${GUEST_IP}"
|
||||
fi
|
||||
|
||||
# Host bridge and per-instance tap setup. Serialized across parallel launches
|
||||
# and made idempotent so concurrent instances don't race on the shared bridge.
|
||||
exec 9>"/tmp/vxworks_qemu_host_setup.lock"
|
||||
flock 9
|
||||
NFS_CONF_MARKER="# VxWorks QEMU NFS settings (added by vxworks_qemu_launcher.sh)"
|
||||
# Persist the sysctl settings so they survive the reboot between the build
|
||||
# and test phases, then apply them to the running kernel as well.
|
||||
SYSCTL_CONF="/etc/sysctl.d/90-vxworks-qemu.conf"
|
||||
if [ ! -f "$SYSCTL_CONF" ]; then
|
||||
sudo tee "$SYSCTL_CONF" >/dev/null <<'EOF'
|
||||
# VxWorks QEMU network settings (added by vxworks_qemu_launcher.sh)
|
||||
net.core.rmem_max=8388608
|
||||
net.core.rmem_default=8388608
|
||||
net.core.wmem_max=8388608
|
||||
net.core.wmem_default=8388608
|
||||
net.ipv4.ipfrag_high_thresh=16777216
|
||||
net.ipv4.ipfrag_low_thresh=12582912
|
||||
EOF
|
||||
fi
|
||||
sudo sysctl -q -p "$SYSCTL_CONF"
|
||||
|
||||
if ! grep -qF "$NFS_CONF_MARKER" /etc/nfs.conf; then
|
||||
# Configure NFS for UDP traffic
|
||||
sudo bash -c "echo -e '\n${NFS_CONF_MARKER}\n' >> /etc/nfs.conf"
|
||||
sudo bash -c "echo -e '[nfsd]\n' >> /etc/nfs.conf"
|
||||
sudo bash -c "echo -e 'threads=32\n' >> /etc/nfs.conf"
|
||||
sudo bash -c "echo -e 'udp=y\n' >> /etc/nfs.conf"
|
||||
sudo bash -c "echo -e 'tcp=n\n' >> /etc/nfs.conf"
|
||||
sudo bash -c "echo -e 'vers2=n\n' >> /etc/nfs.conf"
|
||||
sudo bash -c "echo -e 'vers3=y\n' >> /etc/nfs.conf"
|
||||
sudo bash -c "echo -e 'vers4=n\n' >> /etc/nfs.conf"
|
||||
# Setup NFS exports that are needed by VxWorks qemu
|
||||
sudo bash -c "echo '/home/qt/work 172.31.1.10/24(rw,async,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
|
||||
sudo bash -c "echo '/opt/fsl_imx6_2_0_6_3_VSB 172.31.1.10/24(rw,async,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
|
||||
sudo bash -c "echo '/opt/itl_generic_skylake_VSB 172.31.1.10/24(rw,async,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
|
||||
# Restart NFS server
|
||||
sudo exportfs -ra
|
||||
sudo systemctl restart nfs-server
|
||||
fi
|
||||
|
||||
# Setup bridge if not exist for VxWorks QEMU
|
||||
if ! ip link show br0 >/dev/null 2>&1; then
|
||||
sudo brctl addbr br0
|
||||
sudo brctl stp br0 off
|
||||
sudo ifconfig br0 172.31.1.1 netmask 255.255.255.0 promisc up
|
||||
sudo tunctl -u qt -t tap0
|
||||
sudo ifconfig tap0 promisc up
|
||||
sudo brctl addif br0 tap0
|
||||
fi
|
||||
if ! ip link show "${TAP}" >/dev/null 2>&1; then
|
||||
sudo tunctl -u qt -t "${TAP}"
|
||||
sudo ifconfig "${TAP}" promisc up
|
||||
sudo brctl addif br0 "${TAP}"
|
||||
fi
|
||||
exec 9>&-
|
||||
|
||||
[ $# -eq 1 ] || echo "Supply parameter which emulator to start <arm|intel>"
|
||||
TYPE=$1
|
||||
|
||||
QEMU_LOG_PATH="/home/qt/work/vxworks_qemu_log.txt"
|
||||
if [ "$TYPE" = "arm" ] || [ "$TYPE" = "" ]; then
|
||||
$VXWORKS_QEMU/bin/qemu-system-arm \
|
||||
-machine sabrelite \
|
||||
-smp 4 \
|
||||
-m 1G \
|
||||
-smp 2 \
|
||||
-m 3G \
|
||||
-nographic \
|
||||
-monitor none \
|
||||
-serial null \
|
||||
-serial pipe:/tmp/guest \
|
||||
-kernel /opt/fsl_imx6_2_0_6_2_VIP_QEMU/default/uVxWorks \
|
||||
-dtb /opt/fsl_imx6_2_0_6_2_VIP_QEMU/default/imx6q-sabrelite.dtb \
|
||||
-append "enet(0,0)host:vxWorks h=172.31.1.1 g=172.31.1.1 e=172.31.1.10 u=target pw=vxTarget s=/romfs/startup_script.txt" \
|
||||
-nic "tap,ifname=tap0,script=no" >"${QEMU_LOG_PATH}" 2>&1 &
|
||||
-serial pipe:${PIPE} \
|
||||
-kernel /opt/fsl_imx6_2_0_6_3_VIP_QEMU/default/uVxWorks \
|
||||
-dtb /opt/fsl_imx6_2_0_6_3_VIP_QEMU/default/imx6q-sabrelite.dtb \
|
||||
-append "enet(0,0)host:vxWorks h=172.31.1.1 g=172.31.1.1 e=${GUEST_IP} u=target pw=vxTarget s=/romfs/startup_script.txt" \
|
||||
-rtc base=localtime,clock=rt \
|
||||
-icount sleep=off \
|
||||
-nic "tap,ifname=${TAP},script=no,mac=${MAC}" >"${QEMU_LOG_PATH}" 2>&1 &
|
||||
elif [ "$TYPE" = "intel" ]; then
|
||||
$VXWORKS_QEMU/bin/qemu-system-x86_64 \
|
||||
-M q35 \
|
||||
-smp 8 \
|
||||
-m 16G \
|
||||
-smp 4 \
|
||||
-m 15G \
|
||||
-cpu "Skylake-Client" \
|
||||
-enable-kvm \
|
||||
-monitor none \
|
||||
-nographic \
|
||||
-serial null \
|
||||
-serial pipe:/tmp/guest \
|
||||
-serial pipe:${PIPE} \
|
||||
-kernel "/opt/itl_generic_skylake_VIP_QEMU/default/vxWorks" \
|
||||
-append "sysbootline:gei(0,0)host:vxWorks h=172.31.1.1 g=172.31.1.1 e=172.31.1.10 u=target pw=vxTarget s=/romfs/startup_script.txt" \
|
||||
-nic tap,ifname=tap0,script=no,downscript=no >"${QEMU_LOG_PATH}" 2>&1 &
|
||||
-append "sysbootline:gei(0,0)host:vxWorks h=172.31.1.1 g=172.31.1.1 e=${GUEST_IP} u=target pw=vxTarget s=/romfs/startup_script.txt" \
|
||||
-nic "tap,ifname=${TAP},script=no,downscript=no,mac=${MAC}" >"${QEMU_LOG_PATH}" 2>&1 &
|
||||
fi
|
||||
QEMU_PID=$!
|
||||
|
||||
for _ in $(seq 30)
|
||||
# The launcher is also re-invoked from inside the ctest environment when
|
||||
# coin_vxworks_qemu_runner.sh restarts a wedged emulator. That environment
|
||||
# carries a library path with the provisioned OpenSSL, which the system ssh
|
||||
# (linked against the distro OpenSSL) refuses to load ("OpenSSL version
|
||||
# mismatch"), so run ssh with a clean library path. Bound each probe with a
|
||||
# hard timeout as well: ConnectTimeout only limits TCP connect, and a
|
||||
# half-booted guest that accepts the connection but never answers would
|
||||
# otherwise stall the loop.
|
||||
#
|
||||
# Boot-to-ssh takes seconds on KVM x86 but 15-60s+ on TCG ARM, with a long
|
||||
# tail when several instances boot in parallel (a fixed 30-try budget killed
|
||||
# healthy relaunches mid-boot on qemu_armv7), so wait on a wall-clock
|
||||
# deadline rather than a retry count, and give up early only when the QEMU
|
||||
# process itself has died.
|
||||
SSH_WAIT_SECS=${VXWORKS_SSH_WAIT_SECS:-300}
|
||||
SSH_UP=0
|
||||
deadline=$((SECONDS + SSH_WAIT_SECS))
|
||||
while (( SECONDS < deadline ))
|
||||
do
|
||||
status=$(ssh -o BatchMode=yes -o HostKeyAlgorithms=+ssh-rsa -o ConnectTimeout=1 "${VXWORKS_SSH}" echo emulator up) || true
|
||||
if [[ -n "$QEMU_PID" ]] && ! kill -0 "$QEMU_PID" 2>/dev/null; then
|
||||
echo "QEMU process for instance ${INSTANCE} exited during boot"
|
||||
break
|
||||
fi
|
||||
status=$(env -u LD_LIBRARY_PATH timeout -k 5 15 \
|
||||
ssh -n -o BatchMode=yes -o HostKeyAlgorithms=+ssh-rsa \
|
||||
-o ConnectTimeout=1 "${SSH_TARGET}" echo emulator up) || true
|
||||
if [[ $status == *"emulator up"* ]] ; then
|
||||
echo "VXWORKS QEMU SSH server up"
|
||||
echo "VXWORKS QEMU SSH server up (instance ${INSTANCE} @ ${GUEST_IP})"
|
||||
SSH_UP=1
|
||||
break
|
||||
else
|
||||
echo "Waiting VXWORKS QEMU SSH server"
|
||||
echo "Waiting VXWORKS QEMU SSH server (instance ${INSTANCE} @ ${GUEST_IP})"
|
||||
sleep 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Do not report success for an instance whose SSH server never came up: the
|
||||
# caller would go on to source the test script on a guest in an unknown
|
||||
# state. Exit non-zero so the testrunner's restart path can fail the attempt
|
||||
# and let qt-testrunner retry with a clean slot.
|
||||
if [[ $SSH_UP -ne 1 ]]; then
|
||||
echo "VXWORKS QEMU SSH server did not come up (instance ${INSTANCE} @ ${GUEST_IP})"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -25,8 +25,8 @@ basePath="http://ci-files01-hki.ci.qt.io/input/android"
|
||||
toolsVersion="19.0"
|
||||
toolsFile="commandlinetools-mac-13114758_latest.zip"
|
||||
toolsBackupUrl="https://dl.google.com/android/repository/$toolsFile"
|
||||
sdkBuildToolsVersion="35.0.1"
|
||||
sdkApiLevel="android-35"
|
||||
sdkBuildToolsVersion="37.0.0"
|
||||
sdkApiLevel="android-37.0"
|
||||
toolsSha1="c3e06a1959762e89167d1cbaa988605f6f7c1d24"
|
||||
|
||||
ndkVersionLatest="r27c"
|
||||
@@ -43,9 +43,6 @@ ndkVersionNightly1=$ndkVersionLatest # Set as same version as latest = skip NDK
|
||||
ndkSha1Nightly1=$ndkSha1Latest
|
||||
ndkVersionNightly2=$ndkVersionLatest
|
||||
ndkSha1Nightly2=$ndkSha1Latest
|
||||
sdkBuildToolsVersion="36.0.0"
|
||||
# this is compile sdk version
|
||||
sdkApiLevel="android-36"
|
||||
|
||||
toolsTargetFile="/tmp/$toolsFile"
|
||||
toolsSourceFile="$basePath/$toolsFile"
|
||||
|
||||
@@ -11,11 +11,11 @@ source "${BASH_SOURCE%/*}/InstallAppFromCompressedFileFromURL.sh"
|
||||
# shellcheck source=../unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
majorminorversion="3.30.5"
|
||||
version="3.30.5"
|
||||
majorminorversion="4.3"
|
||||
version="4.3.2"
|
||||
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/cmake/cmake-$version-macos-universal.tar.gz"
|
||||
AltUrl="https://cmake.org/files/v$majorminorversion/cmake-$version-macos-universal.tar.gz"
|
||||
SHA1="c81c2f7482a901c4a32a81034920c23c22233a0f"
|
||||
SHA1="e3b456c03d992239f9d83d933336768c7fc1ff54"
|
||||
appPrefix="cmake-$version-macos-universal"
|
||||
|
||||
InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix"
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
diffutils
|
||||
nasm
|
||||
yasm
|
||||
|
||||
@@ -9,18 +9,105 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
|
||||
# shellcheck source=../unix/SourceEnvVars.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SourceEnvVars.sh"
|
||||
|
||||
echo "Caching Gradle distribution and dependencies"
|
||||
gradleCacheFileName="gradle_9.3.1_darwin_cache_v2.tar.gz"
|
||||
gradleCacheUrl="http://ci-files01-hki.ci.qt.io/input/gradle/$gradleCacheFileName"
|
||||
gradleCacheSha1="d4f93be293224e3d55779cf64252337fbb26b53b"
|
||||
gradleCacheFile="/tmp/$gradleCacheFileName"
|
||||
DownloadURL "$gradleCacheUrl" "$gradleCacheUrl" "$gradleCacheSha1" "$gradleCacheFile"
|
||||
mkdir -p "$HOME/.gradle"
|
||||
tar -xzf "$gradleCacheFile" -C "$HOME/.gradle" --strip-components=1
|
||||
rm "$gradleCacheFile"
|
||||
echo "Caching Gradle distributions and dependencies"
|
||||
|
||||
gradle_project_source="${BASH_SOURCE%/*}/../shared/gradle/project"
|
||||
cp -r "$gradle_project_source" /tmp/gradle_project
|
||||
cd /tmp/gradle_project
|
||||
chmod +x gradlew
|
||||
sh gradlew build
|
||||
gradleDistributionMirror="http://ci-files01-hki.ci.qt.io/input/gradle"
|
||||
gradleInitScript="init.d/nexus-mirror.gradle"
|
||||
|
||||
# Route every Gradle repository through the internal Nexus mirror.
|
||||
mkdir -p "$HOME/.gradle/init.d"
|
||||
cp "${BASH_SOURCE%/*}/../shared/gradle/$gradleInitScript" "$HOME/.gradle/$gradleInitScript"
|
||||
|
||||
# Returns the hash of the Gradle binary distribution for a given Gradle version.
|
||||
# Gradle calculates the hash as base36(md5(distributionUrl)).
|
||||
gradleDistributionHash () {
|
||||
version="$1"
|
||||
propertiesFile="$gradle_project_source/gradle/wrapper/gradle-wrapper.properties"
|
||||
|
||||
# 1. Read the project's distributionUrl.
|
||||
distributionUrl=$(grep '^distributionUrl=' "$propertiesFile")
|
||||
distributionUrl=${distributionUrl#distributionUrl=}
|
||||
# 2. Unescape the Java-properties (e.g. '\:').
|
||||
distributionUrl=${distributionUrl//\\:/:}
|
||||
# 3. Swap in the requested version while maintaining the distribution URL.
|
||||
distributionUrl=${distributionUrl/gradle-[0-9.]*-bin.zip/gradle-$version-bin.zip}
|
||||
|
||||
if command -v md5sum >/dev/null 2>&1; then
|
||||
md5Hex=$(printf '%s' "$distributionUrl" | md5sum | awk '{print $1}')
|
||||
else
|
||||
md5Hex=$(printf '%s' "$distributionUrl" | md5)
|
||||
fi
|
||||
|
||||
# Convert the md5 to base36: read it as a number, then repeatedly take the
|
||||
# next digit (number % 36) and divide by 36, prepending each digit's character.
|
||||
number=$(printf 'ibase=16; %s\n' "$(printf '%s' "$md5Hex" | tr 'a-f' 'A-F')" | bc)
|
||||
hash=""
|
||||
alphabet="0123456789abcdefghijklmnopqrstuvwxyz"
|
||||
while [ "$number" != "0" ]; do
|
||||
digit=$(printf '%s %% 36\n' "$number" | bc)
|
||||
number=$(printf '%s / 36\n' "$number" | bc)
|
||||
hash="${alphabet:$digit:1}$hash"
|
||||
done
|
||||
printf '%s' "$hash"
|
||||
}
|
||||
|
||||
# Seed a Gradle distribution binary into ~/.gradle from the internal mirror.
|
||||
seedGradleDistribution () {
|
||||
version="$1"
|
||||
sha="$2"
|
||||
|
||||
distributionDir="$HOME/.gradle/wrapper/dists/gradle-${version}-bin/$(gradleDistributionHash "$version")"
|
||||
if [ -e "$distributionDir/gradle-${version}-bin.zip.ok" ]; then
|
||||
return 0
|
||||
fi
|
||||
mkdir -p "$distributionDir"
|
||||
zip="$distributionDir/gradle-${version}-bin.zip"
|
||||
url="$gradleDistributionMirror/gradle-${version}-bin.zip"
|
||||
DownloadURL "$url" "$url" "$sha" "$zip"
|
||||
unzip -q -o "$zip" -d "$distributionDir"
|
||||
rm -f "$zip"
|
||||
touch "$distributionDir/gradle-${version}-bin.zip.ok"
|
||||
}
|
||||
|
||||
# Populate ~/.gradle/caches by priming the shared project for each Gradle and AGP profile.
|
||||
cacheGradleProfile () {
|
||||
echo "Caching Gradle profile $*"
|
||||
tmp="$(mktemp -d)"
|
||||
project="$tmp/project"
|
||||
cp -r "$gradle_project_source" "$project"
|
||||
|
||||
props="$project/gradle/wrapper/gradle-wrapper.properties"
|
||||
for kv in "$@"; do
|
||||
case "$kv" in
|
||||
gradle=*)
|
||||
sed "s#gradle-[0-9.]*-bin.zip#gradle-${kv#*=}-bin.zip#" "$props" > "$props.tmp"
|
||||
mv "$props.tmp" "$props"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
toml="$project/gradle/libs.versions.toml"
|
||||
for kv in "$@"; do
|
||||
case "$kv" in
|
||||
gradle=*) ;;
|
||||
*)
|
||||
key="${kv%%=*}"
|
||||
val="${kv#*=}"
|
||||
sed "/^\[versions\]/,/^\[/ s/^$key = .*/$key = \"$val\"/" "$toml" > "$toml.tmp"
|
||||
mv "$toml.tmp" "$toml"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
sh "$project/gradlew" --project-dir "$project" build
|
||||
rm -rf "$tmp"
|
||||
}
|
||||
|
||||
# Cache both the current and the previous versions to avoid issues during bumps.
|
||||
seedGradleDistribution 9.3.1 "b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06"
|
||||
cacheGradleProfile gradle=9.3.1 agp=9.0.0
|
||||
seedGradleDistribution 9.5.1 "bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f"
|
||||
cacheGradleProfile gradle=9.5.1 agp=9.2.1
|
||||
|
||||
echo "Cached Gradle distributions and dependencies under $HOME/.gradle."
|
||||
|
||||
Executable
+64
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
# 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 install HarmonyOS sdk and patches.
|
||||
|
||||
set -e
|
||||
|
||||
# shellcheck source=../unix/DownloadURL.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
|
||||
# shellcheck source=../unix/check_and_set_proxy.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/check_and_set_proxy.sh"
|
||||
# shellcheck source=../unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
|
||||
targetFolder="/opt/harmonyos"
|
||||
sdkTargetFolder="$targetFolder/command-line-tools"
|
||||
|
||||
sudo mkdir -p "$sdkTargetFolder"
|
||||
|
||||
basePath="http://ci-files01-hki.ci.qt.io/input/harmonyos"
|
||||
|
||||
toolsVersion="6.1.0.860"
|
||||
toolsFile="commandline-tools-mac-arm64-6.1.0.860.zip"
|
||||
toolsSha1="4ba9df069fc5c651753c74297d723a2461be12e9"
|
||||
|
||||
toolsTargetFile="/tmp/$toolsFile"
|
||||
toolsSourceFile="$basePath/$toolsFile"
|
||||
|
||||
echo "Download and unzip HarmonyOS SDK"
|
||||
DownloadURL "$toolsSourceFile" "$toolsSourceFile" "$toolsSha1" "$toolsTargetFile"
|
||||
echo "Unzipping HarmonyOS Tools to '$targetFolder'"
|
||||
sudo unzip -q "$toolsTargetFile" -d "$targetFolder"
|
||||
rm "$toolsTargetFile"
|
||||
|
||||
patchFile="harmonyos_sdk_patches.zip"
|
||||
patchSha1="7f912104a5600bc176891bc6e9d97732f4266ad6"
|
||||
|
||||
patchTargetFile="/tmp/$patchFile"
|
||||
patchSourceFile="$basePath/$patchFile"
|
||||
patchTargetFolder="$targetFolder/harmonyos_sdk_patches"
|
||||
|
||||
echo "Download and unzip HarmonyOS SDK patches"
|
||||
DownloadURL "$patchSourceFile" "$patchSourceFile" "$patchSha1" "$patchTargetFile"
|
||||
echo "Unzipping HarmonyOS SDK patches to '$targetFolder'"
|
||||
sudo unzip -q "$patchTargetFile" -d "$targetFolder"
|
||||
rm "$patchTargetFile"
|
||||
|
||||
echo "Changing ownership of HarmonyOS files."
|
||||
sudo chown -R qt:wheel "$sdkTargetFolder"
|
||||
sudo chmod -R 755 $sdkTargetFolder
|
||||
sudo chown -R qt:wheel "$patchTargetFolder"
|
||||
sudo chmod -R 755 $patchTargetFolder
|
||||
|
||||
echo "Patching HarmonyOS SDK"
|
||||
|
||||
sdkRootFolder="$sdkTargetFolder/sdk/default/openharmony"
|
||||
echo "Checking the contents of HarmonyOS SDK..."
|
||||
ls -l "$sdkRootFolder"
|
||||
|
||||
SetEnvVar "HARMONYOS_SDK_ROOT" "$sdkRootFolder"
|
||||
export HARMONYOS_SDK_ROOT="$sdkRootFolder"
|
||||
|
||||
echo "HarmonyOS SDK setup finished"
|
||||
@@ -102,7 +102,6 @@ build_ffmpeg_ios() {
|
||||
--extra-ldflags="${common_arch_flags}"
|
||||
--target-os=darwin
|
||||
--install-name-dir="@rpath"
|
||||
--disable-audiotoolbox
|
||||
|
||||
# We perform manual stripping after generating dSYMs.
|
||||
# Make sure to skip it during FFmpeg compilation.
|
||||
|
||||
@@ -22,6 +22,12 @@ ffmpeg_config_options=$(get_ffmpeg_config_options "shared")
|
||||
default_prefix="/usr/local/$ffmpeg_name"
|
||||
prefix="${2:-$default_prefix}"
|
||||
|
||||
# Disable X11 linkage on macOS. FFmpeg auto-detect
|
||||
# mechanisms will pull it in as a dependency if found
|
||||
# on the host. If this happens, it makes the binaries
|
||||
# not loadable on macOS machines without libx11 installed.
|
||||
ffmpeg_config_options+=" --disable-libxcb --disable-xlib"
|
||||
|
||||
build_ffmpeg() {
|
||||
local arch="$1"
|
||||
local build_dir="$ffmpeg_source_dir/build/$arch"
|
||||
|
||||
@@ -34,6 +34,6 @@ SetEnvVar "SBOM_PYTHON_APPS_PATH" "/Library/Frameworks/Python.framework/Versions
|
||||
SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/Library/Frameworks/Python.framework/Versions/3.11/bin/python3"
|
||||
|
||||
# Install Python certificates. Required at least for emsdk installation
|
||||
open /Applications/Python\ 3.11/Install\ Certificates.command
|
||||
/Applications/Python\ 3.11/Install\ Certificates.command
|
||||
|
||||
echo "python3 = 3.11.9" >> ~/versions.txt
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
// Copyright (C) 2026 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
|
||||
|
||||
// Installed by Coin into $GRADLE_USER_HOME/init.d to route every gradle
|
||||
// invocation's repositories through the internal Nexus mirror.
|
||||
|
||||
def mirror = 'https://ci-passth-cache.ci.qt.io/repository/gradle-all/'
|
||||
|
||||
def addMirror = { repositories ->
|
||||
repositories.maven { mavenRepository ->
|
||||
mavenRepository.name = 'qt-nexus-mirror'
|
||||
mavenRepository.url = mirror
|
||||
}
|
||||
}
|
||||
|
||||
def enforceMirror = { repositories ->
|
||||
repositories.all { repository ->
|
||||
if (repository.name != 'qt-nexus-mirror')
|
||||
repositories.remove(repository)
|
||||
}
|
||||
addMirror(repositories)
|
||||
}
|
||||
|
||||
// Modern templates: replace the settings-level repositories with the mirror.
|
||||
settingsEvaluated { settings ->
|
||||
settings.pluginManagement.repositories.clear()
|
||||
addMirror(settings.pluginManagement.repositories)
|
||||
settings.dependencyResolutionManagement {
|
||||
repositoriesMode.set(RepositoriesMode.PREFER_PROJECT)
|
||||
repositories.clear()
|
||||
addMirror(repositories)
|
||||
}
|
||||
}
|
||||
|
||||
// Legacy templates: replace the buildscript and project repositories with the mirror.
|
||||
allprojects { project ->
|
||||
enforceMirror(project.buildscript.repositories)
|
||||
enforceMirror(project.repositories)
|
||||
}
|
||||
@@ -7,7 +7,9 @@ which use `--offline`.
|
||||
Caches dependencies for:
|
||||
- `com.android.application`: used by Qt test/example APK builds
|
||||
- `com.android.library`: used by Qt JAR builds
|
||||
- `android.dynamic.feature`: used by Feature Delivery tests
|
||||
- `org.jetbrains.kotlin.android`: used by some Qt modules
|
||||
- `org.qtproject.qt.gradleplugin`: used by Qt for Android Studio projects
|
||||
- AndroidX: used by app builds
|
||||
|
||||
These files should be updated each time Qt bumps the supported Android or
|
||||
|
||||
@@ -4,17 +4,21 @@ plugins {
|
||||
|
||||
android {
|
||||
namespace = 'org.qtproject.qt.gradlecache.app'
|
||||
compileSdk = 36
|
||||
compileSdk = 37
|
||||
compileSdkMinor = 0
|
||||
|
||||
defaultConfig {
|
||||
applicationId 'org.qtproject.qt.gradlecache.app'
|
||||
minSdk = 28
|
||||
}
|
||||
|
||||
dynamicFeatures = [':feature']
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation libs.core
|
||||
implementation libs.appcompat
|
||||
implementation libs.material
|
||||
implementation libs.play.feature.delivery
|
||||
testImplementation libs.junit
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="feature_title">Feature</string>
|
||||
</resources>
|
||||
@@ -1,4 +1,6 @@
|
||||
plugins {
|
||||
alias(libs.plugins.android.application) apply false
|
||||
alias(libs.plugins.android.library) apply false
|
||||
alias(libs.plugins.android.dynamic.feature) apply false
|
||||
alias(libs.plugins.qt.gradle.plugin) apply false
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
plugins {
|
||||
alias(libs.plugins.android.dynamic.feature)
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = 'org.qtproject.qt.gradlecache.feature'
|
||||
compileSdk = 37
|
||||
compileSdkMinor = 0
|
||||
|
||||
defaultConfig {
|
||||
minSdk = 28
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation project(':app')
|
||||
implementation libs.play.feature.delivery
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:dist="http://schemas.android.com/apk/distribution">
|
||||
<dist:module
|
||||
dist:instant="false"
|
||||
dist:title="@string/feature_title">
|
||||
<dist:delivery>
|
||||
<dist:on-demand />
|
||||
</dist:delivery>
|
||||
<dist:fusing dist:include="true" />
|
||||
</dist:module>
|
||||
</manifest>
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package org.qtproject.qt.gradlecache.feature
|
||||
|
||||
object Feature {
|
||||
fun hello(): String = "hello"
|
||||
}
|
||||
@@ -1,16 +1,21 @@
|
||||
[versions]
|
||||
agp = "9.0.0"
|
||||
agp = "9.2.1"
|
||||
core = "1.17.0"
|
||||
appcompat = "1.7.1"
|
||||
material = "1.13.0"
|
||||
junit = "4.13.2"
|
||||
play-feature-delivery = "2.1.0"
|
||||
qt-gradle-plugin = "1.4"
|
||||
|
||||
[libraries]
|
||||
core = { group = "androidx.core", name = "core", version.ref = "core" }
|
||||
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
|
||||
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
||||
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
||||
play-feature-delivery = { module = "com.google.android.play:feature-delivery", version.ref = "play-feature-delivery" }
|
||||
|
||||
[plugins]
|
||||
android-application = { id = "com.android.application", version.ref = "agp" }
|
||||
android-library = { id = "com.android.library", version.ref = "agp" }
|
||||
android-dynamic-feature = { id = "com.android.dynamic-feature", version.ref = "agp" }
|
||||
qt-gradle-plugin = { id = "org.qtproject.qt.gradleplugin", version.ref = "qt-gradle-plugin" }
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
||||
@@ -4,7 +4,8 @@ plugins {
|
||||
|
||||
android {
|
||||
namespace = 'org.qtproject.qt.gradlecache.lib'
|
||||
compileSdk = 36
|
||||
compileSdk = 37
|
||||
compileSdkMinor = 0
|
||||
|
||||
defaultConfig {
|
||||
minSdk = 28
|
||||
|
||||
@@ -14,4 +14,4 @@ dependencyResolutionManagement {
|
||||
}
|
||||
|
||||
rootProject.name = 'gradlecache'
|
||||
include ':app', ':lib'
|
||||
include ':app', ':lib', ':feature'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
set(VCPKG_ENV_PASSTHROUGH_UNTRACKED OHOS_SDK_ROOT)
|
||||
set(VCPKG_TARGET_ARCHITECTURE arm64)
|
||||
set(VCPKG_CRT_LINKAGE dynamic)
|
||||
set(VCPKG_LIBRARY_LINKAGE dynamic)
|
||||
set(VCPKG_LIBRARY_LINKAGE static)
|
||||
set(VCPKG_CMAKE_SYSTEM_NAME OHOS)
|
||||
set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-unknown-linux-ohos")
|
||||
set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DOHOS_ARCH=arm64-v8a -DCMAKE_PLATFORM_NO_VERSIONED_SONAME=ON)
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
"default-registry": {
|
||||
"kind": "git",
|
||||
"repository": "https://git.qt.io/qtbuildsystem/vcpkg",
|
||||
"reference": "refs/tags/2026.05.05-ohos",
|
||||
"baseline": "e59d4f2aeeb7f21a7d22b078111223ef71a509f2"
|
||||
"baseline": "93580fc29654eec8d22804a01d7191284d65f28e"
|
||||
},
|
||||
"overlay-triplets": [ "./../triplets" ]
|
||||
}
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
},
|
||||
{
|
||||
"name": "protobuf",
|
||||
"platform": "!osx & !ohos"
|
||||
"platform": "!osx & !ohos",
|
||||
"features": [ "libprotoc" ]
|
||||
},
|
||||
{
|
||||
"name": "protobuf",
|
||||
|
||||
@@ -1 +1 @@
|
||||
vcpkg_version=2026.05.05-ohos
|
||||
vcpkg_version=2026.06.01-qt
|
||||
|
||||
@@ -2,25 +2,38 @@
|
||||
# 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.3"}"
|
||||
local sha1="${2:-27051817deec88bed3b9652d49f9127d22268d83}"
|
||||
download_ffmpeg() (
|
||||
local version="${1:-"9.0.1"}"
|
||||
local sha1="${2:-89c318905212e6b67e10e42ab10ab8007e0aefda}"
|
||||
|
||||
local ffmpeg_name="FFmpeg-$version"
|
||||
local ffmpeg_name="FFmpeg-n$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 url_public="https://ffmpeg.org/releases/ffmpeg-$version.tar.gz"
|
||||
local url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/ffmpeg-$version.tar.gz"
|
||||
local app_prefix=""
|
||||
|
||||
local temp_dir
|
||||
temp_dir=$(mktemp -d)
|
||||
trap 'rm -rf "$temp_dir"' EXIT
|
||||
|
||||
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
|
||||
InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix" > /dev/null
|
||||
InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$temp_dir" "$app_prefix" > /dev/null
|
||||
|
||||
local extracted_dirs=("$temp_dir"/*/)
|
||||
if [ "${#extracted_dirs[@]}" -ne 1 ] || [ ! -d "${extracted_dirs[0]}" ]; then
|
||||
>&2 echo "Expected exactly one directory in the FFmpeg archive, got: ${extracted_dirs[*]}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$target_dir"
|
||||
mv "${extracted_dirs[0]%/}" "$ffmpeg_source_dir"
|
||||
fi
|
||||
|
||||
echo "$ffmpeg_source_dir"
|
||||
}
|
||||
)
|
||||
|
||||
get_ffmpeg_config_options() {
|
||||
local build_type="$1"
|
||||
|
||||
@@ -22,7 +22,7 @@ targetDir="$HOME/grpc-$version"
|
||||
targetFile="$targetDir.zip"
|
||||
DownloadURL "$internalUrl" "$externalUrl" "$sha1" "$targetFile"
|
||||
unzip -q "$targetFile" -d "$HOME"
|
||||
sudo rm "$targetFile"
|
||||
rm "$targetFile"
|
||||
|
||||
# devtoolset is needed when running configuration
|
||||
if uname -a |grep -qv "Darwin"; then
|
||||
@@ -60,7 +60,7 @@ cmake "$targetDir" -G"Ninja Multi-Config" \
|
||||
-DgRPC_ZLIB_PROVIDER="package"
|
||||
ninja all
|
||||
|
||||
sudo env "PATH=$PATH" ninja install
|
||||
env "PATH=$PATH" ninja install
|
||||
# Refresh shared library cache if OS isn't macOS
|
||||
if uname -a |grep -qv "Darwin"; then
|
||||
sudo ldconfig
|
||||
@@ -69,5 +69,5 @@ fi
|
||||
SetEnvVar "gRPC_ROOT" "$installPrefix"
|
||||
SetEnvVar "absl_ROOT" "$installPrefix"
|
||||
|
||||
sudo rm -rf "$targetDir"
|
||||
sudo rm -rf "$buildDir"
|
||||
rm -rf "$targetDir"
|
||||
rm -rf "$buildDir"
|
||||
|
||||
@@ -41,8 +41,8 @@ $ndkOfficialUrlNightly2 = "https://dl.google.com/android/repository/android-ndk-
|
||||
$toolsVersion = "19.0"
|
||||
$toolsFile = "commandlinetools-win-13114758_latest.zip"
|
||||
$sdkApi = "ANDROID_API_VERSION"
|
||||
$sdkApiLevel = "android-36"
|
||||
$sdkBuildToolsVersion = "36.0.0"
|
||||
$sdkApiLevel = "android-37.0"
|
||||
$sdkBuildToolsVersion = "37.0.0"
|
||||
$toolsCachedUrl= "\\ci-files01-hki.ci.qt.io\provisioning\android\$toolsFile"
|
||||
$toolsOfficialUrl = "https://dl.google.com/android/repository/$toolsFile"
|
||||
$toolsChecksum = "54a582f3bf73e04253602f2d1c80bd5868aac115"
|
||||
|
||||
@@ -3,22 +3,22 @@
|
||||
|
||||
. "$PSScriptRoot\helpers.ps1"
|
||||
|
||||
$majorminorversion = "3.30"
|
||||
$version = "3.30.5"
|
||||
$majorminorversion = "4.3"
|
||||
$version = "4.3.2"
|
||||
|
||||
$cpu_arch = Get-CpuArchitecture
|
||||
Write-Host "Installing CMake for architecture $cpu_arch"
|
||||
switch ($cpu_arch) {
|
||||
arm64 {
|
||||
$arch = "arm64"
|
||||
$sha1 = "408977a174476407bd660604f110a26ba41a6efd"
|
||||
$majorminorversion = "3.30"
|
||||
$version = "3.30.5"
|
||||
$sha1 = "71949e4637accf5a92f35d357dc861e6a8d645cf"
|
||||
$majorminorversion = "4.3"
|
||||
$version = "4.3.2"
|
||||
Break
|
||||
}
|
||||
x64 {
|
||||
$arch = "i386"
|
||||
$sha1 = "d0636735c2d13a4443662605cd80c708f265eacc"
|
||||
$sha1 = "abc3ae51ec5a11fb367a39ddfb7db0c9ea697a7b"
|
||||
}
|
||||
default {
|
||||
throw "Unknown architecture $cpu_arch"
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
diffutils
|
||||
make
|
||||
nasm
|
||||
yasm
|
||||
|
||||
@@ -3,23 +3,109 @@
|
||||
|
||||
. "$PSScriptRoot\helpers.ps1"
|
||||
|
||||
Write-Host "Caching Gradle distribution and dependencies"
|
||||
$gradleCacheFileName = "gradle_9.3.1_windows_cache_v2.zip"
|
||||
$gradleCacheCachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\gradle\$gradleCacheFileName"
|
||||
$gradleCacheOfficialUrl = $gradleCacheCachedUrl
|
||||
$gradleCacheChecksum = "fcd653a1f4f30da9074a7aa7cfcad9219ed57d96"
|
||||
$gradleCacheZip = "C:\Windows\Temp\$gradleCacheFileName"
|
||||
Download $gradleCacheOfficialUrl $gradleCacheCachedUrl $gradleCacheZip
|
||||
Verify-Checksum $gradleCacheZip $gradleCacheChecksum
|
||||
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.gradle"
|
||||
Extract-7Zip $gradleCacheZip "$env:USERPROFILE"
|
||||
Remove $gradleCacheZip
|
||||
Write-Host "Caching Gradle distributions and dependencies"
|
||||
|
||||
$gradleProjectSource = "$PSScriptRoot\..\shared\gradle\project"
|
||||
$gradleProjectTarget = "C:\Windows\Temp\gradle_project"
|
||||
Copy-Item -Recurse -Force $gradleProjectSource $gradleProjectTarget
|
||||
$env:ANDROID_SDK_ROOT = [Environment]::GetEnvironmentVariable("ANDROID_SDK_ROOT", "Machine")
|
||||
Push-Location $gradleProjectTarget
|
||||
cmd /c "gradlew.bat --no-daemon build"
|
||||
Pop-Location
|
||||
if ($LASTEXITCODE -ne 0) { throw "Gradle caching failed" }
|
||||
$gradleDistributionMirror = "\\ci-files01-hki.ci.qt.io\provisioning\gradle"
|
||||
$gradleInitScript = "init.d\nexus-mirror.gradle"
|
||||
|
||||
# Route every Gradle repository through the internal Nexus mirror.
|
||||
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.gradle\init.d" | Out-Null
|
||||
Copy-Item -Force "$PSScriptRoot\..\shared\gradle\$gradleInitScript" "$env:USERPROFILE\.gradle\$gradleInitScript"
|
||||
|
||||
# Returns the hash of the Gradle binary distribution for a given Gradle version.
|
||||
# Gradle calculates the hash as base36(md5(distributionUrl)).
|
||||
function Get-GradleDistributionHash([string]$Version) {
|
||||
# 1. Read the project's distributionUrl.
|
||||
$distributionUrl = Get-Content "$gradleProjectSource\gradle\wrapper\gradle-wrapper.properties" |
|
||||
Where-Object { $_ -like 'distributionUrl=*' }
|
||||
$distributionUrl = $distributionUrl -replace '^distributionUrl=', ''
|
||||
# 2. Unescape the Java-properties (e.g. '\:').
|
||||
$distributionUrl = $distributionUrl -replace '\\:', ':'
|
||||
# 3. Swap in the requested version while maintaining the distribution URL.
|
||||
$distributionUrl = $distributionUrl -replace 'gradle-[0-9.]+-bin\.zip', "gradle-$Version-bin.zip"
|
||||
|
||||
# .NET BigInteger is little-endian two's complement, so reverse the md5 and
|
||||
# append a 0 byte to get the same positive value Gradle uses.
|
||||
$md5 = [System.Security.Cryptography.MD5]::Create().ComputeHash([Text.Encoding]::UTF8.GetBytes($distributionUrl))
|
||||
[array]::Reverse($md5)
|
||||
$number = [System.Numerics.BigInteger]::new([byte[]]($md5 + 0))
|
||||
|
||||
# Convert the md5 to base36: repeatedly take the next digit (number % 36) and
|
||||
# divide by 36, prepending each digit's character.
|
||||
$alphabet = "0123456789abcdefghijklmnopqrstuvwxyz"
|
||||
$hash = ""
|
||||
while ($number -gt 0) {
|
||||
$digit = [int]($number % 36)
|
||||
$hash = $alphabet[$digit] + $hash
|
||||
$number = $number / 36
|
||||
}
|
||||
return $hash
|
||||
}
|
||||
|
||||
# Seed a Gradle distribution binary into ~/.gradle from the internal mirror.
|
||||
function Seed-GradleDistribution([string]$Version, [string]$Sha256) {
|
||||
$distributionDir = "$env:USERPROFILE\.gradle\wrapper\dists\gradle-$Version-bin\$(Get-GradleDistributionHash $Version)"
|
||||
if (Test-Path "$distributionDir\gradle-$Version-bin.zip.ok") {
|
||||
return
|
||||
}
|
||||
New-Item -ItemType Directory -Force -Path $distributionDir | Out-Null
|
||||
$zip = "$distributionDir\gradle-$Version-bin.zip"
|
||||
$url = "$gradleDistributionMirror\gradle-$Version-bin.zip"
|
||||
Download $url $url $zip
|
||||
Verify-Checksum $zip $Sha256
|
||||
Extract-7Zip $zip $distributionDir
|
||||
Remove $zip
|
||||
New-Item -ItemType File -Force -Path "$distributionDir\gradle-$Version-bin.zip.ok" | Out-Null
|
||||
}
|
||||
|
||||
# Populate ~/.gradle/caches by priming the shared project for each Gradle and AGP profile.
|
||||
function Cache-GradleProfile([string[]]$VersionProfile) {
|
||||
Write-Host "Caching Gradle profile $($VersionProfile -join ' ')"
|
||||
$project = Join-Path $env:TEMP ([System.Guid]::NewGuid().ToString())
|
||||
Copy-Item -Recurse -Force $gradleProjectSource $project
|
||||
|
||||
$props = "$project\gradle\wrapper\gradle-wrapper.properties"
|
||||
foreach ($kv in $VersionProfile) {
|
||||
if ($kv -like "gradle=*") {
|
||||
$val = ($kv -split '=', 2)[1]
|
||||
(Get-Content $props) -replace "gradle-[0-9.]+-bin\.zip", "gradle-$val-bin.zip" | Set-Content $props
|
||||
}
|
||||
}
|
||||
|
||||
$toml = "$project\gradle\libs.versions.toml"
|
||||
foreach ($kv in $VersionProfile) {
|
||||
if ($kv -like "gradle=*") {
|
||||
continue
|
||||
}
|
||||
$key, $val = $kv -split '=', 2
|
||||
$inVersions = $false
|
||||
(Get-Content $toml) | ForEach-Object {
|
||||
if ($_ -match '^\[') {
|
||||
$inVersions = $_ -eq '[versions]'
|
||||
}
|
||||
if ($inVersions -and $_ -match "^$key = ") {
|
||||
"$key = `"$val`""
|
||||
} else {
|
||||
$_
|
||||
}
|
||||
} | Set-Content $toml
|
||||
}
|
||||
|
||||
$env:ANDROID_SDK_ROOT = [Environment]::GetEnvironmentVariable("ANDROID_SDK_ROOT", "Machine")
|
||||
Push-Location $project
|
||||
cmd /c "gradlew.bat --no-daemon build"
|
||||
Pop-Location
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw "Gradle caching failed"
|
||||
}
|
||||
Remove-Item -Recurse -Force $project
|
||||
}
|
||||
|
||||
# Cache both the current and the previous versions to avoid issues during bumps.
|
||||
Seed-GradleDistribution "9.3.1" "b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06"
|
||||
Cache-GradleProfile "gradle=9.3.1", "agp=9.0.0"
|
||||
Seed-GradleDistribution "9.5.1" "bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f"
|
||||
Cache-GradleProfile "gradle=9.5.1", "agp=9.2.1"
|
||||
|
||||
Write-Host "Cached Gradle distributions and dependencies under $env:USERPROFILE\.gradle."
|
||||
|
||||
@@ -7,21 +7,38 @@
|
||||
# This script will install FFmpeg
|
||||
$msys = "C:\Utils\msys64\usr\bin\bash"
|
||||
|
||||
$version="n7.1.3"
|
||||
$url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
|
||||
$sha1="27051817deec88bed3b9652d49f9127d22268d83"
|
||||
$url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
|
||||
$ffmpeg_name="FFmpeg-$version"
|
||||
$version="9.0.1"
|
||||
$url_public="https://ffmpeg.org/releases/ffmpeg-$version.tar.gz"
|
||||
$sha1="89c318905212e6b67e10e42ab10ab8007e0aefda"
|
||||
$url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/ffmpeg-$version.tar.gz"
|
||||
$ffmpeg_name="FFmpeg-n$version"
|
||||
|
||||
$download_location = "C:\Windows\Temp\$ffmpeg_name.tar.gz"
|
||||
$unzip_location = "C:\"
|
||||
$ffmpeg_source_dir = "C:\$ffmpeg_name"
|
||||
|
||||
Write-Host "Fetching FFmpeg $version..."
|
||||
|
||||
Download $url_public $url_cached $download_location
|
||||
Verify-Checksum $download_location $sha1
|
||||
Extract-tar_gz $download_location $unzip_location
|
||||
Remove $download_location
|
||||
$extract_temp_dir = "C:\Windows\Temp\FFmpeg-extract-$([System.Guid]::NewGuid().ToString('N'))"
|
||||
|
||||
try {
|
||||
New-Item -ItemType Directory -Path $extract_temp_dir -Force | Out-Null
|
||||
|
||||
Download $url_public $url_cached $download_location
|
||||
Verify-Checksum $download_location $sha1
|
||||
Extract-tar_gz $download_location $extract_temp_dir
|
||||
|
||||
$extracted_dirs = @(Get-ChildItem -Path $extract_temp_dir -Directory)
|
||||
if ($extracted_dirs.Count -ne 1) {
|
||||
throw "Expected exactly one directory in the FFmpeg archive, got: $($extracted_dirs.Name -join ', ')"
|
||||
}
|
||||
|
||||
Remove $ffmpeg_source_dir
|
||||
Move-Item -Path $extracted_dirs[0].FullName -Destination $ffmpeg_source_dir
|
||||
} finally {
|
||||
Remove $download_location
|
||||
Remove $extract_temp_dir
|
||||
}
|
||||
|
||||
function GetFfmpegDefaultConfiguration {
|
||||
$defaultConfiguration = Get-Content "$PSScriptRoot\..\shared\ffmpeg_config_options.txt"
|
||||
@@ -173,6 +190,18 @@ function InstallMsvcFfmpeg {
|
||||
return $false
|
||||
}
|
||||
|
||||
# MSVC 2019 workaround: The SSA optimizer (code generation
|
||||
# "pass 2") gets stuck in an infinite loop on some translations
|
||||
# units, such as libavcodec/sanm.c, when compiling FFmpeg n8.1.2 and up.
|
||||
# This only affects the VS2019-based Windows 10 x86_64 image.
|
||||
# VS2022+ hosts build fine. Disabling that optimizer pass lets the
|
||||
# older toolchain finish. This workaround can be dropped once we no
|
||||
# longer build using MSVC 2019.
|
||||
if ($env:VisualStudioVersion -and [version]$env:VisualStudioVersion -lt [version]"17.0") {
|
||||
Write-Host "MSVC $env:VisualStudioVersion (< 2022) detected; adding -d2SSAOptimizer- to avoid build freeze on FFmpeg 8.x"
|
||||
$config += " --extra-cflags=-d2SSAOptimizer-"
|
||||
}
|
||||
|
||||
$result = InstallFfmpeg -config $config -buildSystem $buildSystem -msystem "MSYS" -toolchain "msvc" -ffmpegDirEnvVar $ffmpegDirEnvVar -shared $true
|
||||
|
||||
if ($result) {
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
|
||||
. "$PSScriptRoot\helpers.ps1"
|
||||
|
||||
# This script will installs msys2
|
||||
# This script will install msys2
|
||||
|
||||
$version = "20240113"
|
||||
$prog = "msys2"
|
||||
$arch = "x86_64"
|
||||
$sha1 = "b46c08fd901da0fdba1dc30422a322766d7d03c6"
|
||||
$sha1_prebuilt = "29d16a81de4a570c41f92491e20b5554a1baab8f"
|
||||
$sha1_prebuilt = "9AC41CD8B71100BF30058F04790C1AF055BE4957"
|
||||
$folder = "msys64"
|
||||
|
||||
$package_prebuilt = $folder + "_" + $version + "_prebuilt_v2.7z"
|
||||
$package_prebuilt = $folder + "_" + $version + "_prebuilt_v3.7z"
|
||||
$package = $prog + "-base-" + $arch + "-" + $version + ".tar.xz"
|
||||
|
||||
$url_cache_prebuilt = "\\ci-files01-hki.ci.qt.io\provisioning\windows\$package_prebuilt"
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
. "$PSScriptRoot\helpers.ps1"
|
||||
|
||||
$networkTestLocation = "C:\Program Files"
|
||||
$url_public="https://ci-files01-hki.ci.qt.io/input/networktestapp/CiNetworkTest-MSVC-2022-Windows.tgz"
|
||||
$sha1="543D4562159140D4E7223721AF15ED6E1998E5B5"
|
||||
$url_public="https://ci-files01-hki.ci.qt.io/input/networktestapp/CiNetworkTest-MSVC-2022-Windows-v1.2.tgz"
|
||||
$sha1="C1D8871E610CF281E74E009DBE1BE5DA84B49807"
|
||||
$download_location = "C:\Windows\Temp\network-test.tgz"
|
||||
|
||||
Write-Host "Fetching CiNetworkTest.exe..."
|
||||
|
||||
@@ -25,8 +25,8 @@ function install() {
|
||||
|
||||
$zip = "c:\users\qt\downloads\libclang.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"
|
||||
$script:OfficialUrl = "https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain$toolchainVersion`_$archVer.7z"
|
||||
$script:CachedUrl = "http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain$toolchainVersion`_$archVer.7z"
|
||||
|
||||
Download $OfficialUrl $CachedUrl $zip
|
||||
Verify-Checksum $zip $sha1
|
||||
@@ -36,6 +36,7 @@ function install() {
|
||||
}
|
||||
|
||||
$toolchainSuffix = ""
|
||||
$toolchainVersion = ""
|
||||
|
||||
if ( $toolchain -eq "vs2022" ) {
|
||||
if ( $archVer -eq "64" ) {
|
||||
@@ -63,13 +64,15 @@ if ( $toolchain -eq "mingw" ) {
|
||||
|
||||
if ( $toolchain -eq "llvm-mingw" ) {
|
||||
if ( $archVer -eq "64" ) {
|
||||
$sha1 = "3e917d002f363c225e5ee2b7d8999a3cabd8b467"
|
||||
$sha1 = "ced503f1bf9c389a6e93d3abb40bb694fb0ae42c"
|
||||
}
|
||||
else {
|
||||
$sha1 = ""
|
||||
}
|
||||
# Due to COIN-1137 forced to use a '_' instead of '-'
|
||||
$toolchainSuffix = "llvm_mingw"
|
||||
|
||||
$toolchainVersion = "-22.1.7"
|
||||
}
|
||||
|
||||
if ( $useArchInToolchainSuffix ) {
|
||||
|
||||
@@ -28,10 +28,10 @@ $folderName = "qnx710"
|
||||
$targetPath = "$targetFolder$folderName"
|
||||
|
||||
# QNX SDP
|
||||
$cachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\qnx\qnx710-windows-linux-20240417.tar.xz"
|
||||
$sourceFile = "http://ci-files01-hki.ci.qt.io/input/qnx/qnx710-windows-linux-20240417.tar.xz"
|
||||
$cachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\qnx\qnx710-windows-linux-20260422.tar.xz"
|
||||
$sourceFile = "http://ci-files01-hki.ci.qt.io/input/qnx/qnx710-windows-linux-20260422.tar.xz"
|
||||
$targetFile = "qnx710.tar.xz"
|
||||
$sha1 = "cd2d35004fb2798089e29d9e1226691426632da0"
|
||||
$sha1 = "98b24df7e8c53a104aee76e769011396fa4bdafd"
|
||||
DownloadAndExtract $sourceFile $sha1 $targetFile $targetFolder $cachedUrl
|
||||
|
||||
Copy-Item $aarch64le_toolchain $targetPath
|
||||
|
||||
@@ -24,6 +24,15 @@ echo "Using public repositories for now. Repo-clones isn't set yet for Debian us
|
||||
|
||||
echo "deb https://archive.debian.org/debian bullseye-backports main" | sudo tee -a /etc/apt/sources.list
|
||||
echo "deb-src https://archive.debian.org/debian bullseye-backports main" | sudo tee -a /etc/apt/sources.list
|
||||
# the securitey.debian.org key has expired
|
||||
sudo sed -i 's|http://deb.debian.org/debian-security|http://snapshot.debian.org/archive/debian-security/20260831T211304Z|g' /etc/apt/sources.list
|
||||
sudo sed -i 's|http://security.debian.org/debian-security|http://snapshot.debian.org/archive/debian-security/20260831T211304Z|g' /etc/apt/sources.list
|
||||
# Disable expiration checks
|
||||
cat <<'EOF' | sudo tee /etc/apt/apt.conf.d/99bullseye-eol
|
||||
Acquire::Check-Valid-Until "false";
|
||||
Acquire::AllowInsecureRepositories "false";
|
||||
EOF
|
||||
|
||||
# Make sure needed ca-certificates are available
|
||||
installPackages+=(ca-certificates)
|
||||
# Git is not needed by builds themselves, but is nice to have
|
||||
@@ -260,7 +269,8 @@ installPackages+=(tzdata)
|
||||
|
||||
echo "Running update for apt"
|
||||
waitLoop
|
||||
sudo apt-get update
|
||||
sudo rm -rf /var/lib/apt/lists/*
|
||||
sudo apt-get -o Acquire::http::No-Cache=true -o Acquire::Check-Valid-Until=false update
|
||||
echo "Installing packages"
|
||||
waitLoop
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install "${installPackages[@]}"
|
||||
|
||||
@@ -7,6 +7,11 @@ set -ex
|
||||
BASEDIR=$(dirname "$0")
|
||||
# shellcheck source=../common/shared/network_test_server_ip.txt
|
||||
source "$BASEDIR/../common/shared/network_test_server_ip.txt"
|
||||
# shellcheck source=../common/linux/distro_version_check.sh
|
||||
source "$BASEDIR/../common/linux/distro_version_check.sh"
|
||||
|
||||
# Get distro version to later check if version has changed at the end of the provisioning
|
||||
record_os_version
|
||||
|
||||
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
|
||||
|
||||
@@ -8,6 +8,13 @@
|
||||
|
||||
set -ex
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
# shellcheck source=../common/linux/distro_version_check.sh
|
||||
source "$BASEDIR/../common/linux/distro_version_check.sh"
|
||||
|
||||
# Check distro version if it has changed
|
||||
verify_os_version_unchanged
|
||||
|
||||
# shellcheck disable=SC2129
|
||||
source "${BASH_SOURCE%/*}/../common/linux/verify-release-packages.sh"
|
||||
|
||||
|
||||
@@ -8,6 +8,11 @@ set -ex
|
||||
BASEDIR=$(dirname "$0")
|
||||
# shellcheck source=../common/shared/network_test_server_ip.txt
|
||||
source "$BASEDIR/../common/shared/network_test_server_ip.txt"
|
||||
# shellcheck source=../common/linux/distro_version_check.sh
|
||||
source "$BASEDIR/../common/linux/distro_version_check.sh"
|
||||
|
||||
# Get distro version to later check if version has changed at the end of the provisioning
|
||||
record_os_version
|
||||
|
||||
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
|
||||
|
||||
@@ -9,6 +9,13 @@
|
||||
|
||||
set -ex
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
# shellcheck source=../common/linux/distro_version_check.sh
|
||||
source "$BASEDIR/../common/linux/distro_version_check.sh"
|
||||
|
||||
# Check distro version if it has changed
|
||||
verify_os_version_unchanged
|
||||
|
||||
# shellcheck disable=SC2129
|
||||
echo "*********************************************" >> ~/versions.txt
|
||||
echo "***** All installed RPM packages *****" >> ~/versions.txt
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2022 The Qt Company Ltd.
|
||||
# Copyright (C) 2026 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
|
||||
|
||||
set -ex
|
||||
@@ -13,7 +13,7 @@ while sudo fuser /usr/libexec/packagekitd >/dev/null 2>&1; do
|
||||
done
|
||||
sudo yum -y remove PackageKit gnome-software
|
||||
|
||||
sudo subscription-manager config --rhsm.manage_repos=1
|
||||
sudo subscription-manager config --rhsm.manage_repos=0
|
||||
sudo subscription-manager refresh
|
||||
|
||||
# List available RHEL versions and bind with correct one
|
||||
@@ -21,10 +21,35 @@ sudo subscription-manager release --list
|
||||
sudo subscription-manager release --set=9.0
|
||||
sudo yum clean all
|
||||
|
||||
# sudo yum config-manager --enable 'rhceph-4-tools-for-rhel-8-x86_64-rpms'
|
||||
sudo yum config-manager --enable 'codeready-builder-for-rhel-9-x86_64-rpms'
|
||||
sudo yum config-manager --enable 'rhel-9-for-x86_64-baseos-rpms'
|
||||
sudo yum config-manager --enable 'rhel-9-for-x86_64-appstream-rpms'
|
||||
sudo tee "/etc/yum.repos.d/local.repo" > /dev/null <<EOC
|
||||
[rhel-9-for-x86_64-baseos-rpms]
|
||||
metadata_expire = 86400
|
||||
baseurl = http://repo-clones-rhel9.ci.qt.io/rhel-9-for-x86_64-baseos-rpms
|
||||
ui_repoid_vars = releasever basearch
|
||||
name = Qt Red Hat Enterprise Linux 9 Base OS (RPMs)
|
||||
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
enabled = 1
|
||||
gpgcheck = 1
|
||||
|
||||
[rhel-9-for-x86_64-appstream-rpms]
|
||||
metadata_expire = 86400
|
||||
baseurl = http://repo-clones-rhel9.ci.qt.io/rhel-9-for-x86_64-appstream-rpms
|
||||
ui_repoid_vars = releasever basearch
|
||||
name = Qt Red Hat Enterprise Linux 9 Appstream (RPMs)
|
||||
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
enabled = 1
|
||||
gpgcheck = 1
|
||||
|
||||
[codeready-builder-for-rhel-9-x86_64-rpms]
|
||||
metadata_expire = 86400
|
||||
baseurl = http://repo-clones-rhel9.ci.qt.io/codeready-builder-for-rhel-9-x86_64-rpms
|
||||
ui_repoid_vars = releasever basearch
|
||||
name = Qt Red Hat Enterprise Linux Codeready Builder (RPMs)
|
||||
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
enabled = 1
|
||||
gpgcheck = 1
|
||||
EOC
|
||||
|
||||
# Epel is required for 'double-conversion-devel', 'libsqlite3x' and 'p7zip'
|
||||
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2023 The Qt Company Ltd.
|
||||
# Copyright (C) 2026 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
|
||||
|
||||
set -ex
|
||||
@@ -14,7 +14,7 @@ while sudo fuser /usr/libexec/packagekitd >/dev/null 2>&1; do
|
||||
done
|
||||
sudo yum -y remove PackageKit gnome-software
|
||||
|
||||
sudo subscription-manager config --rhsm.manage_repos=1
|
||||
sudo subscription-manager config --rhsm.manage_repos=0
|
||||
sudo subscription-manager refresh
|
||||
|
||||
# List available RHEL versions and bind with correct one
|
||||
@@ -22,10 +22,35 @@ sudo subscription-manager release --list
|
||||
sudo subscription-manager release --set=9.2
|
||||
sudo yum clean all
|
||||
|
||||
# sudo yum config-manager --enable 'rhceph-4-tools-for-rhel-8-x86_64-rpms'
|
||||
sudo yum config-manager --enable 'codeready-builder-for-rhel-9-x86_64-rpms'
|
||||
sudo yum config-manager --enable 'rhel-9-for-x86_64-baseos-rpms'
|
||||
sudo yum config-manager --enable 'rhel-9-for-x86_64-appstream-rpms'
|
||||
sudo tee "/etc/yum.repos.d/local.repo" > /dev/null <<EOC
|
||||
[rhel-9-for-x86_64-baseos-rpms]
|
||||
metadata_expire = 86400
|
||||
baseurl = http://repo-clones-rhel9.ci.qt.io/rhel-9-for-x86_64-baseos-rpms
|
||||
ui_repoid_vars = releasever basearch
|
||||
name = Qt Red Hat Enterprise Linux 9 Base OS (RPMs)
|
||||
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
enabled = 1
|
||||
gpgcheck = 1
|
||||
|
||||
[rhel-9-for-x86_64-appstream-rpms]
|
||||
metadata_expire = 86400
|
||||
baseurl = http://repo-clones-rhel9.ci.qt.io/rhel-9-for-x86_64-appstream-rpms
|
||||
ui_repoid_vars = releasever basearch
|
||||
name = Qt Red Hat Enterprise Linux 9 Appstream (RPMs)
|
||||
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
enabled = 1
|
||||
gpgcheck = 1
|
||||
|
||||
[codeready-builder-for-rhel-9-x86_64-rpms]
|
||||
metadata_expire = 86400
|
||||
baseurl = http://repo-clones-rhel9.ci.qt.io/codeready-builder-for-rhel-9-x86_64-rpms
|
||||
ui_repoid_vars = releasever basearch
|
||||
name = Qt Red Hat Enterprise Linux Codeready Builder (RPMs)
|
||||
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
|
||||
enabled = 1
|
||||
gpgcheck = 1
|
||||
EOC
|
||||
|
||||
# Epel is required for 'double-conversion-devel', 'libsqlite3x' and 'p7zip'
|
||||
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user