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