summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorDivy Srivastava <dj.srivastava23@gmail.com>2022-03-14 09:08:54 +0530
committerGitHub <noreply@github.com>2022-03-14 09:08:54 +0530
commit4e3ed37037a2aa1edeac260dc3463a81d9cf9b88 (patch)
tree86a7826e7d5de1e1c6b7f5342a1e2a93ae52ab8b /cli
parent6a635345ef46d6446960aef3333dfc8ac531b5be (diff)
chore: improve build times for `ext/` changes (#13927)
Diffstat (limited to 'cli')
-rw-r--r--cli/Cargo.toml14
-rw-r--r--cli/build.rs85
2 files changed, 26 insertions, 73 deletions
diff --git a/cli/Cargo.toml b/cli/Cargo.toml
index ad3d028de..1c75e58c3 100644
--- a/cli/Cargo.toml
+++ b/cli/Cargo.toml
@@ -25,20 +25,10 @@ harness = false
path = "./bench/lsp_bench_standalone.rs"
[build-dependencies]
-deno_broadcast_channel = { version = "0.34.0", path = "../ext/broadcast_channel" }
-deno_console = { version = "0.40.0", path = "../ext/console" }
deno_core = { version = "0.122.0", path = "../core" }
-deno_crypto = { version = "0.54.0", path = "../ext/crypto" }
-deno_fetch = { version = "0.63.0", path = "../ext/fetch" }
-deno_net = { version = "0.32.0", path = "../ext/net" }
-deno_url = { version = "0.40.0", path = "../ext/url" }
-deno_web = { version = "0.71.0", path = "../ext/web" }
-deno_webgpu = { version = "0.41.0", path = "../ext/webgpu" }
-deno_websocket = { version = "0.45.0", path = "../ext/websocket" }
-deno_webstorage = { version = "0.35.0", path = "../ext/webstorage" }
regex = "=1.5.5"
serde = { version = "=1.0.133", features = ["derive"] }
-zstd = '=0.9.2'
+zstd = { version = '=0.9.2', default-features = false }
[target.'cfg(windows)'.build-dependencies]
winapi = "=0.3.9"
@@ -98,7 +88,7 @@ tokio-util = "=0.6.9"
typed-arena = "2.0.1"
uuid = { version = "=0.8.2", features = ["v4", "serde"] }
walkdir = "=2.3.2"
-zstd = '=0.9.2'
+zstd = { version = '=0.9.2', default-features = false }
[target.'cfg(windows)'.dependencies]
fwdansi = "=1.1.0"
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)