Bug 1825052 [wpt PR 39246] - Update wpt metadata, a=testonly
[gecko.git] / third_party / rust / futures-channel / build.rs
blob05e0496d94b589eaa0d72182b73ce7990f5adbf8
1 // The rustc-cfg listed below are considered public API, but it is *unstable*
2 // and outside of the normal semver guarantees:
3 //
4 // - `futures_no_atomic_cas`
5 //      Assume the target does *not* support atomic CAS operations.
6 //      This is usually detected automatically by the build script, but you may
7 //      need to enable it manually when building for custom targets or using
8 //      non-cargo build systems that don't run the build script.
9 //
10 // With the exceptions mentioned above, the rustc-cfg emitted by the build
11 // script are *not* public API.
13 #![warn(rust_2018_idioms, single_use_lifetimes)]
15 use std::env;
17 include!("no_atomic_cas.rs");
19 fn main() {
20     let target = match env::var("TARGET") {
21         Ok(target) => target,
22         Err(e) => {
23             println!(
24                 "cargo:warning={}: unable to get TARGET environment variable: {}",
25                 env!("CARGO_PKG_NAME"),
26                 e
27             );
28             return;
29         }
30     };
32     // Note that this is `no_*`, not `has_*`. This allows treating
33     // `cfg(target_has_atomic = "ptr")` as true when the build script doesn't
34     // run. This is needed for compatibility with non-cargo build systems that
35     // don't run the build script.
36     if NO_ATOMIC_CAS.contains(&&*target) {
37         println!("cargo:rustc-cfg=futures_no_atomic_cas");
38     }
40     println!("cargo:rerun-if-changed=no_atomic_cas.rs");