| Submitter | Ross Burton |
|---|---|
| Date | March 4, 2013, 12:52 p.m. |
| Message ID | <eefbfac657e1cae6e2eb915ad8e101caf1d05014.1362401323.git.ross.burton@intel.com> |
| Download | mbox | patch |
| Permalink | /patch/45475/ |
| State | New |
| Headers | show |
Comments
On Mon, 2013-03-04 at 12:52 +0000, Ross Burton wrote: > This recipe builds natively just the gtk-update-icon-cache binary that is > required to run the gtk-icon-cache.bbclass postinstall scripts. > > The advantage of doing this is it means running 400 less tasks which takes four > minutes on my machine, as the alternative is building GTK+ natively (and so > libX11, freetype, fontconfig...). > > Signed-off-by: Ross Burton <ross.burton@intel.com> > --- > .../gtk+/gtk-update-icon-cache-native_3.4.4.bb | 44 ++++++++++++++++++++ > 1 file changed, 44 insertions(+) > create mode 100644 meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb > > diff --git a/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb b/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb > new file mode 100644 > index 0000000..5941bbd > --- /dev/null > +++ b/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb > @@ -0,0 +1,44 @@ > +SUMMARY = "gtk-update-icon-cache built natively" > +DESCRIPTION = "Just gtk-update-icon-cache built from GTK+ natively, for on-host postinst script execution." > +SECTION = "libs" > + > +PROVIDES = "virtual/gtk-update-icon-cache-native" > + > +DEPENDS = "gdk-pixbuf-native" > + > +LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" > + > +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ > + file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ > + file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ > + file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1" > + > +SRC_URI = "http://download.gnome.org/sources/gtk+/3.4/gtk+-${PV}.tar.xz" > +SRC_URI[md5sum] = "1b2cf29502a6394e8d4b30f7f5bb9131" > +SRC_URI[sha256sum] = "f154e460075034da4c0ce89c320025dcd459da2a1fdf32d92a09522eaca242c7" > + > +S = "${WORKDIR}/gtk+-${PV}" > + > +inherit pkgconfig native > + > +PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native" > + > +do_configure() { > + # Quite ugly but defines enough to compile the tool. > + if ! test -f gtk/config.h; then > + echo "#define GETTEXT_PACKAGE \"gtk30\"" >> gtk/config.h > + echo "#define HAVE_UNISTD_H 1" >> gtk/config.h > + echo "#define HAVE_FTW_H 1" >> gtk/config.h > + > + fi > +} > + > +do_compile() { > + ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gdk-pixbuf-2.0) \ > + -o gtk-update-icon-cache ${S}/gtk/updateiconcache.c I saw failures when building locally for this, I think its down to linker order. Moving ${S}/gtk/updateiconcache.c before the pkg-config libs made it work... Cheers, Richard
Patch
diff --git a/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb b/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb new file mode 100644 index 0000000..5941bbd --- /dev/null +++ b/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb @@ -0,0 +1,44 @@ +SUMMARY = "gtk-update-icon-cache built natively" +DESCRIPTION = "Just gtk-update-icon-cache built from GTK+ natively, for on-host postinst script execution." +SECTION = "libs" + +PROVIDES = "virtual/gtk-update-icon-cache-native" + +DEPENDS = "gdk-pixbuf-native" + +LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ + file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ + file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ + file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1" + +SRC_URI = "http://download.gnome.org/sources/gtk+/3.4/gtk+-${PV}.tar.xz" +SRC_URI[md5sum] = "1b2cf29502a6394e8d4b30f7f5bb9131" +SRC_URI[sha256sum] = "f154e460075034da4c0ce89c320025dcd459da2a1fdf32d92a09522eaca242c7" + +S = "${WORKDIR}/gtk+-${PV}" + +inherit pkgconfig native + +PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native" + +do_configure() { + # Quite ugly but defines enough to compile the tool. + if ! test -f gtk/config.h; then + echo "#define GETTEXT_PACKAGE \"gtk30\"" >> gtk/config.h + echo "#define HAVE_UNISTD_H 1" >> gtk/config.h + echo "#define HAVE_FTW_H 1" >> gtk/config.h + + fi +} + +do_compile() { + ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gdk-pixbuf-2.0) \ + -o gtk-update-icon-cache ${S}/gtk/updateiconcache.c +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${B}/gtk-update-icon-cache ${D}${bindir} +}
This recipe builds natively just the gtk-update-icon-cache binary that is required to run the gtk-icon-cache.bbclass postinstall scripts. The advantage of doing this is it means running 400 less tasks which takes four minutes on my machine, as the alternative is building GTK+ natively (and so libX11, freetype, fontconfig...). Signed-off-by: Ross Burton <ross.burton@intel.com> --- .../gtk+/gtk-update-icon-cache-native_3.4.4.bb | 44 ++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb