Как я могу условно скомпилировать WebAssembly в Rust?

tversteeg спросил: 26 декабря 2017 в 08:14 в: rust

Как я могу создать флаг конфигурации, где я условно выбираю цель wasm32-unknown-unkown?

Я напечатал текущую среду, используя следующий build.rs:

use std::env;fn main() {
    for (key, value) in env::vars() {
        if key.starts_with("CARGO_CFG_") {
            println!("{}: {:?}", key, value);
        }
    }
    panic!("stop and dump stdout");
}

Какие принты:

CARGO_CFG_DEBUG_ASSERTIONS: ""
CARGO_CFG_TARGET_ARCH: "wasm32"
CARGO_CFG_TARGET_ENDIAN: "little"
CARGO_CFG_TARGET_ENV: ""
CARGO_CFG_TARGET_HAS_ATOMIC: "16,32,8,ptr"
CARGO_CFG_TARGET_OS: "unknown"
CARGO_CFG_TARGET_POINTER_WIDTH: "32"
CARGO_CFG_TARGET_VENDOR: "unknown"

Обычно я бы делал #[cfg(target_os = "linux")], но, вероятно, это не работает в этом случае, потому что #[cfg(target_os = "unknown")], вероятно, соответствует более wasm32-unknown-unknown. Должен ли я использовать комбинацию target_arch и target_os для правильной работы или, возможно, просто target_arch?


0 ответов