generic-poky/meta/classes/gtk-icon-cache.bbclass
Laurentiu Palcu dec1e7fdce gtk-icon-cache: run the icon generation at rootfs time
This change will allow for the icon cache generation at rootfs time and
only once, at the end. So, even though there will be many packages
depending on gtk+, the icon cache generation will be done once.
Hopefully, this will lower the target's first boot time significantly
by using the power of the host machine to generate the cache.

(From OE-Core rev: 74e34f6828771095a25d2c2de89f468b33e359f7)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-06 12:31:09 +00:00

69 lines
2.1 KiB
Text

FILES_${PN} += "${datadir}/icons/hicolor"
DEPENDS += "${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} gtk+-native"
gtk_icon_cache_postinst() {
if [ "x$D" != "x" ]; then
if [ ! -f $INTERCEPT_DIR/update_icon_cache ]; then
cat << "EOF" > $INTERCEPT_DIR/update_icon_cache
#!/bin/sh
# update native pixbuf loaders
gdk-pixbuf-query-loaders --update-cache
for icondir in $D/usr/share/icons/*/ ; do
gtk-update-icon-cache -fqt $icondir
done
EOF
fi
exit 0
fi
# Update the pixbuf loaders in case they haven't been registered yet
GDK_PIXBUF_MODULEDIR=${libdir}/gdk-pixbuf-2.0/2.10.0/loaders gdk-pixbuf-query-loaders --update-cache
for icondir in /usr/share/icons/* ; do
if [ -d $icondir ] ; then
gtk-update-icon-cache -fqt $icondir
fi
done
}
gtk_icon_cache_postrm() {
for icondir in /usr/share/icons/* ; do
if [ -d $icondir ] ; then
gtk-update-icon-cache -qt $icondir
fi
done
}
python populate_packages_append () {
packages = d.getVar('PACKAGES', True).split()
pkgdest = d.getVar('PKGDEST', True)
for pkg in packages:
icon_dir = '%s/%s/%s/icons' % (pkgdest, pkg, d.getVar('datadir', True))
if not os.path.exists(icon_dir):
continue
bb.note("adding hicolor-icon-theme dependency to %s" % pkg)
rdepends = d.getVar('RDEPENDS_%s' % pkg, True)
rdepends = rdepends + ' ' + d.getVar('MLPREFIX') + "hicolor-icon-theme"
d.setVar('RDEPENDS_%s' % pkg, rdepends)
bb.note("adding gtk-icon-cache postinst and postrm scripts to %s" % pkg)
postinst = d.getVar('pkg_postinst_%s' % pkg, True) or d.getVar('pkg_postinst', True)
if not postinst:
postinst = '#!/bin/sh\n'
postinst += d.getVar('gtk_icon_cache_postinst', True)
d.setVar('pkg_postinst_%s' % pkg, postinst)
postrm = d.getVar('pkg_postrm_%s' % pkg, True) or d.getVar('pkg_postrm', True)
if not postrm:
postrm = '#!/bin/sh\n'
postrm += d.getVar('gtk_icon_cache_postrm', True)
d.setVar('pkg_postrm_%s' % pkg, postrm)
}