diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2017-08-13 16:32:28 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2017-08-13 16:32:28 +0200 |
commit | 0f67b3cc674377559e66c5a6729fd499049a992f (patch) | |
tree | db385afa84c09891e9a83c18b6e5436cf6e983ed /m4/appstream-xml.m4 | |
parent | f8ca421bdacee8851965a4b802ada1d2366bdbc1 (diff) | |
parent | 6cee6189adf46287667c35707325dd0820ea9f33 (diff) |
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'm4/appstream-xml.m4')
-rw-r--r-- | m4/appstream-xml.m4 | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/m4/appstream-xml.m4 b/m4/appstream-xml.m4 new file mode 100644 index 0000000..1472802 --- /dev/null +++ b/m4/appstream-xml.m4 @@ -0,0 +1,86 @@ +# appstream-xml.m4 +# +# serial 6 + +dnl APPSTREAM_XML +dnl Installs and validates AppData XML files. +dnl +dnl Call APPSTREAM_XML in configure.ac to check for the appstream-util tool. +dnl Add @APPSTREAM_XML_RULES@ to a Makefile.am to substitute the make rules. Add +dnl .appdata.xml files to appstream_XML in Makefile.am and they will be validated +dnl at make check time, if appstream-util is installed, as well as installed +dnl to the correct location automatically. Add --enable-appstream-util to +dnl DISTCHECK_CONFIGURE_FLAGS in Makefile.am to require valid AppData XML when +dnl doing a distcheck. +dnl +dnl Adding files to appstream_XML does not distribute them automatically. + +AC_DEFUN([APPSTREAM_XML], +[ + m4_pattern_allow([AM_V_GEN]) + AC_ARG_ENABLE([appstream-util], + [AS_HELP_STRING([--disable-appstream-util], + [Disable validating AppData XML files during check phase])]) + + AS_IF([test "x$enable_appstream_validate" != "xno"], + [AC_PATH_PROG([APPSTREAM_UTIL], [appstream-util]) + AS_IF([test "x$APPSTREAM_UTIL" = "x"], + [have_appstream_validate=no], + [have_appstream_validate=yes + AC_SUBST([APPSTREAM_UTIL])])], + [have_appstream_validate=no]) + + AS_IF([test "x$have_appstream_validate" != "xno"], + [appstream_validate=yes], + [appstream_validate=no + AS_IF([test "x$enable_appstream_validate" = "xyes"], + [AC_MSG_ERROR([AppData validation was requested but appstream-util was not found])])]) + + AC_SUBST([appstreamxmldir], [${datadir}/appdata]) + + APPSTREAM_XML_RULES=' +.PHONY : uninstall-appstream-xml install-appstream-xml clean-appstream-xml + +mostlyclean-am: clean-appstream-xml + +%.appdata.valid: %.appdata.xml + $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; \ + if test -n "$(APPSTREAM_UTIL)"; \ + then $(APPSTREAM_UTIL) --nonet validate $${d}$<; fi \ + && touch [$]@ + +check-am: $(appstream_XML:.appdata.xml=.appdata.valid) +uninstall-am: uninstall-appstream-xml +install-data-am: install-appstream-xml + +.SECONDARY: $(appstream_XML) + +install-appstream-xml: $(appstream_XML) + @$(NORMAL_INSTALL) + if test -n "$^"; then \ + test -z "$(appstreamxmldir)" || $(MKDIR_P) "$(DESTDIR)$(appstreamxmldir)"; \ + $(INSTALL_DATA) $^ "$(DESTDIR)$(appstreamxmldir)"; \ + fi + +uninstall-appstream-xml: + @$(NORMAL_UNINSTALL) + @list='\''$(appstream_XML)'\''; test -n "$(appstreamxmldir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '\''$(DESTDIR)$(appstreamxmldir)'\'' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(appstreamxmldir)" && rm -f $$files + +clean-appstream-xml: + rm -f $(appstream_XML:.appdata.xml=.appdata.valid) +' + _APPSTREAM_XML_SUBST(APPSTREAM_XML_RULES) +]) + +dnl _APPSTREAM_XML_SUBST(VARIABLE) +dnl Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +AC_DEFUN([_APPSTREAM_XML_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) |