mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-03-23 23:59:24 +08:00
Follow-up to #644: Extract duplicate get_home_dir() implementations into a single pub fn in config.rs, reducing code duplication across codex_config.rs, gemini_config.rs, and settings.rs. Also adds documentation comments to build.rs explaining the Windows manifest workaround for test binaries.
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());
|
|
}
|
|
}
|