Really support building with rsvg-convert
authorJ. Ali Harlow <ali@juiblex.co.uk>
Thu Jul 16 23:02:10 2020 +0100 (2020-07-16)
changeset 1002c571abcea2a
parent 99 0121592e2512
child 101 abdfa0410032
Really support building with rsvg-convert
Makefile.am
app-manager/Makefile.am
config/rsvg_convert
configure.ac
plover-open/Makefile.am
     1.1 --- a/Makefile.am	Thu Jul 16 19:54:45 2020 +0100
     1.2 +++ b/Makefile.am	Thu Jul 16 23:02:10 2020 +0100
     1.3 @@ -7,3 +7,5 @@
     1.4  check-valgrind:
     1.5  	-(cd tests && $(MAKE) $(AM_MAKEFLAGS) check-valgrind)
     1.6  	@echo 'Results in tests/test-suite-*.log)'
     1.7 +
     1.8 +EXTRA_DIST=config/rsvg_convert
     2.1 --- a/app-manager/Makefile.am	Thu Jul 16 19:54:45 2020 +0100
     2.2 +++ b/app-manager/Makefile.am	Thu Jul 16 23:02:10 2020 +0100
     2.3 @@ -34,22 +34,22 @@
     2.4  resources.$(OBJEXT):	app-manager.ico app-manager.exe.manifest
     2.5  
     2.6  plover-applications%.pnm:	plover-applications.svg
     2.7 -	$(PLOVER_V_SKIP)$(RSVG) -w $* -h $* -f png $< temp.png
     2.8 -	$(AM_V_GEN)pngtopnm temp.png | pnmquant -quiet 256 > $@
     2.9 -	$(PLOVER_V_SKIP)$(RM) temp.png
    2.10 +	$(AM_V_GEN)$(RSVG_CONVERT) -w $* -h $* -f png -o temp.png $< && \
    2.11 +	  pngtopnm temp.png | pnmquant -quiet 256 > $@ && \
    2.12 +	  $(RM) temp.png
    2.13  
    2.14  plover-applications%.pgm:	plover-applications.svg
    2.15 -	$(PLOVER_V_SKIP)$(RSVG) -w $* -h $* -f png $< temp.png
    2.16 -	$(AM_V_GEN)pngtopnm -alpha temp.png > $@
    2.17 -	$(PLOVER_V_SKIP)$(RM) temp.png
    2.18 +	$(AM_V_GEN)$(RSVG_CONVERT) -w $* -h $* -f png -o temp.png $< && \
    2.19 +	  pngtopnm -alpha temp.png > $@ && \
    2.20 +	  $(RM) temp.png
    2.21  
    2.22  24x24/plover-applications.png:	plover-applications.svg
    2.23 -	$(PLOVER_V_SKIP)mkdir -p 24x24
    2.24 -	$(AM_V_GEN)$(RSVG) -w 24 -h 24 -f png $< $@
    2.25 +	$(AM_V_GEN)mkdir -p 24x24 && \
    2.26 +	  $(RSVG_CONVERT) -w 24 -h 24 -f png -o $@ $<
    2.27  
    2.28  48x48/plover-applications.png:	plover-applications.svg
    2.29 -	$(PLOVER_V_SKIP)mkdir -p 48x48
    2.30 -	$(AM_V_GEN)$(RSVG) -w 48 -h 48 -f png $< $@
    2.31 +	$(AM_V_GEN)mkdir -p 48x48 && \
    2.32 +	  $(RSVG_CONVERT) -w 48 -h 48 -f png -o $@ $<
    2.33  
    2.34  app-manager.ico:	plover-applications16.pnm plover-applications16.pgm \
    2.35  		plover-applications22.pnm plover-applications22.pgm \
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/config/rsvg_convert	Thu Jul 16 23:02:10 2020 +0100
     3.3 @@ -0,0 +1,74 @@
     3.4 +#!/bin/bash
     3.5 +# A compatibility wrapper for rsvg that makes it act like rsvg-convert
     3.6 +usage()
     3.7 +{
     3.8 +    echo "Usage: rsvg [OPTIONS...] file.svg"
     3.9 +    echo "  -d, --dpi-x=<float>          pixels per inch"
    3.10 +    echo "  -p, --dpi-y=<float>          pixels per inch"
    3.11 +    echo "  -x, --x-zoom=<float>         x zoom factor"
    3.12 +    echo "  -y, --y-zoom=<float>         y zoom factor"
    3.13 +    echo "  -w, --width=<int>            width"
    3.14 +    echo "  -h, --height=<int>           height"
    3.15 +#    echo "  -q, --quality=<int>          JPEG quality"
    3.16 +#    echo "  -f, --format=[png, jpeg]     save format"
    3.17 +    echo "  -f, --format=[png]           save format"
    3.18 +    echo "  -o, --output=<file>          output filename"
    3.19 +    echo "  -v, --version                show version information"
    3.20 +    echo ""
    3.21 +    echo "Help options:"
    3.22 +    echo "  -?, --help                   Show this help message"
    3.23 +    echo "  --usage                      Display brief usage message"
    3.24 +}
    3.25 +TEMP=`getopt -s bash -o d:p:x:y:w:h:q:f:o:v \
    3.26 +  --long dpi-x:,dpi-y:,x-zoom:,y-zoom:,width:,height:,quality:,format:,output:,version \
    3.27 +  -n 'rsvg' -- "$@"`
    3.28 +if [ $? != 0 ]; then
    3.29 +    usage
    3.30 +    exit 1
    3.31 +fi
    3.32 +eval set -- "$TEMP"
    3.33 +cmd="rsvg"
    3.34 +output="/dev/stdout"
    3.35 +while true; do
    3.36 +    case "$1" in
    3.37 +	-d|--dpi-x|-p|--dpi-y|-x|--x-zoom|-y|--y-zoom|-w|--width|-h|--height)
    3.38 +	    cmd="$cmd $1 $2"
    3.39 +	    shift 2
    3.40 +	    ;;
    3.41 +	-q|--quality)
    3.42 +	    echo "rsvg-convert wrapper: jpeg format not supported"
    3.43 +	    exit 1
    3.44 +	    ;;
    3.45 +	-f|--format)
    3.46 +	    if [ "$2" = "png" -o -z "$2" ]; then
    3.47 +		cmd="$cmd $1 png"
    3.48 +	    else
    3.49 +		echo "rsvg-convert wrapper: $2 format not supported"
    3.50 +		exit 1
    3.51 +	    fi
    3.52 +	    shift 2
    3.53 +	    ;;
    3.54 +	-o|--output)
    3.55 +	    output="$2"
    3.56 +	    shift 2
    3.57 +	    ;;
    3.58 +	-v|--version)
    3.59 +	    cmd="$cmd $1"
    3.60 +	    shift
    3.61 +	    ;;
    3.62 +	--)
    3.63 +	    shift
    3.64 +	    break
    3.65 +	    ;;
    3.66 +	*)
    3.67 +	    echo "Internal error!" >&2
    3.68 +	    exit 1
    3.69 +	    ;;
    3.70 +    esac
    3.71 +done
    3.72 +if [ "$#" -ne 1 ]; then
    3.73 +    usage
    3.74 +    exit 1
    3.75 +fi
    3.76 +input="$1"
    3.77 +exec $cmd "$input" "$output"
     4.1 --- a/configure.ac	Thu Jul 16 19:54:45 2020 +0100
     4.2 +++ b/configure.ac	Thu Jul 16 23:02:10 2020 +0100
     4.3 @@ -89,9 +89,12 @@
     4.4  PKG_PROG_PKG_CONFIG
     4.5  AC_CHECK_TOOL([WINDRES],[windres],[no])
     4.6  AM_CONDITIONAL([HAVE_WINDRES],[test x$WINDRES != xno])
     4.7 -AC_CHECK_PROGS([RSVG],[rsvg rsvg-convert],[no])
     4.8 -if test "$RSVG" = no; then
     4.9 -    AC_MSG_ERROR([no rsvg program found to convert SVG files to bitmaps])
    4.10 +AC_CHECK_PROGS([RSVG_CONVERT],[rsvg rsvg-convert],[no])
    4.11 +if test "$RSVG_CONVERT" = no; then
    4.12 +    AC_MSG_ERROR([no program found to convert SVG files to bitmaps])
    4.13 +fi
    4.14 +if test "$RSVG_CONVERT" = rsvg; then
    4.15 +    RSVG_CONVERT="sh \$(top_srcdir)/config/rsvg_convert"
    4.16  fi
    4.17  AX_VALGRIND_CHECK
    4.18  AS_IF([test "$enable_valgrind" != "no"],[[
     5.1 --- a/plover-open/Makefile.am	Thu Jul 16 19:54:45 2020 +0100
     5.2 +++ b/plover-open/Makefile.am	Thu Jul 16 23:02:10 2020 +0100
     5.3 @@ -31,22 +31,22 @@
     5.4  	pngtopnm $< | pnmquant 256 > $@
     5.5  
     5.6  mimetypes-application-x-rpm%.pnm:	mimetypes-application-x-rpm.svg
     5.7 -	$(PLOVER_V_SKIP)rsvg -w $* -h $* -f png $< temp.png
     5.8 -	$(AM_V_GEN)pngtopnm temp.png | pnmquant -quiet 256 > $@
     5.9 -	$(PLOVER_V_SKIP)$(RM) temp.png
    5.10 +	$(AM_V_GEN)$(RSVG_CONVERT) -w $* -h $* -f png -o temp.png $< && \
    5.11 +	  pngtopnm temp.png | pnmquant -quiet 256 > $@ && \
    5.12 +	  $(RM) temp.png
    5.13  
    5.14  mimetypes-application-x-rpm%.pgm:	mimetypes-application-x-rpm.svg
    5.15 -	$(PLOVER_V_SKIP)rsvg -w $* -h $* -f png $< temp.png
    5.16 -	$(AM_V_GEN)pngtopnm -alpha temp.png > $@
    5.17 -	$(PLOVER_V_SKIP)$(RM) temp.png
    5.18 +	$(AM_V_GEN)$(RSVG_CONVERT) -w $* -h $* -f png -o temp.png $< && \
    5.19 +	  pngtopnm -alpha temp.png > $@ && \
    5.20 +	  $(RM) temp.png
    5.21  
    5.22  24x24/application-x-redhat-package-manager.png:	mimetypes-application-x-rpm.svg
    5.23 -	$(PLOVER_V_SKIP)mkdir -p 24x24
    5.24 -	$(AM_V_GEN)rsvg -w 24 -h 24 -f png $< $@
    5.25 +	$(AM_V_GEN)mkdir -p 24x24 && \
    5.26 +	  $(RSVG_CONVERT) -w 24 -h 24 -f png -o $@ $<
    5.27  
    5.28  48x48/application-x-redhat-package-manager.png:	mimetypes-application-x-rpm.svg
    5.29 -	$(PLOVER_V_SKIP)mkdir -p 48x48
    5.30 -	$(AM_V_GEN)rsvg -w 48 -h 48 -f png $< $@
    5.31 +	$(AM_V_GEN)mkdir -p 48x48 && \
    5.32 +	  $(RSVG_CONVERT) -w 48 -h 48 -f png -o $@ $<
    5.33  
    5.34  plover-open.ico:	mimetypes-application-x-rpm16.pnm \
    5.35  		mimetypes-application-x-rpm16.pgm \