#!/bin/bash -e # # Update generated stuff in graphics/ from the source files. # # It would be nice to do this with waf but: # a) getting the wscript right is a complete pain in the arse # b) running Inkscape from the command line on OS X is a complete pain in the arse set -e pwd=`pwd` if [ `basename $pwd` != "graphics" ]; then echo "$0: run within graphics/" exit 1 fi function required_font() { set +e check=$(fc-list | grep "$1") set -e if [ "$check" == "" ]; then echo "Missing font $1" exit 1 fi } svg_apps="dcpomatic2_kdm dcpomatic2_server dcpomatic2_batch dcpomatic2_player dcpomatic2_playlist dcpomatic2_disk dcpomatic2_combiner" if [ `uname -s` == "Darwin" ]; then # Convert OS X icons using OS X-only iconutil for p in dcpomatic2 $svg_apps; do iconutil --convert icns --output osx/$p.icns osx/$p.iconset done else required_font "Libre Baskerville" INKSCAPE="$HOME/Applications/inkscape" for c in icotool convert inkbatch $INKSCAPE; do if [ ! -x "$(command -v $c)" ]; then echo "$c is required" exit 1 fi done INKSCAPE_EXPORT="$INKSCAPE -C --export-type=png" # OS X application icons mkdir -p osx for r in 16 32 128 256 512; do for p in dcpomatic2; do mkdir -p osx/$p.iconset convert src/dcpomatic.png -resize $rx$r osx/$p.iconset/icon_${r}x${r}.png convert src/dcpomatic.png -resize $rx$r osx/$p.iconset/icon_${r}x${r}@2x.png done for p in $svg_apps; do mkdir -p osx/$p.iconset $INKSCAPE_EXPORT --export-filename=osx/$p.iconset/icon_${r}x${r}.png -w $r -h $r src/$p.svg $INKSCAPE_EXPORT --export-filename=osx/$p.iconset/icon_${r}x${r}@2x.png -w $r -h $r src/$p.svg done done # Linux application icons mkdir -p linux for r in 16 22 32 48 64 128 256 512; do mkdir -p linux/$r convert src/dcpomatic.png -resize $rx$r linux/$r/dcpomatic2.png for p in $svg_apps; do $INKSCAPE_EXPORT --export-filename=linux/$r/$p.png src/$p.svg -w $r -h $r done done # Windows application icons mkdir -p windows for p in dcpomatic2 $svg_apps; do icotool -c -o windows/$p.ico linux/16/$p.png linux/32/$p.png linux/48/$p.png linux/64/$p.png linux/128/$p.png done convert src/dcpomatic.png -resize 400x400 windows/dcpomatic.bmp # OS X preferences icons mkdir -p osx/preferences for i in defaults email kdm_email cover_sheet keys tms notifications locations sound identifiers servers general advanced; do inkbatch --inkscape $INKSCAPE -i bounds-$i -o osx/preferences/$i.png --width 32 --height 32 src/preferences.svg inkbatch --inkscape $INKSCAPE -i bounds-$i -o osx/preferences/$i@2x.png --width 64 --height 64 src/preferences.svg done # OS X menu bar icon for the server (in dark and light mode) $INKSCAPE_EXPORT --export-filename=osx/dcpomatic_small_white.png -w 64 -h 64 src/dcpomatic_small_white.svg $INKSCAPE_EXPORT --export-filename=osx/dcpomatic_small_black.png -w 64 -h 64 src/dcpomatic_small_black.svg # Splash screen (all platforms) $INKSCAPE_EXPORT --export-filename=splash.png src/splash.svg -w 400 -h 300 # Timeline toolbar icons (all platforms) for i in select zoom zoom_all snap sequence; do $INKSCAPE_EXPORT --export-filename=$i.png src/$i.svg -w 32 -h 32 done # Playlist editor tick/no-tick $INKSCAPE_EXPORT --export-filename=tick.png src/tick.svg -w 16 -h 16 $INKSCAPE_EXPORT --export-filename=no_tick.png src/no_tick.svg -w 16 -h 16 # Link icon $INKSCAPE_EXPORT --export-filename=link.png src/link.svg -w 9 -h 16 # favicon mkdir -p web convert src/web.png -resize 256x256 -transparent white web/favicon-256x256.png for r in 16 32 64 128; do convert web/favicon-256x256.png -resize $rx$r web/favicon-${r}x${r}.png done convert web/favicon-16x16.png web/favicon-32x32.png web/favicon-64x64.png web/favicon-128x128.png web/favicon-256x256.png web/favicon.ico convert src/web.png -resize 123x123 -transparent white web/logo.png fi