Files
location2address/build.rs
2026-05-12 17:27:18 +08:00

45 lines
1.1 KiB
Rust

use std::path::PathBuf;
use std::process::Command;
fn main() {
let ico_path = PathBuf::from("location.ico");
if !ico_path.exists() {
println!(
"cargo:warning=location.ico 不存在,将不嵌入图标。请将图标文件放入项目根目录。"
);
return;
}
println!("cargo:rerun-if-changed=location.ico");
println!("cargo:rerun-if-changed=icon.rc");
let out_dir = PathBuf::from(std::env::var("OUT_DIR").unwrap());
let res_output = out_dir.join("icon.res");
let windres_path = find_windres();
let status = Command::new(&windres_path)
.args([
"icon.rc",
"-O", "coff",
"-o",
])
.arg(&res_output)
.status()
.expect("执行 windres 失败");
if !status.success() {
panic!("windres 编译资源文件失败");
}
println!("cargo:rustc-link-arg={}", res_output.display());
}
fn find_windres() -> PathBuf {
let mingw_windres = PathBuf::from("C:\\msys64\\mingw64\\bin\\windres.exe");
if mingw_windres.exists() {
return mingw_windres;
}
PathBuf::from("windres")
}