货物功能可以在不强制激活那些包装箱的情况下启用来自可选依赖项的功能吗?

时间:2018-10-15 21:56:32

标签: rust rust-cargo

这是图书馆箱子的Cargo.toml。它具有对板支持板条箱board-aboard-b的可选依赖性,从而支持两种不同的嵌入式板,并且通过运行cargo build --features target-a仅选择其中之一。

还有一个通用的第三方模块,可以选择使用const-fn功能。此选项在库箱中显示:

[dependencies]
common = {...}
board-a = {optional=true, ...}
board-b = {optional=true, ...}

[features]
const-fn = ["common/const-fn"]
target-a = ["board-a"]
target-b = ["board-b"]

到目前为止还不错,但是如果board-aboard-b板条箱也具有可选的const-fn功能,并且我想将这些选项提供给图书馆板条箱的用户怎么办?我可以在不创建target-a-const-fntarget-b-const-fn功能的情况下执行此操作吗?我公开的更多可选功能或我们支持的更多主板显然会使这很混乱。

我不想在两个板条箱中都使用const-fn功能-仅应使用选定的板条箱,否则会不必要地增加下载和编译时间。理想情况下,我需要与以下内容等效的工具,但据我所知,远没有像它一样存在:

[features]
const-fn = ["common/const-fn", "board-a/const-fn" if target-a, "board-b/const-fn" if target-b]
target-a = ...

1 个答案:

答案 0 :(得分:0)

不,Cargo 目前不支持此功能,尽管此功能有 a tracking issue