诉求
mcpp.toml(manifest)侧的 [features] 目前支持 sources/implies/defines,
但不支持:
- feature 条件依赖(描述符 lua 侧 0.0.97 已支持
features.x.deps,
manifest 侧没有对应物);
- 向依赖转发 feature(cargo 的
dep/feat 语法对应物):
features.dnn = { deps-features = { "compat.opencv" = ["dnn"] } } 之类。
场景(opencv-m 的 opencv.dnn 模块接口,mcpp-index PR #79 后续)
compat.opencv 已带 dnn feature(+309 TU)。opencv 模块包想提供
import opencv.dnn;,理想形态:
[features]
dnn = { sources = ["src/dnn.cppm"], forward = { "compat.opencv" = ["dnn"] } }
消费端 opencv = { version = "0.0.3", features = ["dnn"] } → 模块包启用
dnn.cppm 源 + 依赖的 compat.opencv 以 features=["dnn"] 解析。没有 (2),
模块包只能永远全量拉 dnn(所有消费者多 300 TU)或不提供 dnn 模块接口。
环境
mcpp 0.0.97
诉求
mcpp.toml(manifest)侧的
[features]目前支持 sources/implies/defines,但不支持:
features.x.deps,manifest 侧没有对应物);
dep/feat语法对应物):features.dnn = { deps-features = { "compat.opencv" = ["dnn"] } }之类。场景(opencv-m 的 opencv.dnn 模块接口,mcpp-index PR #79 后续)
compat.opencv 已带
dnnfeature(+309 TU)。opencv 模块包想提供import opencv.dnn;,理想形态:消费端
opencv = { version = "0.0.3", features = ["dnn"] }→ 模块包启用dnn.cppm 源 + 依赖的 compat.opencv 以 features=["dnn"] 解析。没有 (2),
模块包只能永远全量拉 dnn(所有消费者多 300 TU)或不提供 dnn 模块接口。
环境
mcpp 0.0.97