diff options
Diffstat (limited to 'cli/build.rs')
-rw-r--r-- | cli/build.rs | 85 |
1 files changed, 24 insertions, 61 deletions
diff --git a/cli/build.rs b/cli/build.rs index 78faa8bc6..26b27a955 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -78,22 +78,33 @@ 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", 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.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.broadcast_channel", - deno_broadcast_channel::get_declaration(), + "../ext/broadcast_channel/lib.deno_broadcast_channel.d.ts", ); - op_crate_libs.insert("deno.net", deno_net::get_declaration()); - + op_crate_libs.insert("deno.net", "../ext/net/lib.deno_net.d.ts"); // ensure we invalidate the build properly. - for (_, path) in op_crate_libs.iter() { + 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() + ); println!("cargo:rerun-if-changed={}", path.display()); } @@ -220,7 +231,7 @@ fn create_compiler_snapshot( // if it comes from an op crate, we were supplied with the path to the // file. let path = if let Some(op_crate_lib) = op_crate_libs.get(lib) { - op_crate_lib.clone() + PathBuf::from(op_crate_lib).canonicalize().unwrap() // otherwise we are will generate the path ourself } else { path_dts.join(format!("lib.{}.d.ts", lib)) @@ -247,7 +258,6 @@ fn create_compiler_snapshot( }), ); js_runtime.sync_ops_cache(); - create_snapshot(js_runtime, snapshot_path, files); } @@ -300,54 +310,12 @@ 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=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()); @@ -372,11 +340,6 @@ 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) |