napi_build/
lib.rs

1use std::env;
2
3mod android;
4mod macos;
5mod wasi;
6mod windows;
7
8pub fn setup() {
9  let package_name = env::var("CARGO_PKG_NAME").expect("CARGO_PKG_NAME is not set");
10
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  println!(
15    "cargo:rerun-if-env-changed=NAPI_PACKAGE_{}_INVALID",
16    package_name.to_uppercase().replace("-", "_")
17  );
18
19  match env::var("CARGO_CFG_TARGET_OS").as_deref() {
20    Ok("macos") => {
21      macos::setup();
22    }
23    Ok("android") => if android::setup().is_ok() {},
24    Ok("wasi") => {
25      wasi::setup();
26    }
27    Ok("windows") => {
28      if let Ok("gnu") = env::var("CARGO_CFG_TARGET_ENV").as_deref() {
29        windows::setup_gnu();
30      }
31    }
32    _ => {}
33  }
34}