Patchwork [1/4] gtk-update-icon-cache-native: add

login
register
mail settings
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

Ross Burton - March 4, 2013, 12:52 p.m.
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
Richard Purdie - March 5, 2013, 9:17 a.m.
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}
+}