summaryrefslogtreecommitdiff
path: root/cli/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/build.rs')
-rw-r--r--cli/build.rs86
1 files changed, 61 insertions, 25 deletions
diff --git a/cli/build.rs b/cli/build.rs
index 7b56dbcbd..e5b626d76 100644
--- a/cli/build.rs
+++ b/cli/build.rs
@@ -81,33 +81,22 @@ fn create_compiler_snapshot(
) {
// libs that are being provided by op crates.
let mut op_crate_libs = HashMap::new();
- op_crate_libs.insert("deno.console", "../ext/console/lib.deno_console.d.ts");
- op_crate_libs.insert("deno.url", "../ext/url/lib.deno_url.d.ts");
- op_crate_libs.insert("deno.web", "../ext/web/lib.deno_web.d.ts");
- op_crate_libs.insert("deno.fetch", "../ext/fetch/lib.deno_fetch.d.ts");
- op_crate_libs.insert("deno.webgpu", "./dts/lib.deno_webgpu.d.ts");
- op_crate_libs
- .insert("deno.websocket", "../ext/websocket/lib.deno_websocket.d.ts");
- op_crate_libs.insert(
- "deno.webstorage",
- "../ext/webstorage/lib.deno_webstorage.d.ts",
- );
- op_crate_libs.insert("deno.crypto", "../ext/crypto/lib.deno_crypto.d.ts");
+ op_crate_libs.insert("deno.console", deno_console::get_declaration());
+ op_crate_libs.insert("deno.url", deno_url::get_declaration());
+ op_crate_libs.insert("deno.web", deno_web::get_declaration());
+ op_crate_libs.insert("deno.fetch", deno_fetch::get_declaration());
+ op_crate_libs.insert("deno.webgpu", deno_webgpu_get_declaration());
+ op_crate_libs.insert("deno.websocket", deno_websocket::get_declaration());
+ op_crate_libs.insert("deno.webstorage", deno_webstorage::get_declaration());
+ op_crate_libs.insert("deno.crypto", deno_crypto::get_declaration());
op_crate_libs.insert(
"deno.broadcast_channel",
- "../ext/broadcast_channel/lib.deno_broadcast_channel.d.ts",
+ deno_broadcast_channel::get_declaration(),
);
- op_crate_libs.insert("deno.net", "../ext/net/lib.deno_net.d.ts");
+ op_crate_libs.insert("deno.net", deno_net::get_declaration());
+
// ensure we invalidate the build properly.
- for (name, path) in op_crate_libs.iter() {
- let path = std::fs::canonicalize(path)
- .map_err(|e| format!("{}: {}", path, e))
- .unwrap();
- println!(
- "cargo:rustc-env={}_LIB_PATH={}",
- name.replace('.', "_").to_uppercase(),
- path.display()
- );
+ for (_, path) in op_crate_libs.iter() {
println!("cargo:rerun-if-changed={}", path.display());
}
@@ -215,7 +204,7 @@ fn create_compiler_snapshot(
// using the same op that is used in `tsc.rs` for loading modules and reading
// files, but a slightly different implementation at build time.
fn op_load(state: &mut OpState, args: LoadArgs) -> Result<Value, AnyError> {
- let op_crate_libs = state.borrow::<HashMap<&str, &str>>();
+ let op_crate_libs = state.borrow::<HashMap<&str, PathBuf>>();
let path_dts = state.borrow::<PathBuf>();
let re_asset =
Regex::new(r"asset:/{3}lib\.(\S+)\.d\.ts").expect("bad regex");
@@ -339,13 +328,55 @@ fn main() {
println!("cargo:rustc-env=DENO_CANARY={}", c);
}
println!("cargo:rerun-if-env-changed=DENO_CANARY");
+
println!("cargo:rustc-env=GIT_COMMIT_HASH={}", git_commit_hash());
println!("cargo:rerun-if-env-changed=GIT_COMMIT_HASH");
println!("cargo:rustc-env=TS_VERSION={}", ts_version());
println!("cargo:rerun-if-env-changed=TS_VERSION");
- println!("cargo:rustc-env=TARGET={}", target);
+ println!(
+ "cargo:rustc-env=DENO_CONSOLE_LIB_PATH={}",
+ deno_console::get_declaration().display()
+ );
+ println!(
+ "cargo:rustc-env=DENO_URL_LIB_PATH={}",
+ deno_url::get_declaration().display()
+ );
+ println!(
+ "cargo:rustc-env=DENO_WEB_LIB_PATH={}",
+ deno_web::get_declaration().display()
+ );
+ println!(
+ "cargo:rustc-env=DENO_FETCH_LIB_PATH={}",
+ deno_fetch::get_declaration().display()
+ );
+ println!(
+ "cargo:rustc-env=DENO_WEBGPU_LIB_PATH={}",
+ deno_webgpu_get_declaration().display()
+ );
+ println!(
+ "cargo:rustc-env=DENO_WEBSOCKET_LIB_PATH={}",
+ deno_websocket::get_declaration().display()
+ );
+ println!(
+ "cargo:rustc-env=DENO_WEBSTORAGE_LIB_PATH={}",
+ deno_webstorage::get_declaration().display()
+ );
+ println!(
+ "cargo:rustc-env=DENO_CRYPTO_LIB_PATH={}",
+ deno_crypto::get_declaration().display()
+ );
+ println!(
+ "cargo:rustc-env=DENO_BROADCAST_CHANNEL_LIB_PATH={}",
+ deno_broadcast_channel::get_declaration().display()
+ );
+ println!(
+ "cargo:rustc-env=DENO_NET_LIB_PATH={}",
+ deno_net::get_declaration().display()
+ );
+
+ println!("cargo:rustc-env=TARGET={}", env::var("TARGET").unwrap());
println!("cargo:rustc-env=PROFILE={}", env::var("PROFILE").unwrap());
let c = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap());
@@ -369,6 +400,11 @@ fn main() {
}
}
+fn deno_webgpu_get_declaration() -> PathBuf {
+ let manifest_dir = Path::new(env!("CARGO_MANIFEST_DIR"));
+ manifest_dir.join("dts").join("lib.deno_webgpu.d.ts")
+}
+
fn get_js_files(d: &str) -> Vec<PathBuf> {
let manifest_dir = Path::new(env!("CARGO_MANIFEST_DIR"));
let mut js_files = std::fs::read_dir(d)