xref: /OK3568_Linux_fs/yocto/poky/meta/classes/gtk-immodules-cache.bbclass (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# This class will update the inputmethod module cache for virtual keyboards
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# Usage: Set GTKIMMODULES_PACKAGES to the packages that needs to update the inputmethod modules
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunPACKAGE_WRITE_DEPS += "qemu-native"
6*4882a593Smuzhiyun
7*4882a593Smuzhiyuninherit qemu
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunGTKIMMODULES_PACKAGES ?= "${PN}"
10*4882a593Smuzhiyun
11*4882a593Smuzhiyungtk_immodule_cache_postinst() {
12*4882a593Smuzhiyunif [ "x$D" != "x" ]; then
13*4882a593Smuzhiyun    $INTERCEPT_DIR/postinst_intercept update_gtk_immodules_cache ${PKG} \
14*4882a593Smuzhiyun            mlprefix=${MLPREFIX} \
15*4882a593Smuzhiyun            binprefix=${MLPREFIX} \
16*4882a593Smuzhiyun            libdir=${libdir} \
17*4882a593Smuzhiyun            libexecdir=${libexecdir} \
18*4882a593Smuzhiyun            base_libdir=${base_libdir} \
19*4882a593Smuzhiyun            bindir=${bindir}
20*4882a593Smuzhiyunelse
21*4882a593Smuzhiyun    if [ ! -z `which gtk-query-immodules-2.0` ]; then
22*4882a593Smuzhiyun        gtk-query-immodules-2.0 > ${libdir}/gtk-2.0/2.10.0/immodules.cache
23*4882a593Smuzhiyun    fi
24*4882a593Smuzhiyun    if [ ! -z `which gtk-query-immodules-3.0` ]; then
25*4882a593Smuzhiyun        mkdir -p ${libdir}/gtk-3.0/3.0.0
26*4882a593Smuzhiyun        gtk-query-immodules-3.0 > ${libdir}/gtk-3.0/3.0.0/immodules.cache
27*4882a593Smuzhiyun    fi
28*4882a593Smuzhiyunfi
29*4882a593Smuzhiyun}
30*4882a593Smuzhiyun
31*4882a593Smuzhiyungtk_immodule_cache_postrm() {
32*4882a593Smuzhiyunif [ "x$D" != "x" ]; then
33*4882a593Smuzhiyun    $INTERCEPT_DIR/postinst_intercept update_gtk_immodules_cache ${PKG} \
34*4882a593Smuzhiyun            mlprefix=${MLPREFIX} \
35*4882a593Smuzhiyun            binprefix=${MLPREFIX} \
36*4882a593Smuzhiyun            libdir=${libdir} \
37*4882a593Smuzhiyun            libexecdir=${libexecdir} \
38*4882a593Smuzhiyun            base_libdir=${base_libdir} \
39*4882a593Smuzhiyun            bindir=${bindir}
40*4882a593Smuzhiyunelse
41*4882a593Smuzhiyun    if [ ! -z `which gtk-query-immodules-2.0` ]; then
42*4882a593Smuzhiyun        gtk-query-immodules-2.0 > ${libdir}/gtk-2.0/2.10.0/immodules.cache
43*4882a593Smuzhiyun    fi
44*4882a593Smuzhiyun    if [ ! -z `which gtk-query-immodules-3.0` ]; then
45*4882a593Smuzhiyun        gtk-query-immodules-3.0 > ${libdir}/gtk-3.0/3.0.0/immodules.cache
46*4882a593Smuzhiyun    fi
47*4882a593Smuzhiyunfi
48*4882a593Smuzhiyun}
49*4882a593Smuzhiyun
50*4882a593Smuzhiyunpython populate_packages:append () {
51*4882a593Smuzhiyun    gtkimmodules_pkgs = d.getVar('GTKIMMODULES_PACKAGES').split()
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun    for pkg in gtkimmodules_pkgs:
54*4882a593Smuzhiyun            bb.note("adding gtk-immodule-cache postinst and postrm scripts to %s" % pkg)
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun            postinst = d.getVar('pkg_postinst:%s' % pkg)
57*4882a593Smuzhiyun            if not postinst:
58*4882a593Smuzhiyun                postinst = '#!/bin/sh\n'
59*4882a593Smuzhiyun            postinst += d.getVar('gtk_immodule_cache_postinst')
60*4882a593Smuzhiyun            d.setVar('pkg_postinst:%s' % pkg, postinst)
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun            postrm = d.getVar('pkg_postrm:%s' % pkg)
63*4882a593Smuzhiyun            if not postrm:
64*4882a593Smuzhiyun                postrm = '#!/bin/sh\n'
65*4882a593Smuzhiyun            postrm += d.getVar('gtk_immodule_cache_postrm')
66*4882a593Smuzhiyun            d.setVar('pkg_postrm:%s' % pkg, postrm)
67*4882a593Smuzhiyun}
68*4882a593Smuzhiyun
69*4882a593Smuzhiyunpython __anonymous() {
70*4882a593Smuzhiyun    if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
71*4882a593Smuzhiyun        gtkimmodules_check = d.getVar('GTKIMMODULES_PACKAGES', False)
72*4882a593Smuzhiyun        if not gtkimmodules_check:
73*4882a593Smuzhiyun            bb_filename = d.getVar('FILE', False)
74*4882a593Smuzhiyun            bb.fatal("ERROR: %s inherits gtk-immodules-cache but doesn't set GTKIMMODULES_PACKAGES" % bb_filename)
75*4882a593Smuzhiyun}
76*4882a593Smuzhiyun
77