Skip to content

Commit bc70573

Browse files
committed
Qt fixtures and docs declare xim:qt-base / xim:qt 6.11.1.1, the payload with its runtime closure
1 parent 043e27a commit bc70573

6 files changed

Lines changed: 11 additions & 9 deletions

File tree

‎.agents/docs/2026-09-26-plugins-0.15-architecture-plan.md‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ build.mcpp,而不是 mcpp.toml。
5353
plugins = { version = "0.15.0", features = ["rules-qt", "deps-vcpkg"], host-module = true }
5454

5555
[target.'cfg(any(windows, linux, macos))'.xlings.workspace]
56-
"xim:qt-base" = "6.11.1"
56+
"xim:qt-base" = "6.11.1.1"
5757
```
5858

5959
```cpp
@@ -148,7 +148,9 @@ rules-qt 的 SDK 查找顺序为 `options::root` → `QT_ROOT_DIR`(不采用 `
148148
| vcpkg 前缀多一层 triplet | 改用返回的 `prefix`,不硬编码 `vcpkg_installed/<triplet>`(GalTranslPP `gpp.build` 第 182 行) |
149149
| 插件不再提供 glib 目录 | 使用外部 Qt 的 Linux 项目自行处理闭包 |
150150

151-
以下变化不需要消费方修改:Linux 与 Windows 的 Qt 载荷会因 `installed()` 的标记 `runtime 1` 自动重装。
151+
载荷的更新方式:xlings 以磁盘上的载荷与安装记录判定"已安装",不会对已存在的载荷调用配方的 `installed()`。因此含运行时闭包的载荷以新版本号
152+
`6.11.1.1` 发布(xim-pkgindex#888,沿用 fontconfig 2.15.0.1、libglvnd 1.7.0.1 的做法),项目声明 `"xim:qt-base" = "6.11.1.1"`。
153+
这一点由插件 CI 实测发现:缓存恢复了旧的 6.11.1 载荷,Linux 程序缺少 `libzstd.so.1`。
152154

153155
## 8. 任务依赖与 PR
154156

@@ -174,7 +176,7 @@ GalTranslPP PR2:按 §7 迁移;Windows 回归(含 VC++ 运行时)
174176
| 稳定性 | 动作的输入输出完整;运行时闭包在规划、链接、运行、打包阶段分别由引擎与载荷保证 |
175177
| 简洁 | 删除三个 feature、一个包内工具和 metadata 一级;新增的机制只有 `cmake -P` 脚本 |
176178
| 易用性 | 配置集中在 build.mcpp;依赖边不再有 `tools`;Qt 选择是两行显式声明 |
177-
| 兼容性 | 破坏性变更集中在 §7,每项修改为一到两行;载荷自动重装 |
179+
| 兼容性 | 破坏性变更集中在 §7,每项修改为一到两行;载荷修订经新版本号到达已安装旧载荷的机器 |
178180
| 跨平台 | 三个平台的闭包逐一论证;windows-aarch64 的 CRT 为已知缺口 |
179181
| 一致性 | 三级配置、fact 记录、警告优先,对所有成员相同 |
180182
| 测试 | 新增 `qt-sdk-consumer`(三个层级)、Linux Widgets 与打包、Windows CRT、`vcpkg-libcxx` |

‎docs/rules-qt.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ plugins = { version = "0.15.0", features = ["rules-qt"], host-module = true }
1010

1111
# The SDK and its version are the project's declaration.
1212
[target.'cfg(any(windows, linux, macos))'.xlings.workspace]
13-
"xim:qt-base" = "6.11.1"
13+
"xim:qt-base" = "6.11.1.1"
1414

1515
[build]
1616
sources = ["src/*.cpp", "res/*.qrc", "i18n/*.ts", "ui/*.ui"]
@@ -45,7 +45,7 @@ The first of three levels that names an SDK decides, and the rule records which
4545
| `xim:qt` | qtbase, qtsvg, qtdeclarative, qttools, qttranslations |
4646
| `xim:qt-addons` | the additional libraries, beside `xim:qt` |
4747

48-
0.15.0 removed the features `rules-qt-xim`, `rules-qt-xim-base` and `rules-qt-xim-addons`, which declared a payload at a fixed version: a feature states a mechanism, and the SDK a program links is the project's choice. A project that named one declares the payload instead, as above.
48+
The payloads that carry their runtime closure are version `6.11.1.1` (the Qt 6.11.1 archives, laid out anew); a machine that holds `6.11.1` keeps the earlier layout. 0.15.0 removed the features `rules-qt-xim`, `rules-qt-xim-base` and `rules-qt-xim-addons`, which declared a payload at a fixed version: a feature states a mechanism, and the SDK a program links is the project's choice. A project that named one declares the payload instead, as above.
4949

5050
## Options
5151

‎rules/qt.cppm‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ inline bool compile(options opt = {}) {
366366
"{}: no Qt SDK{}. Nothing Qt-specific is planned. Name one with options::root or "
367367
"QT_ROOT_DIR, or declare a payload, which `mcpp build` provisions:\n"
368368
" [target.'cfg(any(windows, linux, macos))'.xlings.workspace]\n"
369-
" \"xim:qt-base\" = \"6.11.1\"",
369+
" \"xim:qt-base\" = \"6.11.1.1\"",
370370
who, source.level.empty() ? std::string()
371371
: " at the directory " + source.level + " names"));
372372
return true;

‎tests/qt-consumer/mcpp.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ plugins = { path = "../..", features = ["rules-qt"], host-module = true }
3737

3838
# The SDK is the project's declaration, at the version it chooses.
3939
[target.'cfg(any(windows, linux, macos))'.xlings.workspace]
40-
"xim:qt-base" = "6.11.1"
40+
"xim:qt-base" = "6.11.1.1"
4141

4242
[build]
4343
# Qt's Linux libraries load the shared libstdc++ (`libstdc++.so.6`), so the

‎tests/qt-sdk-consumer/mcpp.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import_std = false
2121
plugins = { path = "../..", features = ["rules-qt"], host-module = true }
2222

2323
[target.'cfg(any(windows, linux, macos))'.xlings.workspace]
24-
"xim:qt-base" = "6.11.1"
24+
"xim:qt-base" = "6.11.1.1"
2525

2626
[build]
2727
# Qt's Linux libraries load the shared libstdc++; see tests/qt-consumer.

‎tests/qt-widgets-consumer/mcpp.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ plugins = { path = "../..", features = ["rules-qt"], host-module = true }
2525
# The SDK is the project's declaration: the full base package here, and
2626
# `xim:qt-base` in tests/qt-consumer.
2727
[target.'cfg(any(windows, linux, macos))'.xlings.workspace]
28-
"xim:qt" = "6.11.1"
28+
"xim:qt" = "6.11.1.1"
2929

3030
# Built, run and packed on every host by CI. On Linux the payload carries
3131
# QtGui's runtime closure (libdbus, fontconfig, xcb, ...); on Windows, the VC++

0 commit comments

Comments
 (0)