aboutsummaryrefslogtreecommitdiffstats
path: root/meta-gnome/classes
diff options
context:
space:
mode:
authorAndreas Müller <schnitzeltony@gmail.com>2019-10-28 00:35:31 +0100
committerKhem Raj <raj.khem@gmail.com>2019-10-27 23:10:00 -0700
commit5cd17f68fcc4f5bd7807172eda4cf24c5f3e8aae (patch)
treed6dbfc9d8ef0d128cd0a2255e9fe7ca752d63abe /meta-gnome/classes
parent8f2a81bbfec19b5f56c6753afdf172241628d8c2 (diff)
downloadmeta-openembedded-contrib-5cd17f68fcc4f5bd7807172eda4cf24c5f3e8aae.tar.gz
gnome-help.bbclass: Handle gnome-help files with new distro feature 'helpfiles'
Now that we can build gnome help files, let our users decide what to do with them: if 'helpfiles' not in DISTRO_FEATURES delete all help contents during install else if PACKAGE_NO_HELP_SPLIT == 1 pack all help files to ${PN}-help else pack help files to ${PN}-help-<lingua> Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-gnome/classes')
-rw-r--r--meta-gnome/classes/gnome-help.bbclass69
1 files changed, 69 insertions, 0 deletions
diff --git a/meta-gnome/classes/gnome-help.bbclass b/meta-gnome/classes/gnome-help.bbclass
new file mode 100644
index 00000000000..967091ba454
--- /dev/null
+++ b/meta-gnome/classes/gnome-help.bbclass
@@ -0,0 +1,69 @@
+# Class to pack gnome help files or delete them during install
+# There are the following cases:
+#
+# if 'helpfiles' not in DISTRO_FEATURES
+# delete all help contants during install
+# else
+# if PACKAGE_NO_HELP_SPLIT == 1
+# pack all help files to ${PN}-help
+# else
+# pack all help files to ${PN}-help-<lingua>
+
+FILES_${PN}-help = "${datadir}/*/translations"
+
+# Dummy to get yelp build & PACKAGE_NO_HELP_SPLIT set 1
+PACKAGES_append = " ${PN}-help"
+FILES_${PN}-help = "${datadir}/help"
+RRECOMMENDS_${PN}-help = "${@bb.utils.contains('DISTRO_FEATURES','helpfiles','yelp','',d)}"
+
+do_install_append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES','helpfiles','false','true',d)}; then
+ rm -rf ${D}${datadir}/help/*
+ fi
+}
+
+python gnome_do_split_help() {
+ if bb.utils.contains('DISTRO_FEATURES', 'helpfiles', False, True, d):
+ return
+
+ if (d.getVar('PACKAGE_NO_HELP_SPLIT') == '1'):
+ # all help files go to ${
+ bb.debug(1, "package requested not splitting help-files")
+ return
+
+ packages = (d.getVar('PACKAGES') or "").split()
+ datadir = d.getVar('datadir')
+ dvar = d.getVar('PKGD')
+ pn = d.getVar('PN')
+
+ if pn + '-help' in packages:
+ packages.remove(pn + '-help')
+
+ helpdir = os.path.join(dvar + datadir, 'help')
+
+ if not cpath.isdir(helpdir):
+ bb.warn("No help files in this package - remove gnome-help from inherit?")
+ return
+
+ helps = os.listdir(helpdir)
+
+ summary = d.getVar('SUMMARY') or pn
+ description = d.getVar('DESCRIPTION') or ""
+ locale_section = d.getVar('LOCALE_SECTION')
+ mlprefix = d.getVar('MLPREFIX') or ""
+ for l in sorted(helps):
+ ln = legitimize_package_name(l)
+ pkg = pn + '-help-' + ln
+ packages.append(pkg)
+ d.setVar('FILES_' + pkg, os.path.join(datadir, 'help', l))
+ d.setVar('RRECOMMENDS_' + pkg, '%syelp' % mlprefix)
+ d.setVar('SUMMARY_' + pkg, '%s - %s help' % (summary, l))
+ d.setVar('DESCRIPTION_' + pkg, '%s This package contains language help files for the %s locale.' % (description, l))
+ if locale_section:
+ d.setVar('SECTION_' + pkg, locale_section)
+
+ d.setVar('PACKAGES', ' '.join(packages))
+}
+
+PACKAGESPLITFUNCS_prepend = "gnome_do_split_help "
+