当目标架构是 WASM 时默认启用 Cargo 功能?
Enable a Cargo feature by default when the target arch is WASM?
我的箱子 Cargo.toml 的一部分:
[features]
wasm = ["ed25519-dalek/nightly", "rand/wasm-bindgen", "js-sys"]
当 crate 在另一个项目中使用并且明确选择了 "wasm" 功能时,这有效。
我只想在目标架构为 WASM 时自动启用此功能。我尝试添加这个:
#[cfg(target_arch = "wasm32")]
default = ["wasm"]
当我为 WASM 以外的目标编译时,"wasm" 被包含为默认值,我怎样才能使 "wasm" 仅在目标为 WASM 时成为默认值?
您只能拥有特定于目标的依赖项,而不能拥有特定于目标的功能。这是一家known bug不幸的是2015年就开张了
人们希望这种语法得到支持,但目前还没有计划使它起作用:
[target.'cfg(target_arch = "wasm32")'.features]
default = ["ed25519-dalek/nightly", "rand/wasm-bindgen", "js-sys"]
作为一种丑陋的解决方法,您可以创建另一个 crate that depends on your crate 并让用户使用这个新 crate:
[target.'cfg(target_arch = "wasm32")'.dependencies.your_crate]
version = "1.0.0"
features = ["wasm"]
我的箱子 Cargo.toml 的一部分:
[features]
wasm = ["ed25519-dalek/nightly", "rand/wasm-bindgen", "js-sys"]
当 crate 在另一个项目中使用并且明确选择了 "wasm" 功能时,这有效。
我只想在目标架构为 WASM 时自动启用此功能。我尝试添加这个:
#[cfg(target_arch = "wasm32")]
default = ["wasm"]
当我为 WASM 以外的目标编译时,"wasm" 被包含为默认值,我怎样才能使 "wasm" 仅在目标为 WASM 时成为默认值?
您只能拥有特定于目标的依赖项,而不能拥有特定于目标的功能。这是一家known bug不幸的是2015年就开张了
人们希望这种语法得到支持,但目前还没有计划使它起作用:
[target.'cfg(target_arch = "wasm32")'.features]
default = ["ed25519-dalek/nightly", "rand/wasm-bindgen", "js-sys"]
作为一种丑陋的解决方法,您可以创建另一个 crate that depends on your crate 并让用户使用这个新 crate:
[target.'cfg(target_arch = "wasm32")'.dependencies.your_crate]
version = "1.0.0"
features = ["wasm"]