1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
From c3a4a9122c1daa3e81da465c8827d687c269ead8 Mon Sep 17 00:00:00 2001
From: scx <scx.mail@gmail.com>
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" \
|