29 lines
1.2 KiB
Rust
29 lines
1.2 KiB
Rust
fn main() {
|
|
tauri_build::build();
|
|
|
|
// Windows: Embed Common Controls v6 manifest for test binaries
|
|
//
|
|
// When running `cargo test`, the generated test executables don't include
|
|
// the standard Tauri application manifest. Without Common Controls v6,
|
|
// `tauri::test` calls fail with STATUS_ENTRYPOINT_NOT_FOUND.
|
|
//
|
|
// This workaround:
|
|
// 1. Embeds the manifest into test binaries via /MANIFEST:EMBED
|
|
// 2. Uses /MANIFEST:NO for the main binary to avoid duplicate resources
|
|
// (Tauri already handles manifest embedding for the app binary)
|
|
#[cfg(target_os = "windows")]
|
|
{
|
|
let manifest_path = std::path::PathBuf::from(
|
|
std::env::var("CARGO_MANIFEST_DIR").expect("missing CARGO_MANIFEST_DIR"),
|
|
)
|
|
.join("common-controls.manifest");
|
|
let manifest_arg = format!("/MANIFESTINPUT:{}", manifest_path.display());
|
|
|
|
println!("cargo:rustc-link-arg=/MANIFEST:EMBED");
|
|
println!("cargo:rustc-link-arg={}", manifest_arg);
|
|
// Avoid duplicate manifest resources in binary builds.
|
|
println!("cargo:rustc-link-arg-bins=/MANIFEST:NO");
|
|
println!("cargo:rerun-if-changed={}", manifest_path.display());
|
|
}
|
|
}
|