diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2013-06-24 09:45:12 +0200 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2013-06-26 14:05:14 +0200 |
commit | 8473ba393a407c9e0061ef51da5a6353b595cb7b (patch) | |
tree | 6d3b0c2ebf3ab0d37983e9fc2c0c236971a50374 | |
parent | fd3af325d291edb32ad927454ccae643761f879f (diff) |
gdk-pixbuf: update icon cache on rootfs build time
-rw-r--r-- | recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bbappend | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bbappend b/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bbappend index 42a31fe..e3f90c0 100644 --- a/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bbappend +++ b/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bbappend @@ -1,5 +1,35 @@ +PRINC = "1" # build for x11, at least lxpanel needs this DEPENDS += "virtual/libx11" EXTRA_OECONF += "--with-x11" +# do the timeconsuming gdk-pixbuf-query-loaders on the build machine +# backport from http://cgit.openembedded.org/openembedded-core/commit/meta/recipes-gnome/gdk-pixbuf?id=5ba420bc0e282a1cbf000ce32034ad7ab15c01d5 +postinst_pixbufloader () { +if [ "x$D" != "x" ]; then +# Update the target's pixbuf loader's cache. Since the native binary will +# throw an error if the shared objects do not belong to the same ELF class, +# we trick the gdk-pixbuf-query-loaders into scanning the native shared +# objects and then we remove the NATIVE_ROOT prefix from the paths in +# loaders.cache. +gdk-pixbuf-query-loaders $(find $D/${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders \ + -name *.so | sed -e "s:$D:$NATIVE_ROOT:g") > \ + $D/${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders.cache || exit 1 + +sed -i -e "s:$NATIVE_ROOT:/:g" $D/${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders.cache +rm -f $D/${libdir}/gdk-pixbuf-2.0/${LIBV}/sed* +exit 0 +fi + +# Update the pixbuf loaders in case they haven't been registered yet +GDK_PIXBUF_MODULEDIR=${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders gdk-pixbuf-query-loaders --update-cache + +if [ -x ${bindir}/gtk-update-icon-cache ] && [ -d ${datadir}/icons ]; then + for icondir in /usr/share/icons/*; do + if [ -d ${icondir} ]; then + gtk-update-icon-cache -t -q ${icondir} + fi + done +fi +} |