xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-gnome/classes/gnome-help.bbclass (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# Class to pack gnome help files or delete them during install
2*4882a593Smuzhiyun# There are the following cases:
3*4882a593Smuzhiyun#
4*4882a593Smuzhiyun# if 'helpfiles' not in DISTRO_FEATURES
5*4882a593Smuzhiyun#     delete all help contants during install
6*4882a593Smuzhiyun# else
7*4882a593Smuzhiyun#   if PACKAGE_NO_HELP_SPLIT == 1
8*4882a593Smuzhiyun#       pack all help files to ${PN}-help
9*4882a593Smuzhiyun#   else
10*4882a593Smuzhiyun#       pack all help files to ${PN}-help-<lingua>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun# Dummy to get yelp build & PACKAGE_NO_HELP_SPLIT set 1
13*4882a593SmuzhiyunPACKAGES:append = " ${PN}-help"
14*4882a593SmuzhiyunFILES:${PN}-help = "${datadir}/help"
15*4882a593SmuzhiyunRRECOMMENDS:${PN}-help = "${@bb.utils.contains('DISTRO_FEATURES','helpfiles','yelp','',d)}"
16*4882a593Smuzhiyun
17*4882a593Smuzhiyundo_install:append() {
18*4882a593Smuzhiyun    if ${@bb.utils.contains('DISTRO_FEATURES','helpfiles','false','true',d)}; then
19*4882a593Smuzhiyun        rm -rf ${D}${datadir}/help/*
20*4882a593Smuzhiyun    fi
21*4882a593Smuzhiyun}
22*4882a593Smuzhiyun
23*4882a593Smuzhiyunpython gnome_do_split_help() {
24*4882a593Smuzhiyun    if bb.utils.contains('DISTRO_FEATURES', 'helpfiles', False, True, d):
25*4882a593Smuzhiyun        return
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun    if (d.getVar('PACKAGE_NO_HELP_SPLIT') == '1'):
28*4882a593Smuzhiyun        # all help files go to ${
29*4882a593Smuzhiyun        bb.debug(1, "package requested not splitting help-files")
30*4882a593Smuzhiyun        return
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun    packages = (d.getVar('PACKAGES') or "").split()
33*4882a593Smuzhiyun    datadir = d.getVar('datadir')
34*4882a593Smuzhiyun    dvar = d.getVar('PKGD')
35*4882a593Smuzhiyun    pn = d.getVar('PN')
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun    if pn + '-help' in packages:
38*4882a593Smuzhiyun        packages.remove(pn + '-help')
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun    helpdir = os.path.join(dvar + datadir, 'help')
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun    if not cpath.isdir(helpdir):
43*4882a593Smuzhiyun        bb.warn("No help files in this package - remove gnome-help from inherit?")
44*4882a593Smuzhiyun        return
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun    helps = os.listdir(helpdir)
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun    summary = d.getVar('SUMMARY') or pn
49*4882a593Smuzhiyun    description = d.getVar('DESCRIPTION') or ""
50*4882a593Smuzhiyun    locale_section = d.getVar('LOCALE_SECTION')
51*4882a593Smuzhiyun    mlprefix = d.getVar('MLPREFIX') or ""
52*4882a593Smuzhiyun    for l in sorted(helps):
53*4882a593Smuzhiyun        ln = legitimize_package_name(l)
54*4882a593Smuzhiyun        pkg = pn + '-help-' + ln
55*4882a593Smuzhiyun        packages.append(pkg)
56*4882a593Smuzhiyun        d.setVar('FILES:' + pkg, os.path.join(datadir, 'help', l))
57*4882a593Smuzhiyun        d.setVar('RRECOMMENDS:' + pkg, '%syelp' % mlprefix)
58*4882a593Smuzhiyun        d.setVar('SUMMARY:' + pkg, '%s - %s help' % (summary, l))
59*4882a593Smuzhiyun        d.setVar('DESCRIPTION:' + pkg, '%s  This package contains language help files for the %s locale.' % (description, l))
60*4882a593Smuzhiyun        if locale_section:
61*4882a593Smuzhiyun            d.setVar('SECTION:' + pkg, locale_section)
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun    d.setVar('PACKAGES', ' '.join(packages))
64*4882a593Smuzhiyun}
65*4882a593Smuzhiyun
66*4882a593SmuzhiyunPACKAGESPLITFUNCS:prepend = "gnome_do_split_help "
67*4882a593Smuzhiyun
68