From ff8fd7619ae894b70f149b192d8635d842827141 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Wed, 10 Aug 2022 16:32:52 -0300 Subject: [PATCH] fix(tauri-build): rerun if assets or icons change (#4910) --- .changes/build-codegen-rerun.md | 5 ++++ core/tauri-build/src/codegen/context.rs | 35 +++++++++++++++++++++++++ core/tauri-build/src/lib.rs | 4 --- 3 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 .changes/build-codegen-rerun.md diff --git a/.changes/build-codegen-rerun.md b/.changes/build-codegen-rerun.md new file mode 100644 index 000000000..9f1e003c6 --- /dev/null +++ b/.changes/build-codegen-rerun.md @@ -0,0 +1,5 @@ +--- +"tauri-build": patch +--- + +Rerun codegen if assets or icons change. diff --git a/core/tauri-build/src/codegen/context.rs b/core/tauri-build/src/codegen/context.rs index a8c26df4b..12870bff1 100644 --- a/core/tauri-build/src/codegen/context.rs +++ b/core/tauri-build/src/codegen/context.rs @@ -10,6 +10,7 @@ use std::{ path::PathBuf, }; use tauri_codegen::{context_codegen, ContextData}; +use tauri_utils::config::{AppUrl, WindowUrl}; // TODO docs /// A builder for generating a Tauri application context during compile time. @@ -92,6 +93,40 @@ impl CodegenContext { /// Non-panicking [`Self::build`] pub fn try_build(self) -> Result { let (config, config_parent) = tauri_codegen::get_config(&self.config_path)?; + + // rerun if changed + let app_url = if self.dev { + &config.build.dev_path + } else { + &config.build.dist_dir + }; + match app_url { + AppUrl::Url(WindowUrl::App(p)) => { + println!("cargo:rerun-if-changed={}", config_parent.join(p).display()); + } + AppUrl::Files(files) => { + for path in files { + println!( + "cargo:rerun-if-changed={}", + config_parent.join(path).display() + ); + } + } + _ => (), + } + for icon in &config.tauri.bundle.icon { + println!( + "cargo:rerun-if-changed={}", + config_parent.join(icon).display() + ); + } + if let Some(tray_icon) = config.tauri.system_tray.as_ref().map(|t| &t.icon_path) { + println!( + "cargo:rerun-if-changed={}", + config_parent.join(tray_icon).display() + ); + } + let code = context_codegen(ContextData { dev: self.dev, config, diff --git a/core/tauri-build/src/lib.rs b/core/tauri-build/src/lib.rs index 27fc15cf3..5ddbb3730 100644 --- a/core/tauri-build/src/lib.rs +++ b/core/tauri-build/src/lib.rs @@ -293,10 +293,6 @@ pub fn try_build(attributes: Attributes) -> Result<()> { )?; } - for icon in &config.tauri.bundle.icon { - println!("cargo:rerun-if-changed={}", icon); - } - #[allow(unused_mut, clippy::redundant_clone)] let mut resources = config.tauri.bundle.resources.clone().unwrap_or_default(); #[cfg(windows)]