| 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 | } |