Переглянути джерело

fix(build): statically link VC runtime only on `tauri build` (#4292)

Lucas Fernandes Nogueira 3 роки тому
батько
коміт
d703d27a70

+ 6 - 0
.changes/set-static-vcruntime-envvar.md

@@ -0,0 +1,6 @@
+---
+"cli.rs": patch
+"cli.js": patch
+---
+
+Configure the `STATIC_VCRUNTIME` environment variable so `tauri-build` statically links it on the build command.

+ 5 - 0
.changes/static-vcruntime-config-envvar.md

@@ -0,0 +1,5 @@
+---
+"tauri-build": patch
+---
+
+Only statically link the VC runtime when the `STATIC_VCRUNTIME` environment variable is set to `true` (automatically done by the Tauri CLI).

+ 3 - 1
core/tauri-build/src/lib.rs

@@ -187,7 +187,9 @@ pub fn try_build(attributes: Attributes) -> Result<()> {
   };
 
   #[cfg(windows)]
-  static_vcruntime::build();
+  if std::env::var("STATIC_VCRUNTIME").map_or(false, |v| v == "true") {
+    static_vcruntime::build();
+  }
 
   cfg_alias("dev", !has_feature("custom-protocol"));
 

+ 3 - 1
core/tests/app-updater/build.rs

@@ -2,4 +2,6 @@
 // SPDX-License-Identifier: Apache-2.0
 // SPDX-License-Identifier: MIT
 
-fn main() {}
+fn main() {
+  tauri_build::build()
+}

+ 1 - 0
tooling/cli/src/interface/rust.rs

@@ -104,6 +104,7 @@ pub fn build_project(runner: String, args: Vec<String>) -> crate::Result<()> {
   Command::new(&runner)
     .args(&["build", "--features=custom-protocol"])
     .args(args)
+    .env("STATIC_VCRUNTIME", "true")
     .pipe()?
     .output_ok()
     .with_context(|| format!("Result of `{} build` operation was unsuccessful", runner))?;