From c3a4a9122c1daa3e81da465c8827d687c269ead8 Mon Sep 17 00:00:00 2001 From: scx Date: Sun, 8 Sep 2019 06:02:02 +0200 Subject: [PATCH] Integrate AppData file with build system --- Makefile.inc.in | 1 + configure.ac | 8 ++++++++ packages/desktop/Makefile | 11 +++++++++++ po/make_pot.sh | 4 ++++ 4 files changed, 24 insertions(+) diff --git a/Makefile.inc.in b/Makefile.inc.in index a8c0e0c48..7a994bb8b 100644 --- a/Makefile.inc.in +++ b/Makefile.inc.in @@ -54,6 +54,7 @@ P_BINDIR = @bindir@ P_DATAROOT = @datarootdir@ P_LOCALE = @localedir@ +P_APPDATA = @P_APPDATA@ P_DESKTOP = @P_DESKTOP@ P_ICON = @P_ICON@ P_DATA = $(P_DATAROOT)/aegisub/ diff --git a/configure.ac b/configure.ac index 58dc23f8d..930ee1489 100644 --- a/configure.ac +++ b/configure.ac @@ -54,6 +54,13 @@ AEGISUB_CATALOG="aegisub" AC_SUBST(AEGISUB_CATALOG) AC_DEFINE_UNQUOTED([AEGISUB_CATALOG], ["${AEGISUB_CATALOG}"], [Name of the Aegisub gettext catalog]) +# Handle location of appdata files: https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#spec-component-location +AC_ARG_WITH(appdata-dir, + AS_HELP_STRING([--with-appdata-dir=PATH],[appdata file locations [PREFIX/share/metainfo]])) + +P_APPDATA=${with_appdata_dir:-$datarootdir/metainfo} +AC_SUBST(P_APPDATA) + # Handle location of desktop files: http://freedesktop.org/wiki/Specifications/desktop-entry-spec AC_ARG_WITH(desktop-dir, AS_HELP_STRING([--with-desktop-dir=PATH],[desktop file locations [PREFIX/share/applications]])) @@ -564,6 +571,7 @@ DEFAULT_PLAYER_AUDIO=${DEFAULT_PLAYER_AUDIO:-NONE} # Files that need substitution. AC_CONFIG_FILES([ packages/desktop/aegisub.desktop.template +packages/desktop/aegisub.appdata.xml.template src/libresrc/default_config_platform.json tools/osx-bundle.sed Makefile.inc diff --git a/packages/desktop/Makefile b/packages/desktop/Makefile index 47a21a63a..b41a91569 100644 --- a/packages/desktop/Makefile +++ b/packages/desktop/Makefile @@ -10,15 +10,26 @@ DESKTOP_FILE_INSTALLED = $(DESTDIR)$(P_DESKTOP)/$(notdir $(DESKTOP_FILE)) DISTCLEANFILES += $(DESKTOP_FILE) +APPDATA_FILE := $(d)aegisub.appdata.xml +APPDATA_FILE_PO := $(d)../../po +APPDATA_FILE_INSTALLED = $(DESTDIR)$(P_APPDATA)/$(notdir $(APPDATA_FILE)) + +DISTCLEANFILES += $(APPDATA_FILE) + %.desktop: %.desktop.template $(DESKTOP_FILE_PO) intltool-merge --quiet --desktop-style $(DESKTOP_FILE_PO) $< $@ +%.appdata.xml: %.appdata.xml.template $(APPDATA_FILE_PO) + intltool-merge --quiet --xml-style $(APPDATA_FILE_PO) $< $@ + $(ICONS_INSTALLED)png: $(d)%.png ; $(MKDIR_INSTALL) $(ICONS_INSTALLED)svg: $(d)%.svg ; $(MKDIR_INSTALL) $(DESKTOP_FILE_INSTALLED): $(DESKTOP_FILE) ; $(MKDIR_INSTALL) +$(APPDATA_FILE_INSTALLED): $(APPDATA_FILE) ; $(MKDIR_INSTALL) ifneq (yes, $(BUILD_DARWIN)) install: \ + $(APPDATA_FILE_INSTALLED) \ $(DESKTOP_FILE_INSTALLED) \ $(patsubst %.png, $(ICONS_INSTALLED)png, $(patsubst %.svg, $(ICONS_INSTALLED)svg, $(notdir $(ICONS)))) endif diff --git a/po/make_pot.sh b/po/make_pot.sh index e05252f28..cea125f78 100755 --- a/po/make_pot.sh +++ b/po/make_pot.sh @@ -46,6 +46,10 @@ do | maybe_append done +for i in 'name' 'summary' 'p' 'li' 'caption'; do + xmlstarlet sel -t -v "//_$i" ../packages/desktop/aegisub.appdata.xml.template.in | jq -R . +done | nl -v0 -w1 -s'|' | sed -re 's/^/aegisub.appdata.xml|/' | maybe_append + grep '^_[A-Za-z0-9]*=.*' ../packages/win_installer/fragment_strings.iss.in | while read line do echo "$line" \