Estou escrevendo uma aplicação visando o alvo Wasm (plataforma Yew), e tenho getrandom
dependência. No entanto, recentemente o suporte mudou, e de acordo com a documentação , agora preciso:
- Defina o
wasm_js
recurso - Defina sinalizadores de ferrugem para
--cfg getrandom_backend="linux_getrandom"
Eu fiz isso, definindo a variável de ambiente RUSTFLAGS para cobrir o segundo caso, mas agora isso causa problemas ao executar cargo test
ou cargo clippy
quando eles são compilados para um destino diferente, para o qual eu não deveria usar o recurso nem definir os sinalizadores.
Estou tentando usar Cargo.toml
isso e configurei isso:
[target.'cfg(target_arch = "wasm32")'.dependencies]
getrandom = { version = "0.3", features = ["wasm_js"] }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
getrandom = "0.3"
[target.wasm32-unknown-unknown]
rustflags = ["--cfg", "getrandom_backend='wasm_js'"]
A parte de dependências parece funcionar bem, no sentido de que posso executar cargo clippy
, cargo test
e trunk serve
. No entanto, a parte para definir os sinalizadores não funciona. Tenho este aviso:
aviso: chave de manifesto não utilizada: target.wasm32-unknown-unknown.rustflags
E trunk serve
ainda preciso definir sinalizadores de ferrugem manualmente para que funcione:
RUSTFLAGS="--cfg getrandom_backend=\"wasm_js\"" trunk serve
Embora isso seja o que eu entendi do documento Cargo . Eu também tentei isso sem mais sucesso:
[target.'cfg(target_arch = "wasm32")']
rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""]
Alguma ideia do que estou perdendo?