#[cfg(unix)]
fn main() {}
#[cfg(windows)]
fn main() {
let out_file = format!("{}/jolly.ico", std::env::var("OUT_DIR").unwrap());
let opt = usvg::Options::default();
let svg_data = std::fs::read("icon/jolly.svg").unwrap();
let rtree = usvg::Tree::from_data(&svg_data, &opt).unwrap();
let width: u32 = 256;
let height = width;
let pixmap_size = rtree
.size
.scale_to(usvg::Size::new(width.into(), height.into()).unwrap())
.to_screen_size();
let mut pixmap = tiny_skia::Pixmap::new(pixmap_size.width(), pixmap_size.height()).unwrap();
resvg::render(
&rtree,
usvg::FitTo::Width(width),
tiny_skia::Transform::default(),
pixmap.as_mut(),
)
.unwrap();
let bytes = pixmap.encode_png().unwrap();
let mut icon_dir = ico::IconDir::new(ico::ResourceType::Icon);
let image = ico::IconImage::read_png(bytes.as_slice()).unwrap();
icon_dir.add_entry(ico::IconDirEntry::encode(&image).unwrap());
let file = std::fs::File::create(&out_file).unwrap();
icon_dir.write(file).unwrap();
let mut res = winres::WindowsResource::new();
res.set_icon(&out_file);
res.compile().unwrap();
}