HMMM ICON
This commit is contained in:
parent
eec110e81a
commit
5e774c432e
|
|
@ -22,4 +22,4 @@ serde_json = "1"
|
||||||
dirs = "6"
|
dirs = "6"
|
||||||
|
|
||||||
[target.'cfg(windows)'.build-dependencies]
|
[target.'cfg(windows)'.build-dependencies]
|
||||||
winres = "0.1"
|
embed-resource = "3"
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,12 @@ fn main() {
|
||||||
|
|
||||||
let svg = "../assets/Acord.svg";
|
let svg = "../assets/Acord.svg";
|
||||||
let ico = "icon.ico";
|
let ico = "icon.ico";
|
||||||
|
let rc = "icon.rc";
|
||||||
let tmp = "icon_tmp";
|
let tmp = "icon_tmp";
|
||||||
|
|
||||||
println!("cargo:rerun-if-changed={svg}");
|
println!("cargo:rerun-if-changed={svg}");
|
||||||
|
|
||||||
|
// Generate icon.ico from SVG via rsvg-convert + magick.
|
||||||
let _ = std::fs::create_dir_all(tmp);
|
let _ = std::fs::create_dir_all(tmp);
|
||||||
let sizes = [16, 24, 32, 48, 64, 128, 256];
|
let sizes = [16, 24, 32, 48, 64, 128, 256];
|
||||||
let mut pngs = Vec::new();
|
let mut pngs = Vec::new();
|
||||||
|
|
@ -22,7 +24,7 @@ fn main() {
|
||||||
.map(|s| s.success())
|
.map(|s| s.success())
|
||||||
.unwrap_or(false);
|
.unwrap_or(false);
|
||||||
if !ok {
|
if !ok {
|
||||||
eprintln!("cargo:warning=rsvg-convert not found or failed — building without icon");
|
println!("cargo:warning=rsvg-convert not found or failed — building without icon");
|
||||||
let _ = std::fs::remove_dir_all(tmp);
|
let _ = std::fs::remove_dir_all(tmp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -39,16 +41,13 @@ fn main() {
|
||||||
let _ = std::fs::remove_dir_all(tmp);
|
let _ = std::fs::remove_dir_all(tmp);
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
eprintln!("cargo:warning=magick (ImageMagick) not found — building without icon");
|
println!("cargo:warning=magick (ImageMagick) not found — building without icon");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
println!("cargo:warning=icon.ico generated, embedding via winres...");
|
// Write a .rc file and embed via embed-resource (supports LLVM/GNU toolchains).
|
||||||
let mut res = winres::WindowsResource::new();
|
std::fs::write(rc, "1 ICON \"icon.ico\"\n").ok();
|
||||||
res.set_icon(ico);
|
embed_resource::compile(rc, embed_resource::NONE);
|
||||||
match res.compile() {
|
println!("cargo:warning=icon embedded successfully");
|
||||||
Ok(_) => println!("cargo:warning=icon embedded successfully"),
|
|
||||||
Err(e) => eprintln!("cargo:warning=winres failed: {e} — building without icon"),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue