atagen

matrix-rust-sdk

public
Star0
Watch0
ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk.git

Blame: crates/matrix-sdk/build.rs

7ff8adafe9e4atagen2026-10-22 12:30 UTC1
use std::{env, process};
7ff8adafe9e4atagen2026-10-22 12:30 UTC2
7ff8adafe9e4atagen2026-10-22 12:30 UTC3
fn env_is_set(var_name: &str) -> bool {
7ff8adafe9e4atagen2026-10-22 12:30 UTC4
    env::var_os(var_name).is_some()
7ff8adafe9e4atagen2026-10-22 12:30 UTC5
}
7ff8adafe9e4atagen2026-10-22 12:30 UTC6
7ff8adafe9e4atagen2026-10-22 12:30 UTC7
fn ensure(cond: bool, err: &str) {
7ff8adafe9e4atagen2026-10-22 12:30 UTC8
    if !cond {
7ff8adafe9e4atagen2026-10-22 12:30 UTC9
        eprintln!(
7ff8adafe9e4atagen2026-10-22 12:30 UTC10
            "\n\
7ff8adafe9e4atagen2026-10-22 12:30 UTC11
            ┏━━━━━━━━{pad}━┓\n\
7ff8adafe9e4atagen2026-10-22 12:30 UTC12
            ┃ error: {err} ┃\n\
7ff8adafe9e4atagen2026-10-22 12:30 UTC13
            ┗━━━━━━━━{pad}━┛\n\
7ff8adafe9e4atagen2026-10-22 12:30 UTC14
            ",
7ff8adafe9e4atagen2026-10-22 12:30 UTC15
            pad = "━".repeat(err.len()),
7ff8adafe9e4atagen2026-10-22 12:30 UTC16
        );
7ff8adafe9e4atagen2026-10-22 12:30 UTC17
        process::exit(1);
7ff8adafe9e4atagen2026-10-22 12:30 UTC18
    }
7ff8adafe9e4atagen2026-10-22 12:30 UTC19
}
7ff8adafe9e4atagen2026-10-22 12:30 UTC20
7ff8adafe9e4atagen2026-10-22 12:30 UTC21
fn main() {
7ff8adafe9e4atagen2026-10-22 12:30 UTC22
    // Prevent unnecessary rerunning of this build script
7ff8adafe9e4atagen2026-10-22 12:30 UTC23
    println!("cargo:rerun-if-changed=build.rs");
7ff8adafe9e4atagen2026-10-22 12:30 UTC24
7ff8adafe9e4atagen2026-10-22 12:30 UTC25
    let is_wasm = env::var_os("CARGO_CFG_TARGET_ARCH").is_some_and(|arch| arch == "wasm32");
7ff8adafe9e4atagen2026-10-22 12:30 UTC26
    if is_wasm {
7ff8adafe9e4atagen2026-10-22 12:30 UTC27
        ensure(
7ff8adafe9e4atagen2026-10-22 12:30 UTC28
            !env_is_set("CARGO_FEATURE_SSO_LOGIN"),
7ff8adafe9e4atagen2026-10-22 12:30 UTC29
            "feature 'sso-login' is not available on target arch 'wasm32'",
7ff8adafe9e4atagen2026-10-22 12:30 UTC30
        );
7ff8adafe9e4atagen2026-10-22 12:30 UTC31
    }
7ff8adafe9e4atagen2026-10-22 12:30 UTC32
}