1use std::env;
2
3mod android;
4mod macos;
5mod wasi;
6mod windows;
7
8pub fn setup() {
9 {
11 println!("cargo:rerun-if-env-changed=DEBUG_GENERATED_CODE");
12 println!("cargo:rerun-if-env-changed=TYPE_DEF_TMP_PATH");
13 println!("cargo:rerun-if-env-changed=CARGO_CFG_NAPI_RS_CLI_VERSION");
14 }
15
16 println!("cargo::rerun-if-env-changed=NAPI_DEBUG_GENERATED_CODE");
17 println!("cargo::rerun-if-env-changed=NAPI_TYPE_DEF_TMP_FOLDER");
18 println!(
19 "cargo::rerun-if-env-changed=NAPI_FORCE_BUILD_{}",
20 env::var("CARGO_PKG_NAME")
21 .expect("CARGO_PKG_NAME is not set")
22 .to_uppercase()
23 .replace("-", "_")
24 );
25
26 match env::var("CARGO_CFG_TARGET_OS").as_deref() {
27 Ok("macos") => {
28 macos::setup();
29 }
30 Ok("android") => if android::setup().is_ok() {},
31 Ok("wasi") => {
32 wasi::setup();
33 }
34 Ok("windows") => {
35 if let Ok("gnu") = env::var("CARGO_CFG_TARGET_ENV").as_deref() {
36 windows::setup_gnu();
37 }
38 }
39 _ => {}
40 }
41}