aboutsummaryrefslogtreecommitdiff
path: root/build.rs
blob: 118c250ccd1dc51c459d1ef67577772ce7bd9550 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#![deny(warnings)]

use std::env;

fn main() {
    println!("cargo:rerun-if-changed=build.rs");
    if let Some(channel) = version_check::Channel::read() {
        if channel.supports_features() {
            println!("cargo:rustc-cfg=feature=\"specialize\"");
        }
    }
    let os = env::var("CARGO_CFG_TARGET_OS").expect("CARGO_CFG_TARGET_OS was not set");
    if os.eq_ignore_ascii_case("linux")
        || os.eq_ignore_ascii_case("android")
        || os.eq_ignore_ascii_case("windows")
        || os.eq_ignore_ascii_case("macos")
        || os.eq_ignore_ascii_case("ios")
        || os.eq_ignore_ascii_case("freebsd")
        || os.eq_ignore_ascii_case("openbsd")
        || os.eq_ignore_ascii_case("dragonfly")
        || os.eq_ignore_ascii_case("solaris")
        || os.eq_ignore_ascii_case("illumos")
        || os.eq_ignore_ascii_case("fuchsia")
        || os.eq_ignore_ascii_case("redox")
        || os.eq_ignore_ascii_case("cloudabi")
        || os.eq_ignore_ascii_case("haiku")
        || os.eq_ignore_ascii_case("vxworks")
        || os.eq_ignore_ascii_case("emscripten")
        || os.eq_ignore_ascii_case("wasi")
    {
        println!("cargo:rustc-cfg=feature=\"runtime-rng\"");
    }
    let arch = env::var("CARGO_CFG_TARGET_ARCH").expect("CARGO_CFG_TARGET_ARCH was not set");
    if arch.eq_ignore_ascii_case("x86_64")
        || arch.eq_ignore_ascii_case("aarch64")
        || arch.eq_ignore_ascii_case("mips64")
        || arch.eq_ignore_ascii_case("powerpc64")
        || arch.eq_ignore_ascii_case("riscv64gc")
        || arch.eq_ignore_ascii_case("s390x")
    {
        println!("cargo:rustc-cfg=feature=\"folded_multiply\"");
    }

}