diff --git a/contrib/icons/Makefile b/contrib/icons/Makefile index 2d2dc150..99b3fbd1 100644 --- a/contrib/icons/Makefile +++ b/contrib/icons/Makefile @@ -6,6 +6,7 @@ help: @echo "Available targets:" @echo " dosbox-staging.ico - Windows format" @echo " dosbox-staging.icns - macOS format" + @echo " icon_.png - render icon in specific size, e.g. icon_24.png" @echo " clean - clean intermediate files" ## @@ -14,39 +15,72 @@ help: # 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. +# This target is using icotool (package icoutils) to create an .ico file. +# Uses librsvg for rendering vectors (package available in most repos). # dosbox-staging.ico: \ - icon_256x256.png \ - icon_48x48.png \ - icon_32x32.png \ - dosbox-staging-16.png + icon_256.png \ + icon_48.png \ + icon_32.png \ + icon_24.png \ + icon_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. +# iconutil is avaliable on macOS out of the box. +# Uses librsvg for rendering vectors (package available via brew). # dosbox-staging.icns: dosbox-staging.iconset iconutil -c icns dosbox-staging.iconset -dosbox-staging.iconset: dosbox-staging-1024.png dosbox-staging-16.png +dosbox-staging.iconset: \ + icon_1024.png \ + icon_512.png \ + icon_256.png \ + icon_128.png \ + icon_64.png \ + icon_32.png \ + icon_16.png mkdir -p "$@" - cp dosbox-staging-16.png $@/icon_16x16.png - sips -z 32 32 $< --out $@/icon_16x16@2x.png - sips -z 32 32 $< --out $@/icon_32x32.png - sips -z 64 64 $< --out $@/icon_32x32@2x.png - sips -z 128 128 $< --out $@/icon_128x128.png - sips -z 256 256 $< --out $@/icon_128x128@2x.png - sips -z 256 256 $< --out $@/icon_256x256.png - sips -z 512 512 $< --out $@/icon_256x256@2x.png - sips -z 512 512 $< --out $@/icon_512x512.png - cp $< $@/icon_512x512@2x.png + cp icon_16.png $@/icon_16x16.png + cp icon_32.png $@/icon_16x16@2x.png + cp icon_32.png $@/icon_32x32.png + cp icon_64.png $@/icon_32x32@2x.png + cp icon_128.png $@/icon_128x128.png + cp icon_256.png $@/icon_128x128@2x.png + cp icon_256.png $@/icon_256x256.png + cp icon_512.png $@/icon_256x256@2x.png + cp icon_512.png $@/icon_512x512.png + cp icon_1024.png $@/icon_512x512@2x.png + +icon_16.png: small-svg/dosbox-staging-16.svg + rsvg-convert -h 16 $< > $@ + +icon_24.png: small-svg/dosbox-staging-24.svg + rsvg-convert -h 24 $< > $@ + +icon_32.png: small-svg/dosbox-staging-32.svg + rsvg-convert -h 32 $< > $@ + +icon_48.png: dosbox-staging.svg + rsvg-convert -h 48 $< > $@ + +icon_64.png: dosbox-staging.svg + rsvg-convert -h 64 $< > $@ + +icon_128.png: dosbox-staging.svg + rsvg-convert -h 128 $< > $@ + +icon_256.png: dosbox-staging.svg + rsvg-convert -h 256 $< > $@ + +icon_512.png: dosbox-staging.svg + rsvg-convert -h 512 $< > $@ + +icon_1024.png: dosbox-staging.svg + rsvg-convert -h 1024 $< > $@ clean: rm -rf dosbox-staging.iconset diff --git a/contrib/icons/dosbox-staging-1024.png b/contrib/icons/dosbox-staging-1024.png deleted file mode 100644 index 8e8a0830..00000000 Binary files a/contrib/icons/dosbox-staging-1024.png and /dev/null differ diff --git a/contrib/icons/dosbox-staging-16.png b/contrib/icons/dosbox-staging-16.png deleted file mode 100644 index bd73bc68..00000000 Binary files a/contrib/icons/dosbox-staging-16.png and /dev/null differ diff --git a/contrib/icons/small-svg/dosbox-staging-16.svg b/contrib/icons/small-svg/dosbox-staging-16.svg new file mode 100644 index 00000000..60c4f7cb --- /dev/null +++ b/contrib/icons/small-svg/dosbox-staging-16.svg @@ -0,0 +1,141 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/contrib/icons/small-svg/dosbox-staging-24.svg b/contrib/icons/small-svg/dosbox-staging-24.svg new file mode 100644 index 00000000..1145ae13 --- /dev/null +++ b/contrib/icons/small-svg/dosbox-staging-24.svg @@ -0,0 +1,159 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/contrib/icons/small-svg/dosbox-staging-32.svg b/contrib/icons/small-svg/dosbox-staging-32.svg new file mode 100644 index 00000000..91647acb --- /dev/null +++ b/contrib/icons/small-svg/dosbox-staging-32.svg @@ -0,0 +1,162 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/contrib/icons/small-svg/dosbox-staging-src.svg b/contrib/icons/small-svg/dosbox-staging-src.svg new file mode 100644 index 00000000..eef087b2 --- /dev/null +++ b/contrib/icons/small-svg/dosbox-staging-src.svg @@ -0,0 +1,161 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + +