mirror of https://github.com/Leinnan/rpack.git
41 lines
1.6 KiB
Rust
41 lines
1.6 KiB
Rust
use std::process::Command;
|
|
|
|
fn main() {
|
|
// note: add error checking yourself.
|
|
{
|
|
let output = Command::new("git")
|
|
.args(["rev-parse", "HEAD"])
|
|
.output()
|
|
.unwrap();
|
|
let git_hash = String::from_utf8(output.stdout).unwrap();
|
|
println!("cargo:rustc-env=GIT_HASH={}", &git_hash[..7]);
|
|
}
|
|
{
|
|
let output = Command::new("git")
|
|
.args(["log", "-1", "--date=format:%Y/%m/%d %T", "--format=%ad"])
|
|
.output()
|
|
.unwrap();
|
|
let git_hash = String::from_utf8(output.stdout).unwrap();
|
|
println!("cargo:rustc-env=GIT_DATE={}", git_hash);
|
|
}
|
|
|
|
if std::env::var("CARGO_CFG_TARGET_OS").is_ok_and(|t| t.eq("windows")) {
|
|
let icon = image::open("./static/base_icon.png").expect("Failed to open icon");
|
|
let new_icon = icon.resize(128, 128, image::imageops::FilterType::Lanczos3);
|
|
new_icon
|
|
.save("../../target/icon_128.png")
|
|
.expect("Failed to save");
|
|
let mut icon_dir = ico::IconDir::new(ico::ResourceType::Icon);
|
|
let gen_image_file =
|
|
std::fs::File::open("../../target/icon_128.png").expect("failed to open icon file");
|
|
let gen_image =
|
|
ico::IconImage::read_png(gen_image_file).expect("failed to read icon image");
|
|
icon_dir.add_entry(ico::IconDirEntry::encode(&gen_image).unwrap());
|
|
let file = std::fs::File::create("../../target/icon.ico").unwrap();
|
|
icon_dir.write(file).expect("Failed to write icon");
|
|
let mut res = winresource::WindowsResource::new();
|
|
res.set_icon("../../target/icon.ico");
|
|
let _ = res.compile();
|
|
}
|
|
}
|