svg2png: Use rsvg-convert if GIMP is not available.
authorBen Pfaff <blp@cs.stanford.edu>
Mon, 14 Mar 2022 23:47:53 +0000 (16:47 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 15 Mar 2022 00:01:48 +0000 (17:01 -0700)
The GNOME flatpak SDK has rsvg-convert, which does just fine, but not GIMP,
and I have no interest in building GIMP as a step in building PSPP.

build-aux/svg2png

index f98b76cea7a812fed8ac98139f78bd2d9d328ab5..3587c26167274d234076f9fc08eca3124d3ae2de 100755 (executable)
 stripprefix=${3#src*icons\/}
 width=${stripprefix%%x*}
 
-# If no width can be extracted from the destination path
-# then take the natural width by setting width to 0
-case "$width" in
-    [0-9][0-9]|[0-9][0-9][0-9])  ;;
-    *)                 width="0";;
-esac
-
-echo "Converting" $1 "to" $3 "size" $width"x"$width
-
-comment=`cat $2`
-gimp -i -d -b "\
+if (gimp --version) >/dev/null 2>&1; then
+    echo "Converting $1 to $3 size $widthx$width with GIMP"
+    comment=`cat $2`
+    # If no width can be extracted from the destination path
+    # then take the natural width by setting width to 0
+    case "$width" in
+       [0-9][0-9] | [0-9][0-9][0-9])  ;;
+       *)                 width="0";;
+    esac
+    gimp -i -d -b "\
 (let* ((image (car (file-svg-load 1 \"$1\" \"$1\" 90 $width $width 0 ))))
       (gimp-image-attach-parasite image '(\"gimp-comment\" 0 \"$comment\"))
       (gimp-file-save 1 image (car (gimp-image-get-active-drawable image))
                      \"$3\" \"$3\"))
     (gimp-quit 1)"
+elif (rsvg-convert --version) >/dev/null 2>&1; then
+    echo "Converting $1 to $3 size $widthx$width with rsvg-convert"
+    case $width in
+       [0-9][0-9] | [0-9][0-9][0-9]) widthoption="--width=$width --height=$width" ;;
+       *) widthoption= ;;
+    esac
+    rsvg-convert $widthoption "$1" > "$3"
+else
+    echo "$0: can't find gimp or rsvg-convert" >&2
+    exit 1
+fi