From b10949511478ee291300bc6bb2667847dbc59d70 Mon Sep 17 00:00:00 2001 From: Patryk Obara Date: Mon, 3 Feb 2020 00:39:44 +0100 Subject: [PATCH] Add target for creating .ico file --- contrib/icons/.gitignore | 1 + contrib/icons/Makefile | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/contrib/icons/.gitignore b/contrib/icons/.gitignore index a0a78dec..6204d801 100644 --- a/contrib/icons/.gitignore +++ b/contrib/icons/.gitignore @@ -1 +1,2 @@ dosbox-staging.iconset +icon_*.png diff --git a/contrib/icons/Makefile b/contrib/icons/Makefile index 4081f7de..2d2dc150 100644 --- a/contrib/icons/Makefile +++ b/contrib/icons/Makefile @@ -4,11 +4,32 @@ help: @echo "Re-generate icons in platform specific formats." @echo @echo "Available targets:" + @echo " dosbox-staging.ico - Windows format" @echo " dosbox-staging.icns - macOS format" @echo " clean - clean intermediate files" +## +# Create an icon using Windows .ico format. +# +# Windows users are expected to create icons using GUI applications, and +# there's no good Windows-native command line program for this usecase. +# +# This target is using convert (package imagemagick) to resize icons +# and icotool (package icoutils) to create an .ico file. +# +dosbox-staging.ico: \ + icon_256x256.png \ + icon_48x48.png \ + icon_32x32.png \ + dosbox-staging-16.png + icotool -c $^ -o $@ + +icon_%.png: dosbox-staging-1024.png + convert -resize $(shell echo $@ | sed 's|icon_\(.*\).png|\1|') $< $@ + ## # Create an icon using macOS .icns format. +# # Uses sips, which is available by default on macOS. # dosbox-staging.icns: dosbox-staging.iconset @@ -29,3 +50,4 @@ dosbox-staging.iconset: dosbox-staging-1024.png dosbox-staging-16.png clean: rm -rf dosbox-staging.iconset + rm -f icon_*.png