rsnext/packages/next-swc/crates/napi/build.rs

46 lines
1.5 KiB
Rust

use std::{
env,
fs::File,
io::{BufWriter, Write},
path::Path,
};
use turbopack_binding::turbo::tasks_build::generate_register;
extern crate napi_build;
fn main() {
// Emit current platform's target-triple into a text file to create static const
// in util.rs
let out_dir = env::var("OUT_DIR").expect("Outdir should exist");
let dest_path = Path::new(&out_dir).join("triple.txt");
let mut f =
BufWriter::new(File::create(dest_path).expect("Failed to create target triple text"));
write!(
f,
"{}",
env::var("TARGET").expect("Target should be specified")
)
.expect("Failed to write target triple text");
// Emit current package.json's version field into a text file to create static
// const in util.rs This is being used to set correct release version for
// the sentry's crash reporter.
let pkg_file =
File::open(Path::new("../../package.json")).expect("Should able to open package.json");
let json: serde_json::Value = serde_json::from_reader(pkg_file).unwrap();
let pkg_version_dest_path = Path::new(&out_dir).join("package.txt");
let mut package_version_writer = BufWriter::new(
File::create(pkg_version_dest_path).expect("Failed to create package version text"),
);
write!(
package_version_writer,
"{}",
json["version"].as_str().unwrap()
)
.expect("Failed to write target triple text");
napi_build::setup();
generate_register();
}