summaryrefslogtreecommitdiff
path: root/cli/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/build.rs')
-rw-r--r--cli/build.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/cli/build.rs b/cli/build.rs
index 2678a8dbb..3d9866128 100644
--- a/cli/build.rs
+++ b/cli/build.rs
@@ -400,6 +400,24 @@ fn main() {
println!("cargo:rustc-env=TARGET={}", env::var("TARGET").unwrap());
println!("cargo:rustc-env=PROFILE={}", env::var("PROFILE").unwrap());
+ if cfg!(windows) {
+ // these dls load slowly, so delay loading them
+ let dlls = [
+ // webgpu
+ "d3dcompiler_47",
+ "OPENGL32",
+ // network related functions
+ "iphlpapi",
+ ];
+ for dll in dlls {
+ println!("cargo:rustc-link-arg-bin=deno=/delayload:{dll}.dll");
+ println!("cargo:rustc-link-arg-bin=denort=/delayload:{dll}.dll");
+ }
+ // enable delay loading
+ println!("cargo:rustc-link-arg-bin=deno=delayimp.lib");
+ println!("cargo:rustc-link-arg-bin=denort=delayimp.lib");
+ }
+
let c = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap());
let o = PathBuf::from(env::var_os("OUT_DIR").unwrap());