-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.rs
31 lines (26 loc) · 872 Bytes
/
build.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
extern crate napi_build;
extern crate which;
use std::path::PathBuf;
fn main() {
let node_include_dir = if let Ok(node_dir) = std::env::var("NODE_DIR") {
PathBuf::from(node_dir).join("include/node")
} else if let Ok(node_exec_path) = which::which("node") {
if let Some(node_bin_dir) = node_exec_path.parent() {
node_bin_dir.join("../include/node")
} else {
panic!("node install with out include dir")
}
} else {
panic!("not found node exec, please set NODE_DIR env like ~/.nvm/versions/node/v20.17.0");
};
// build binding.cc to extend_v8_binding
cc::Build::new()
.cpp(true)
.flag_if_supported("-std=c++17")
.flag("-Wno-unused-parameter")
.include(node_include_dir)
.file("src/binding.cc")
.compile("extend_v8_binding");
println!("cargo:rerun-if-changed=src/binding.cc");
napi_build::setup();
}