From 563dec11a51f4c6517509642e335a1fd64cd4ec4 Mon Sep 17 00:00:00 2001 From: rbuj Date: Thu, 2 May 2019 20:51:09 +0200 Subject: [PATCH] Make inkscape and rsvg-convert optional TEST on Fedora: inkscape, librsvg2-tools package are not installed on system: The user can build, install and distribute the package: $ sudo dnf remove inkscape librsvg2-tools -y $ ./configure --prefix=/usr $ make $ sudo make install $ make distcheck logview/data/icons: Can not run build-png-icons target if inkscape package is not installed on system: $ make -C logview/data/icons clean-png-icons make: Entering directory '/home/robert/devel/mate-utils/logview/data/icons' rm -f hicolor_apps_16x16_mate-system-log.png hicolor_apps_22x22_mate-system-log.png hicolor_apps_32x32_mate-system-log.png hicolor_apps_48x48_mate-system-log.png hicolor_apps_256x256_mate-system-log.png make: Leaving directory '/home/robert/devel/mate-utils/logview/data/icons' $ make -C logview/data/icons build-png-icons make: Entering directory '/home/robert/devel/mate-utils/logview/data/icons' make: *** No rule to make target 'hicolor_apps_16x16_mate-system-log.png', needed by 'build-png-icons'. Stop. make: Leaving directory '/home/robert/devel/mate-utils/logview/data/icons' Can run build-png-icons target if inkscape package is installed on system: $ sudo dnf install inkscape -y $ ./configure --prefix=/usr $ make -C logview/data/icons build-png-icons make: Entering directory '/home/robert/devel/mate-utils/logview/data/icons' Background RRGGBBAA: ffffff00 Area 303:65:319:81 exported to 16 x 16 pixels (96 dpi) Bitmap saved as: hicolor_apps_16x16_mate-system-log.png Background RRGGBBAA: ffffff00 Area 303:101:325:123 exported to 22 x 22 pixels (96 dpi) Bitmap saved as: hicolor_apps_22x22_mate-system-log.png Background RRGGBBAA: ffffff00 Area 304:142:336:174 exported to 32 x 32 pixels (96 dpi) Bitmap saved as: hicolor_apps_32x32_mate-system-log.png Background RRGGBBAA: ffffff00 Area 296:202:344:250 exported to 48 x 48 pixels (96 dpi) Bitmap saved as: hicolor_apps_48x48_mate-system-log.png Background RRGGBBAA: ffffff00 Area 33:11:289:267 exported to 256 x 256 pixels (96 dpi) Bitmap saved as: hicolor_apps_256x256_mate-system-log.png make: Nothing to be done for 'build-png-icons'. make: Leaving directory '/home/robert/devel/mate-utils/logview/data/icons' baobab/pixmaps: Can not run build-png-icons target if librsvg2-tools package is not installed on system: $ make -C baobab/pixmaps clean-png-icons make: Entering directory '/home/robert/devel/mate-utils/baobab/pixmaps' rm -f hicolor_apps_16x16_mate-disk-usage-analyzer.png hicolor_apps_22x22_mate-disk-usage-analyzer.png hicolor_apps_32x32_mate-disk-usage-analyzer.png hicolor_apps_48x48_mate-disk-usage-analyzer.png hicolor_apps_128x128_mate-disk-usage-analyzer.png make: Leaving directory '/home/robert/devel/mate-utils/baobab/pixmaps' $ make -C baobab/pixmaps build-png-icons make: Entering directory '/home/robert/devel/mate-utils/baobab/pixmaps' make: *** No rule to make target 'hicolor_apps_16x16_mate-disk-usage-analyzer.png', needed by 'build-png-icons'. Stop. make: Leaving directory '/home/robert/devel/mate-utils/baobab/pixmaps' Can run build-png-icons target if librsvg2-tools package is installed on system: $ sudo dnf install -y librsvg2-tools $ ./configure --prefix=/usr $ make -C baobab/pixmaps build-png-icons make: Entering directory '/home/robert/devel/mate-utils/baobab/pixmaps' /usr/bin/rsvg-convert -w 16 -h 16 hicolor_apps_scalable_mate-disk-usage-analyzer.svg -o hicolor_apps_16x16_mate-disk-usage-analyzer.png /usr/bin/rsvg-convert -w 22 -h 22 hicolor_apps_scalable_mate-disk-usage-analyzer.svg -o hicolor_apps_22x22_mate-disk-usage-analyzer.png /usr/bin/rsvg-convert -w 32 -h 32 hicolor_apps_scalable_mate-disk-usage-analyzer.svg -o hicolor_apps_32x32_mate-disk-usage-analyzer.png /usr/bin/rsvg-convert -w 48 -h 48 hicolor_apps_scalable_mate-disk-usage-analyzer.svg -o hicolor_apps_48x48_mate-disk-usage-analyzer.png /usr/bin/rsvg-convert -w 128 -h 128 hicolor_apps_scalable_mate-disk-usage-analyzer.svg -o hicolor_apps_128x128_mate-disk-usage-analyzer.png make: Leaving directory '/home/robert/devel/mate-utils/baobab/pixmaps' Closes #223 --- baobab/pixmaps/Makefile.am | 6 ++++-- configure.ac | 8 ++------ logview/data/icons/Makefile.am | 31 ++++++++++++++++++++++++------- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/baobab/pixmaps/Makefile.am b/baobab/pixmaps/Makefile.am index f36e8bf3..6804bef9 100644 --- a/baobab/pixmaps/Makefile.am +++ b/baobab/pixmaps/Makefile.am @@ -11,8 +11,10 @@ public_icons = \ hicolor_apps_scalable_mate-disk-usage-analyzer.svg \ $(NULL) +if HAVE_RSVG_CONVERT hicolor_apps_%.png: hicolor_apps_scalable_mate-disk-usage-analyzer.svg $(RSVG_CONVERT) -w $(word 1, $(subst x, ,$(word 1,$(subst _, ,$*)))) -h $(word 2, $(subst x, ,$(word 1,$(subst _, ,$*)))) $^ -o $@ +endif EXTRA_DIST = \ $(public_icons) \ @@ -20,7 +22,7 @@ EXTRA_DIST = \ ############################################################################### -install-icons: $(public_icons) +install-icons: | $(public_icons) for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ @@ -57,7 +59,7 @@ update-icon-cache: fi .PHONY: build-png-icons clean-png-icons -build-png-icons: $(png_icons) +build-png-icons: | $(png_icons) clean-png-icons: rm -f $(png_icons) diff --git a/configure.ac b/configure.ac index d65e5b54..0907e194 100644 --- a/configure.ac +++ b/configure.ac @@ -31,13 +31,9 @@ AC_PATH_PROG(GLIB_MKENUMS, [glib-mkenums]) dnl ICONS: convert svg to png AC_PATH_PROG(RSVG_CONVERT, rsvg-convert) -if test x$RSVG_CONVERT = x ; then - AC_MSG_ERROR([could not locate rsvg-convert]) -fi +AM_CONDITIONAL([HAVE_RSVG_CONVERT], [test "x$RSVG_CONVERT" != x]) AC_PATH_PROG(INKSCAPE, inkscape) -if test x$INKSCAPE = x ; then - AC_MSG_ERROR([could not locate inkscape]) -fi +AM_CONDITIONAL([HAVE_INKSCAPE], [test "x$INKSCAPE" != x]) MATE_COMPILE_WARNINGS([yes]) diff --git a/logview/data/icons/Makefile.am b/logview/data/icons/Makefile.am index 9db44489..30fff904 100644 --- a/logview/data/icons/Makefile.am +++ b/logview/data/icons/Makefile.am @@ -17,20 +17,37 @@ public_icons = \ hicolor_apps_scalable_mate-system-log-symbolic.svg \ $(NULL) +if HAVE_INKSCAPE hicolor_apps_16x16_mate-system-log.png: logview.svg - $(INKSCAPE) -z $^ --export-area=303:65:319:81 -w=16 -h=16 -e=$@ + $(if $(wildcard $(INKSCAPE)), \ + $(info $(shell $(INKSCAPE) -z $^ --export-area=303:65:319:81 -w=16 -h=16 -e=$@)), \ + $(error could not locate inkscape) \ + ) hicolor_apps_22x22_mate-system-log.png: logview.svg - $(INKSCAPE) -z $^ --export-area=303:101:325:123 -w=22 -h=22 -e=$@ + $(if $(wildcard $(INKSCAPE)), \ + $(info $(shell $(INKSCAPE) -z $^ --export-area=303:101:325:123 -w=22 -h=22 -e=$@)), \ + $(error could not locate inkscape) \ + ) hicolor_apps_32x32_mate-system-log.png: logview.svg - $(INKSCAPE) -z $^ --export-area=304:142:336:174 -w=32 -h=32 -e=$@ + $(if $(wildcard $(INKSCAPE)), \ + $(info $(shell $(INKSCAPE) -z $^ --export-area=304:142:336:174 -w=32 -h=32 -e=$@)), \ + $(error could not locate inkscape) \ + ) hicolor_apps_48x48_mate-system-log.png: logview.svg - $(INKSCAPE) -z $^ --export-area=296:202:344:250 -w=48 -h=48 -e=$@ + $(if $(wildcard $(INKSCAPE)), \ + $(info $(shell $(INKSCAPE) -z $^ --export-area=296:202:344:250 -w=48 -h=48 -e=$@)), \ + $(error could not locate inkscape) \ + ) hicolor_apps_256x256_mate-system-log.png: logview.svg - $(INKSCAPE) -z $^ --export-area=33:11:289:267 -w=256 -h=256 -e=$@ + $(if $(wildcard $(INKSCAPE)), \ + $(info $(shell $(INKSCAPE) -z $^ --export-area=33:11:289:267 -w=256 -h=256 -e=$@)), \ + $(error could not locate inkscape) \ + ) +endif noinst_DATA = \ logview.svg \ @@ -43,7 +60,7 @@ EXTRA_DIST = \ ############################################################################### -install-icons: +install-icons: | $(public_icons) for icon in $(public_icons); do \ THEME=`echo $$icon | cut -d_ -f1`; \ CONTEXT=`echo $$icon | cut -d_ -f2`; \ @@ -80,7 +97,7 @@ update-icon-cache: fi .PHONY: build-png-icons clean-png-icons -build-png-icons: $(png_icons) +build-png-icons: | $(png_icons) clean-png-icons: rm -f $(png_icons)