fn main() { // This allows "spirv" to be used in #[cfg(target_arch = "...")] // without triggering a warning. println!("cargo:rustc-check-cfg=cfg(target_arch, values(\"spirv\"))"); // `gpu` is set for every device backend, so host-only code can be gated once // as #[cfg(not(gpu))] instead of naming each target. Adding a backend means // editing this line, not 30-odd cfg attributes. println!("cargo::rustc-check-cfg=cfg(gpu)"); let target = std::env::var("TARGET").unwrap_or_default(); if target.contains("spirv") || target.contains("cuda") { println!("cargo::rustc-cfg=gpu"); } }