atagen

matrix-rust-sdk

public
Star0
Watch0
ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk.git
crates/matrix-sdk/build.rsRust32 lines832 B
1
use std::{env, process};
2
3
fn env_is_set(var_name: &str) -> bool {
4
    env::var_os(var_name).is_some()
5
}
6
7
fn ensure(cond: bool, err: &str) {
8
    if !cond {
9
        eprintln!(
10
            "\n\
11
            ┏━━━━━━━━{pad}━┓\n\
12
            ┃ error: {err} ┃\n\
13
            ┗━━━━━━━━{pad}━┛\n\
14
            ",
15
            pad = "━".repeat(err.len()),
16
        );
17
        process::exit(1);
18
    }
19
}
20
21
fn main() {
22
    // Prevent unnecessary rerunning of this build script
23
    println!("cargo:rerun-if-changed=build.rs");
24
25
    let is_wasm = env::var_os("CARGO_CFG_TARGET_ARCH").is_some_and(|arch| arch == "wasm32");
26
    if is_wasm {
27
        ensure(
28
            !env_is_set("CARGO_FEATURE_SSO_LOGIN"),
29
            "feature 'sso-login' is not available on target arch 'wasm32'",
30
        );
31
    }
32
}