fix: embed icon in Windows exe via direct resource.o linker arg
This commit is contained in:
parent
4353045b1a
commit
5124856b72
4 changed files with 13 additions and 429 deletions
|
|
@ -22,14 +22,21 @@ fn main() {
|
|||
"windres"
|
||||
};
|
||||
|
||||
let manifest_dir = std::env::var("CARGO_MANIFEST_DIR").unwrap();
|
||||
let out_dir = std::env::var("OUT_DIR").unwrap();
|
||||
|
||||
let mut res = winres::WindowsResource::new();
|
||||
res.set_icon("../../assets/icon.ico");
|
||||
res.set_icon(&format!("{}/../../assets/icon.ico", manifest_dir));
|
||||
res.set_toolkit_path("/usr");
|
||||
res.set_windres_path(windres);
|
||||
res.set_ar_path("x86_64-w64-mingw32-ar");
|
||||
|
||||
match res.compile() {
|
||||
Ok(_) => println!("cargo:warning=Icon embedded successfully via {windres}"),
|
||||
Ok(_) => {
|
||||
println!("cargo:warning=Icon embedded successfully via {windres}");
|
||||
// Pass resource.o directly as linker arg (avoids ld skipping unreferenced archive members)
|
||||
println!("cargo:rustc-link-arg={}/resource.o", out_dir);
|
||||
}
|
||||
Err(e) => {
|
||||
println!("cargo:warning=winres failed: {e}");
|
||||
println!("cargo:warning=windres path used: {windres}");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue