1*4882a593SmuzhiyunFILES:${PN} += "${datadir}/icons/hicolor" 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunGTKIC_VERSION ??= '3' 4*4882a593Smuzhiyun 5*4882a593SmuzhiyunGTKPN = "${@ 'gtk4' if d.getVar('GTKIC_VERSION') == '4' else 'gtk+3' }" 6*4882a593SmuzhiyunGTKIC_CMD = "${@ 'gtk4-update-icon-cache' if d.getVar('GTKIC_VERSION') == '4' else 'gtk-update-icon-cache-3.0' }" 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun#gtk+3/gtk4 require GTK3DISTROFEATURES, DEPENDS on it make all the 9*4882a593Smuzhiyun#recipes inherit this class require GTK3DISTROFEATURES 10*4882a593Smuzhiyuninherit features_check 11*4882a593SmuzhiyunANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunDEPENDS +=" ${@ '' if d.getVar('BPN') == 'hicolor-icon-theme' else 'hicolor-icon-theme' } \ 14*4882a593Smuzhiyun ${@ '' if d.getVar('BPN') == 'gdk-pixbuf' else 'gdk-pixbuf' } \ 15*4882a593Smuzhiyun ${@ '' if d.getVar('BPN') == d.getVar('GTKPN') else d.getVar('GTKPN') } \ 16*4882a593Smuzhiyun ${GTKPN}-native \ 17*4882a593Smuzhiyun" 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunPACKAGE_WRITE_DEPS += "${GTKPN}-native gdk-pixbuf-native" 20*4882a593Smuzhiyun 21*4882a593Smuzhiyungtk_icon_cache_postinst() { 22*4882a593Smuzhiyunif [ "x$D" != "x" ]; then 23*4882a593Smuzhiyun $INTERCEPT_DIR/postinst_intercept update_gtk_icon_cache ${PKG} \ 24*4882a593Smuzhiyun mlprefix=${MLPREFIX} \ 25*4882a593Smuzhiyun libdir_native=${libdir_native} 26*4882a593Smuzhiyunelse 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun # Update the pixbuf loaders in case they haven't been registered yet 29*4882a593Smuzhiyun ${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun for icondir in /usr/share/icons/* ; do 32*4882a593Smuzhiyun if [ -d $icondir ] ; then 33*4882a593Smuzhiyun ${GTKIC_CMD} -fqt $icondir 34*4882a593Smuzhiyun fi 35*4882a593Smuzhiyun done 36*4882a593Smuzhiyunfi 37*4882a593Smuzhiyun} 38*4882a593Smuzhiyun 39*4882a593Smuzhiyungtk_icon_cache_postrm() { 40*4882a593Smuzhiyunif [ "x$D" != "x" ]; then 41*4882a593Smuzhiyun $INTERCEPT_DIR/postinst_intercept update_gtk_icon_cache ${PKG} \ 42*4882a593Smuzhiyun mlprefix=${MLPREFIX} \ 43*4882a593Smuzhiyun libdir=${libdir} 44*4882a593Smuzhiyunelse 45*4882a593Smuzhiyun for icondir in /usr/share/icons/* ; do 46*4882a593Smuzhiyun if [ -d $icondir ] ; then 47*4882a593Smuzhiyun ${GTKIC_CMD} -qt $icondir 48*4882a593Smuzhiyun fi 49*4882a593Smuzhiyun done 50*4882a593Smuzhiyunfi 51*4882a593Smuzhiyun} 52*4882a593Smuzhiyun 53*4882a593Smuzhiyunpython populate_packages:append () { 54*4882a593Smuzhiyun packages = d.getVar('PACKAGES').split() 55*4882a593Smuzhiyun pkgdest = d.getVar('PKGDEST') 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun for pkg in packages: 58*4882a593Smuzhiyun icon_dir = '%s/%s/%s/icons' % (pkgdest, pkg, d.getVar('datadir')) 59*4882a593Smuzhiyun if not os.path.exists(icon_dir): 60*4882a593Smuzhiyun continue 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun bb.note("adding hicolor-icon-theme dependency to %s" % pkg) 63*4882a593Smuzhiyun rdepends = ' ' + d.getVar('MLPREFIX', False) + "hicolor-icon-theme" 64*4882a593Smuzhiyun d.appendVar('RDEPENDS:%s' % pkg, rdepends) 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun #gtk_icon_cache_postinst depend on gdk-pixbuf and gtk+3/gtk4 67*4882a593Smuzhiyun bb.note("adding gdk-pixbuf dependency to %s" % pkg) 68*4882a593Smuzhiyun rdepends = ' ' + d.getVar('MLPREFIX', False) + "gdk-pixbuf" 69*4882a593Smuzhiyun d.appendVar('RDEPENDS:%s' % pkg, rdepends) 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun bb.note("adding %s dependency to %s" % (d.getVar('GTKPN'), pkg)) 72*4882a593Smuzhiyun rdepends = ' ' + d.getVar('MLPREFIX', False) + d.getVar('GTKPN') 73*4882a593Smuzhiyun d.appendVar('RDEPENDS:%s' % pkg, rdepends) 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun bb.note("adding gtk-icon-cache postinst and postrm scripts to %s" % pkg) 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun postinst = d.getVar('pkg_postinst:%s' % pkg) 78*4882a593Smuzhiyun if not postinst: 79*4882a593Smuzhiyun postinst = '#!/bin/sh\n' 80*4882a593Smuzhiyun postinst += d.getVar('gtk_icon_cache_postinst') 81*4882a593Smuzhiyun d.setVar('pkg_postinst:%s' % pkg, postinst) 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun postrm = d.getVar('pkg_postrm:%s' % pkg) 84*4882a593Smuzhiyun if not postrm: 85*4882a593Smuzhiyun postrm = '#!/bin/sh\n' 86*4882a593Smuzhiyun postrm += d.getVar('gtk_icon_cache_postrm') 87*4882a593Smuzhiyun d.setVar('pkg_postrm:%s' % pkg, postrm) 88*4882a593Smuzhiyun} 89*4882a593Smuzhiyun 90