gtk-immodules-cache.bbclass 2.6 KB

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