Use cairosvg rather than librsvg to convert SVG to PNG.
authorRoy Marples <roy@marples.name>
Mon, 28 Dec 2020 16:01:52 +0000 (16:01 +0000)
committerRoy Marples <roy@marples.name>
Mon, 28 Dec 2020 16:01:52 +0000 (16:01 +0000)
librsvg now uses rust which I really don't want in my build chain.
cairosvg on the other hand uses python, which already is in my chain.

The downside is that we need to detect the binary name as often
it's based on the python version.

configure
mk/icon.mk

index 0e39ea790225882c1d0cbe49145b47dc8f1be47b..da9cc7c09baff207131a385f078e680576c32ea2 100755 (executable)
--- a/configure
+++ b/configure
@@ -366,6 +366,23 @@ echo "LIB_DHCPCD=  $x" >>$CONFIG_MK
 # what we actually need.
 echo "LDADD+=          -Wl,--as-needed" >>$CONFIG_MK
 
+# If building icons (we need this to make the distfile) then we need to
+# convert the SVG icons to PNG.
+# We use cairosvg for this, but the binary name is based on python version
+printf "Finding cairosvg ... "
+for _CAIROSVG in cairosvg cairosvg-py3 cairosvg3.9 cairosvg3.8; do
+       CAIROSVG=$(_which "$_CAIROSVG")
+       if [ -x "$CAIROSVG" ]; then
+               break
+       fi
+done
+if [ -x "$CAIROSVG" ]; then
+       echo "$CAIROSVG"
+       echo "CAIROSVG= $CAIROSVG" >>$CONFIG_MK
+else
+       echo "not found!"
+fi
+
 _NOTIFY="$NOTIFY"
 _WITH_GTK="$WITH_GTK"
 if [ "$WITH_GTK" = yes -o -z "$WITH_GTK" ]; then
index e50812630bb0e7a30c5dc88fe1cfcbe257851461..52226127da96cb44bd6ce1f1d08215777fb0b2c1 100644 (file)
@@ -4,7 +4,7 @@ SIZEDIR?=       ${SIZE}x${SIZE}
 ICONDIR?=      ${PREFIX}/share/dhcpcd/icons
 IDIR=          ${ICONDIR}/hicolor/${SIZEDIR}/${CATEGORY}
 
-RSVG_CONVERT?= rsvg-convert
+CAIROSVG?=     cairosvg
 
 ICONS+=                ${SRCS:.svg=.png}
 CLEANFILES+=   ${SRCS:.svg=.png}
@@ -14,7 +14,7 @@ CLEANFILES+=  ${SRCS:.svg=.png}
 all: ${ICONS}
 
 .svg.png:
-       ${RSVG_CONVERT} -h ${SIZE} -w ${SIZE} $< >$@
+       ${CAIROSVG} -f png -H ${SIZE} -W ${SIZE} $< >$@
 
 _iconinstall: ${ICONS}
        ${INSTALL} -d ${DESTDIR}${IDIR}