[oe] [PATCH 2/5] clutter: clean builds for clutter 1.0

Andreas Mueller schnitzeltony at gmx.de
Fri Sep 3 00:48:15 UTC 2010


* all 0.9 recipes (are actually 1.0rc) & files referenced were removed
* all 0.8 recipes were renamed to clutter*-0.8 to ensure parallel
  installation with later versions
* clutter-common.inc as container for helpers was created (also from
  clutter-fpu.inc)
* clutter-1.0_1.0.10.bb was renamed to clutter_1.0.10.bb
* clutter-gst_1.2.0.bb introduced the first ever buildable in GLES
  environment without further effords
* clutter-gtk_0.10.2.bb is the latest version which supports clutter 1.0.x
  (later ones complain on configure for clutter 1.2.x)
* clutter* examples / tests are build properly and packed in extra
  packages. For clutter-interactive tests menu entries (graphics) are added /
  test-conformance-run runs all conformance tests (crashing tests do not abort)

Signed-off-by: Andreas Mueller <schnitzeltony at gmx.de>
---
 .../clutter/clutter-0.8/enable-tests-r2990.patch   |   50 ++++++++++++
 recipes/clutter/clutter-0.8_git.bb                 |   15 ++++
 recipes/clutter/clutter-0.9_git.bb                 |   23 ------
 recipes/clutter/clutter-1.0_1.0.10.bb              |   22 -----
 recipes/clutter/clutter-box2d.inc                  |   21 ++++--
 .../clutter-box2d/example-data-location.patch      |   11 +++
 recipes/clutter/clutter-box2d_0.10.0.bb            |    3 +
 recipes/clutter/clutter-common.inc                 |   28 +++++++
 recipes/clutter/clutter-fpu.inc                    |    6 --
 recipes/clutter/clutter-gst-0.9_git.bb             |   13 ---
 recipes/clutter/clutter-gst.inc                    |   40 ++++++++--
 recipes/clutter/clutter-gst_1.2.0.bb               |    9 ++
 .../clutter-gtk-0.10.2/gtk-deprecated.patch        |   29 +++++++
 recipes/clutter/clutter-gtk.inc                    |   26 +++++-
 recipes/clutter/clutter-gtk_0.10.2.bb              |   13 +++
 recipes/clutter/clutter-gtk_git.bb                 |   11 ---
 recipes/clutter/clutter.inc                        |   82 ++++++++++++++++----
 recipes/clutter/clutter/enable-tests-r2990.patch   |   50 ------------
 recipes/clutter/clutter/sample.desktop             |    9 ++
 recipes/clutter/clutter/test-conformance-run       |    8 ++
 recipes/clutter/clutter_0.8+git.bb                 |   15 ----
 recipes/clutter/clutter_1.0.10.bb                  |   29 +++++++
 recipes/clutter/files/enable_tests.patch           |   32 --------
 23 files changed, 338 insertions(+), 207 deletions(-)
 create mode 100644 recipes/clutter/clutter-0.8/enable-tests-r2990.patch
 create mode 100644 recipes/clutter/clutter-0.8_git.bb
 delete mode 100644 recipes/clutter/clutter-0.9_git.bb
 delete mode 100644 recipes/clutter/clutter-1.0_1.0.10.bb
 create mode 100644 recipes/clutter/clutter-box2d/example-data-location.patch
 create mode 100644 recipes/clutter/clutter-common.inc
 delete mode 100644 recipes/clutter/clutter-fpu.inc
 delete mode 100644 recipes/clutter/clutter-gst-0.9_git.bb
 create mode 100644 recipes/clutter/clutter-gst_1.2.0.bb
 create mode 100644 recipes/clutter/clutter-gtk-0.10.2/gtk-deprecated.patch
 create mode 100644 recipes/clutter/clutter-gtk_0.10.2.bb
 delete mode 100644 recipes/clutter/clutter-gtk_git.bb
 delete mode 100644 recipes/clutter/clutter/enable-tests-r2990.patch
 create mode 100644 recipes/clutter/clutter/sample.desktop
 create mode 100755 recipes/clutter/clutter/test-conformance-run
 delete mode 100644 recipes/clutter/clutter_0.8+git.bb
 create mode 100644 recipes/clutter/clutter_1.0.10.bb
 delete mode 100644 recipes/clutter/files/enable_tests.patch

diff --git a/recipes/clutter/clutter-0.8/enable-tests-r2990.patch b/recipes/clutter/clutter-0.8/enable-tests-r2990.patch
new file mode 100644
index 0000000..4f449b1
--- /dev/null
+++ b/recipes/clutter/clutter-0.8/enable-tests-r2990.patch
@@ -0,0 +1,50 @@
+---
+ tests/Makefile.am   |    7 ++++++-
+ tests/test-actors.c |    2 +-
+ tests/test-text.c   |    2 +-
+ 3 files changed, 8 insertions(+), 3 deletions(-)
+
+Index: clutter/tests/Makefile.am
+===================================================================
+--- clutter.orig/tests/Makefile.am	2008-06-26 16:46:26.000000000 +0100
++++ clutter/tests/Makefile.am	2008-06-26 16:46:50.000000000 +0100
+@@ -1,4 +1,4 @@
+-noinst_PROGRAMS = test-textures test-events test-offscreen test-scale \
++bin_PROGRAMS = test-textures test-events test-offscreen test-scale \
+                   test-actors test-behave test-text test-entry test-project \
+ 		  test-perspective test-rotate test-depth \
+ 		  test-threads test-timeline test-timeline-dup-frames \
+@@ -17,8 +17,8 @@
+ 		  test-invariants
+ 
+ if X11_TESTS
+-noinst_PROGRAMS += test-pixmap
+-noinst_PROGRAMS += test-devices
++bin_PROGRAMS += test-pixmap
++bin_PROGRAMS += test-devices
+ endif
+ 
+ INCLUDES = -I$(top_srcdir)/ -I$(top_srcdir)/clutter -I$(top_builddir)/clutter
+@@ -73,4 +73,9 @@
+ test_invariants_SOURCES           = test-invariants.c
+ test_devices_SOURCES              = test-devices.c
+ 
++test_textdir           = $(pkgdatadir)
++test_text_DATA         = test-text.c
++test_actorsdir         = $(pkgdatadir)
++test_actors_DATA       = redhand.png
++
+ EXTRA_DIST = redhand.png test-script.json
+Index: clutter/tests/test-actors.c
+===================================================================
+--- clutter.orig/tests/test-actors.c	2008-06-26 16:46:26.000000000 +0100
++++ clutter/tests/test-actors.c	2008-06-26 16:46:31.000000000 +0100
+@@ -195,7 +195,7 @@
+       /* Create a texture from file, then clone in to same resources */
+       if (i == 0)
+ 	{
+-	  if ((oh->hand[i] = clutter_texture_new_from_file ("redhand.png",
++	  if ((oh->hand[i] = clutter_texture_new_from_file ("/usr/share/clutter/redhand.png",
+ 							    &error)) == NULL)
+ 	    {
+ 	      g_error ("image load failed: %s", error->message);
diff --git a/recipes/clutter/clutter-0.8_git.bb b/recipes/clutter/clutter-0.8_git.bb
new file mode 100644
index 0000000..692154d
--- /dev/null
+++ b/recipes/clutter/clutter-0.8_git.bb
@@ -0,0 +1,15 @@
+require clutter.inc
+
+CLUTTER_REV = "af16378899699376fe7e84c7c11eb3bb5c4668cd"
+
+PV = "0.8.8"
+PR = "${INC_PR}.0"
+PR_append = "+gitr${CLUTTER_REV}"
+
+SRC_URI = "git://git.clutter-project.org/clutter.git;protocol=git;branch=clutter-0-8;rev=${CLUTTER_REV} \
+           file://enable-tests-r2990.patch"
+
+S = "${WORKDIR}/git"
+
+
+ARM_INSTRUCTION_SET = "arm"
diff --git a/recipes/clutter/clutter-0.9_git.bb b/recipes/clutter/clutter-0.9_git.bb
deleted file mode 100644
index 5bbd8a8..0000000
--- a/recipes/clutter/clutter-0.9_git.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-require clutter.inc
-
-SRCREV = "13e055a351f83c56b895b131566a6e842d24ed2a"
-
-PV = "1.1.0"
-PR = "${INC_PR}.0"
-PR_append = "+git${SRCREV}"
-
-SRC_URI = "git://git.clutter-project.org/clutter.git;protocol=git \
-           file://enable_tests.patch "
-S = "${WORKDIR}/git"
-
-BASE_CONF += "--disable-introspection"
-
-PARALLEL_MAKE = ""
-
-do_compile_prepend() {
-	for i in $(find ${S} -name Makefile) ; do
-		sed -i -e s:-Werror::g $i
-	done
-    ( cd clutter/cogl/gles ; for i in *.glsl ; do sh stringify.sh -h $i ; done )
-}
-
diff --git a/recipes/clutter/clutter-1.0_1.0.10.bb b/recipes/clutter/clutter-1.0_1.0.10.bb
deleted file mode 100644
index 93fb893..0000000
--- a/recipes/clutter/clutter-1.0_1.0.10.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-require clutter.inc
-
-PR = "${INC_PR}.0"
-
-SRC_URI = "http://source.clutter-project.org/sources/clutter/1.0/clutter-${PV}.tar.bz2 \
-"
-SRC_URI[md5sum] = "bf48e85291cba33f3f149f4eefe759f0"
-SRC_URI[sha256sum] = "6fb98dc4d16a3a98be734cf0a6cc4f8d8179800603c3e41011c414eeaf1f456b"
-
-S = "${WORKDIR}/clutter-${PV}"
-
-BASE_CONF += "--disable-introspection"
-
-PARALLEL_MAKE = ""
-
-do_compile_prepend() {
-	for i in $(find ${S} -name Makefile) ; do
-		sed -i -e s:-Werror::g $i
-	done
-    ( cd clutter/cogl/gles ; for i in *.glsl ; do sh stringify.sh -h $i ; done )
-}
-
diff --git a/recipes/clutter/clutter-box2d.inc b/recipes/clutter/clutter-box2d.inc
index 2b39916..7541335 100644
--- a/recipes/clutter/clutter-box2d.inc
+++ b/recipes/clutter/clutter-box2d.inc
@@ -1,17 +1,26 @@
-DESCRIPTION = "Clutter Box2D"
+DESCRIPTION = "Clutter Box2D physics engine integration"
 HOMEPAGE = "http://www.clutter-project.org/"
-LICENSE = "GPLv2"
+LICENSE = "LGPLv2.1"
 
-DEPENDS = "clutter-1.0"
+DEPENDS = "clutter"
+
+INC_PR = "r1"
 
 # The main clutter lib is machine specific so we need to be too
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 inherit autotools pkgconfig gtk-doc
 
-EXTRA_OECONF += "--disable-introspection"
+require clutter-common.inc
+
+do_configure_prepend() {
+	make_all_execs_installable
+}
 
 do_install_append () {
-	install -d ${D}${bindir}
-	install ${S}/examples/.libs/blockbox ${D}${bindir}
+	install -m 755 -d ${D}${datadir}/${PN}-examples
+	install -m 755 ${S}/examples/redhand.png ${D}${datadir}/${PN}-examples
 }
+
+PACKAGES =+ "${PN}-examples"
+FILES_${PN}-examples = "${bindir}/* ${datadir}/${PN}-examples"
diff --git a/recipes/clutter/clutter-box2d/example-data-location.patch b/recipes/clutter/clutter-box2d/example-data-location.patch
new file mode 100644
index 0000000..3aaab54
--- /dev/null
+++ b/recipes/clutter/clutter-box2d/example-data-location.patch
@@ -0,0 +1,11 @@
+--- a/examples/blockbox.h.old	2010-07-20 15:05:30.000000000 +0200
++++ b/examples/blockbox.h	2010-08-23 18:20:03.000000000 +0200
+@@ -8,7 +8,7 @@
+ #include "scenes.h"
+ #include "util.h"
+ 
+-#define ASSETS_DIR "./"
++#define ASSETS_DIR "/usr/share/clutter-box2d-examples/"
+ extern gboolean simulating;
+ 
+ #endif
diff --git a/recipes/clutter/clutter-box2d_0.10.0.bb b/recipes/clutter/clutter-box2d_0.10.0.bb
index 5f3a063..28dfeb3 100644
--- a/recipes/clutter/clutter-box2d_0.10.0.bb
+++ b/recipes/clutter/clutter-box2d_0.10.0.bb
@@ -1,7 +1,10 @@
 require clutter-box2d.inc
 
+PR = "${INC_PR}.0"
+
 SRC_URI = "http://source.clutter-project.org/sources/clutter-box2d/0.10/clutter-box2d-${PV}.tar.bz2 \
            file://introspection.diff \
+           file://example-data-location.patch \
 "
 
 SRC_URI[md5sum] = "51618976ca6a5d536c4eac5f0e120d9d"
diff --git a/recipes/clutter/clutter-common.inc b/recipes/clutter/clutter-common.inc
new file mode 100644
index 0000000..65b490a
--- /dev/null
+++ b/recipes/clutter/clutter-common.inc
@@ -0,0 +1,28 @@
+# common functions for all clutter-libraries
+
+# all .debug stuff goes to clutter*-dbg
+FILES_${PN}-dbg += "${bindir}/.debug"
+
+# helper for (git)-recipes which do not have gtk-doc.make
+copy_gtk_doc_make() {
+	if [ -e ${WORKDIR}/gtk-doc.make ] ; then
+		cp ${WORKDIR}/gtk-doc.make ${S}/gtk-doc.make
+	else
+		touch ${S}/gtk-doc.make
+	fi
+}
+
+# clutter packs assume building and target are the same
+# for us they are definitely not
+make_all_execs_installable() {
+	for i in $(find ${S} -name Makefile.am) ; do
+		sed -i -e s:noinst_PROGRAMS:bin_PROGRAMS:g $i
+	done
+}
+
+#check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
+def get_clutter_fpu_setting(bb, d):
+	if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
+		return "--without-fpu"
+	return ""
+
diff --git a/recipes/clutter/clutter-fpu.inc b/recipes/clutter/clutter-fpu.inc
deleted file mode 100644
index 21a16fe..0000000
--- a/recipes/clutter/clutter-fpu.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-
-def get_clutter_fpu_setting(bb, d):
-	if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
-		return "--without-fpu"
-	return ""
-
diff --git a/recipes/clutter/clutter-gst-0.9_git.bb b/recipes/clutter/clutter-gst-0.9_git.bb
deleted file mode 100644
index 3bf7d48..0000000
--- a/recipes/clutter/clutter-gst-0.9_git.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require clutter-gst.inc
-
-DEPENDS = "clutter-0.9 gstreamer gst-plugins-base"
-
-SRCREV = "379b63b013af463210e54470693aedfa9009f4dc"
-PV = "0.9.0"
-PR = "r4"
-PR_append = "+git${SRCREV}"
-
-SRC_URI = "git://git.clutter-project.org/clutter-gst.git;protocol=git \
-           file://gtk-doc.make"
-
-S = "${WORKDIR}/git"
diff --git a/recipes/clutter/clutter-gst.inc b/recipes/clutter/clutter-gst.inc
index 8fa30b4..b25f31e 100644
--- a/recipes/clutter/clutter-gst.inc
+++ b/recipes/clutter/clutter-gst.inc
@@ -1,19 +1,41 @@
-DESCRIPTION = "Clutter GStreamer"
+DESCRIPTION = "Clutter GStreamer integration library"
 HOMEPAGE = "http://www.clutter-project.org/"
-LICENSE = "LGPL"
+LICENSE = "LGPLv2.1"
+
+INC_PR = "r1"
 
 DEPENDS = "clutter gstreamer gst-plugins-base"
 
-PACKAGES =+ "${PN}-examples"
-FILES_${PN}-examples = "${bindir}/video-player ${bindir}/video-sink ${bindir}/audio"
+require clutter-common.inc
 
 inherit autotools pkgconfig
 
+align_examples_data_location() {
+	for full_name in $(find ${S}/examples -name *.png) ; do
+		data_name=${full_name##*/}
+		for i in $(find ${S}/examples -name *.c) ; do
+			sed -i -e s:${data_name}:${datadir}/${PN}-examples/${data_name}:g $i
+		done
+	done
+}
+
 do_configure_prepend() {
-	if [ -e ${WORKDIR}/gtk-doc.make ] ; then
-		cp ${WORKDIR}/gtk-doc.make ${S}/gtk-doc.make
-	else
-		touch ${S}/gtk-doc.make
-	fi
+	copy_gtk_doc_make
+	make_all_execs_installable
+	align_examples_data_location
+}
+
+do_install_append () {
+	install -m 755 -d ${D}${datadir}/${PN}-examples
+	for i in $(find ${S}/examples -name *.png) ; do
+		install -m 755 ${i} ${D}${datadir}/${PN}-examples
+	done
 }
 
+PACKAGES =+ "${PN}-examples"
+FILES_${PN}-examples = "${bindir}/video-* ${datadir}/${PN}-examples"
+
+PACKAGES =+ "${PN}-tests"
+FILES_${PN}-tests = "${bindir}/test-*"
+
+
diff --git a/recipes/clutter/clutter-gst_1.2.0.bb b/recipes/clutter/clutter-gst_1.2.0.bb
new file mode 100644
index 0000000..d7f7f02
--- /dev/null
+++ b/recipes/clutter/clutter-gst_1.2.0.bb
@@ -0,0 +1,9 @@
+require clutter-gst.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI = "http://source.clutter-project.org/sources/clutter-gst/1.2/clutter-gst-${PV}.tar.bz2 \
+          "
+
+SRC_URI[md5sum] = "1048815f0c9152edbfdc59a94d0e3b87"
+SRC_URI[sha256sum] = "ed3357c10fe82727091616296abd53c752e15c816a4030474f1919c0d347e5d3"
diff --git a/recipes/clutter/clutter-gtk-0.10.2/gtk-deprecated.patch b/recipes/clutter/clutter-gtk-0.10.2/gtk-deprecated.patch
new file mode 100644
index 0000000..93eb6a9
--- /dev/null
+++ b/recipes/clutter/clutter-gtk-0.10.2/gtk-deprecated.patch
@@ -0,0 +1,29 @@
+--- a/clutter-gtk/gtk-clutter-embed.c.old	2009-06-27 16:21:06.000000000 +0200
++++ b/clutter-gtk/gtk-clutter-embed.c	2010-09-01 12:46:25.000000000 +0200
+@@ -131,7 +131,7 @@
+ {
+   GtkClutterEmbedPrivate *priv = GTK_CLUTTER_EMBED (widget)->priv;
+ 
+-  if (GTK_WIDGET_REALIZED (widget))
++  if (gtk_widget_get_realized (widget))
+     clutter_actor_show (priv->stage);
+ 
+   GTK_WIDGET_CLASS (gtk_clutter_embed_parent_class)->show (widget);
+@@ -222,7 +222,7 @@
+ 
+   clutter_actor_realize (priv->stage);
+ 
+-  if (GTK_WIDGET_VISIBLE (widget))
++  if (gtk_widget_get_visible (widget))
+     clutter_actor_show (priv->stage);
+ 
+   gtk_clutter_embed_send_configure (GTK_CLUTTER_EMBED (widget));
+@@ -246,7 +246,7 @@
+ 
+   widget->allocation = *allocation;
+ 
+-  if (GTK_WIDGET_REALIZED (widget))
++  if (gtk_widget_get_realized (widget))
+     {
+       gdk_window_move_resize (widget->window,
+                               allocation->x, allocation->y,
diff --git a/recipes/clutter/clutter-gtk.inc b/recipes/clutter/clutter-gtk.inc
index d9b01ca..6e624c5 100644
--- a/recipes/clutter/clutter-gtk.inc
+++ b/recipes/clutter/clutter-gtk.inc
@@ -1,11 +1,27 @@
-DESCRIPTION = "Clutter GTK+"
+DESCRIPTION = "Clutter GTK+ integration library"
 HOMEPAGE = "http://www.clutter-project.org/"
-LICENSE = "LGPL"
+LICENSE = "LGPLv2.1"
 
-DEPENDS = "gtk+"
+INC_PR = "r1"
 
-PACKAGES =+ "${PN}-examples"
-FILES_${PN}-examples = "${bindir}/gtk-clutter-test ${bindir}/gtk-clutter-events ${bindir}/gtk-clutter-multistage"
+DEPENDS = "gtk+ clutter"
+require clutter-common.inc
 
 inherit autotools pkgconfig gtk-doc
 
+do_configure_prepend() {
+	make_all_execs_installable
+
+	# Align the examples data location
+	for i in $(find ${S}/examples -name *.c) ; do
+		sed -i -e 's:\"redhand.png\":\"${datadir}/${PN}-examples/redhand.png\":g' $i
+	done
+}
+
+do_install_append () {
+	install -m 755 -d ${D}${datadir}/${PN}-examples
+	install -m 755 ${S}/examples/redhand.png ${D}${datadir}/${PN}-examples
+}
+
+PACKAGES =+ "${PN}-examples"
+FILES_${PN}-examples = "${bindir}/* ${datadir}/${PN}-examples"
diff --git a/recipes/clutter/clutter-gtk_0.10.2.bb b/recipes/clutter/clutter-gtk_0.10.2.bb
new file mode 100644
index 0000000..4f3d570
--- /dev/null
+++ b/recipes/clutter/clutter-gtk_0.10.2.bb
@@ -0,0 +1,13 @@
+# NOTE: This is the last version configuring properly with clutter-1.0.x
+
+require clutter-gtk.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI = "http://source.clutter-project.org/sources/clutter-gtk/0.10/clutter-gtk-${PV}.tar.bz2 \
+           file://gtk-deprecated.patch \
+          "
+
+SRC_URI[md5sum] = "bb275b07f722631ff1764dd212843d11"
+SRC_URI[sha256sum] = "de2af20d44d2237811f27ee081b9df999a0af30ee0d410cd7c2872622386b0c9"
+
diff --git a/recipes/clutter/clutter-gtk_git.bb b/recipes/clutter/clutter-gtk_git.bb
deleted file mode 100644
index c3e3d49..0000000
--- a/recipes/clutter/clutter-gtk_git.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require clutter-gst.inc
-
-SRCREV = "70f4b0cbd568dfa265484a03be3bd08ad15ed12e"
-PV = "0.9.0+git${SRCREV}"
-PR = "r0"
-
-SRC_URI = "git://git.clutter-project.org/clutter-gtk.git;protocol=git"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "clutter"
diff --git a/recipes/clutter/clutter.inc b/recipes/clutter/clutter.inc
index 0c7eaa8..e29164f 100644
--- a/recipes/clutter/clutter.inc
+++ b/recipes/clutter/clutter.inc
@@ -1,11 +1,17 @@
 DESCRIPTION = "Clutter graphics library"
 HOMEPAGE = "http://www.clutter-project.org/"
-LICENSE = "LGPL"
+LICENSE = "LGPLv2.1"
+
+INC_SRC_URI = "file://sample.desktop \
+               file://test-conformance-run \
+              "
+
+PARALLEL_MAKE = ""
 
 COMPATIBLE_MACHINE = "(zylonite|mx31litekit|omap-3430ldp|omap-3430sdp|mx31ads|qemuarm|qemux86|ipodtouch|am3517-evm|dm37x-evm|am37x-evm|beagleboard|overo|
omap3evm|omap5912osk)"
 
 STDDEPENDS = "virtual/libx11 gtk-doc-native pango glib-2.0 libxfixes gtk+"
-BASE_CONF = "--disable-gtk-doc ${@get_clutter_fpu_setting(bb, d)}"
+BASE_CONF = "--disable-gtk-doc ${@get_clutter_fpu_setting(bb, d)} --enable-conformance "
 
 DEPENDS = "${STDDEPENDS} virtual/libgl"
 EXTRA_OECONF = "${BASE_CONF} --with-flavour=glx"
@@ -37,24 +43,70 @@ EXTRA_OECONF_mx31ads = "${BASE_CONF} --with-flavour=eglnative"
 PACKAGE_ARCH_mx31ads = "${MACHINE_ARCH}"
 LDFLAGS_append_mx31ads = " -lpvrNULLWSEGL -lstdc++ "
 
-INC_PR = "r1"
+INC_PR = "r2"
 
 inherit autotools pkgconfig gtk-doc
 
-PACKAGES =+ "clutter-examples"
-FILES_clutter-examples = "${bindir}/test-* ${pkgdatadir}/redhand.png"
+PACKAGES =+ "${PN}-tests"
+FILES_${PN}-tests = "${bindir}/test-* \
+                     ${datadir}/applications/test-* \
+                     ${datadir}/${PN}-tests"
+
+# cally is part of clutter since 1.3.8 (c0f753d108b7a2ad23dbf5a5b596f80175442927)
+PACKAGES =+ "${PN}-cally-examples"
+FILES_${PN}-cally-examples = "${bindir}/cally-*-example"
 
-#check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
-require clutter-fpu.inc
+require clutter-common.inc
 
-#Fix up some weirdness in the docs
 do_configure_prepend() {
-    if [ -e ${WORKDIR}/gtk-doc.make ] ; then
-        cp ${WORKDIR}/gtk-doc.make ${S}/gtk-doc.make
-    else
-        touch ${S}/gtk-doc.make
-    fi
-    sed -i s:doc/reference/Makefile::g ${S}/configure.ac
-    sed -i s:doc::g ${S}/Makefile.am
+	# Fix up some weirdness in the docs
+	copy_gtk_doc_make
+
+	# Fix up 'Requires' entries in *.pc.in to prevent from "NOTE: couldn't find pkgconfig module '${requires}' in any package"
+	for i in $(find ${S} -name '*.pc.in') ; do
+		sed -i s:'${requires}':'@CLUTTER_REQUIRES@':g $i
+	done
+	
+	make_all_execs_installable
+}
+
+# helper to (re)build shader source files from *.glsl	
+rebuild_shader_sources() {
+	if [ $# == 1 ] && [ $1 ] &&  [ -d $1 ] ; then
+		glespath=$1
+		for i in ${glespath}/*.glsl ; do 
+			# *.h
+			sh ${glespath}/stringify.sh -h $i > "${i%.glsl}.h"
+			# *.c
+			sh ${glespath}/stringify.sh $i > "${i%.glsl}.c"
+		done
+	else
+		echo Warning: "clutter.inc::rebuild_shader_sources: called with invalid parameter ${1}!"
+	fi
 }
 
+# tests are not prepared for installation - some helpers
+install_tests() {
+	install -m 755 -d ${D}${bindir}/
+	install -m 755 -d ${D}${datadir}/applications
+
+	# conformance tests script
+	install -m 0755 ${WORKDIR}/test-conformance-run ${D}${bindir}
+
+	# interactive tests desktop entries
+	for i in ${S}/tests/interactive/*.o ; do 
+		test_path=`echo ${i} | sed -e 's:\.o::' -e 's:test_interactive-::'`
+		test_name=`echo ${test_path} | sed 's:.*/::'`
+		if [ -e ${test_path} ] ; then 
+			sed -e s:NAME:${test_name}: \
+			    -e "s:EXEC:${bindir}/test-interactive ${test_name}:" \
+			     ${WORKDIR}/sample.desktop > ${D}${datadir}/applications/${test_name}.desktop
+		fi
+	done
+
+	# test data
+	install -m 755 -d ${D}${datadir}/${PN}-tests
+	for i in $(find ${S}/tests/data -name *.png -o -name *.json ) ; do
+		install -m 0755 ${i} ${D}${datadir}/${PN}-tests/
+	done
+}
diff --git a/recipes/clutter/clutter/enable-tests-r2990.patch b/recipes/clutter/clutter/enable-tests-r2990.patch
deleted file mode 100644
index 4f449b1..0000000
--- a/recipes/clutter/clutter/enable-tests-r2990.patch
+++ /dev/null
@@ -1,50 +0,0 @@
----
- tests/Makefile.am   |    7 ++++++-
- tests/test-actors.c |    2 +-
- tests/test-text.c   |    2 +-
- 3 files changed, 8 insertions(+), 3 deletions(-)
-
-Index: clutter/tests/Makefile.am
-===================================================================
---- clutter.orig/tests/Makefile.am	2008-06-26 16:46:26.000000000 +0100
-+++ clutter/tests/Makefile.am	2008-06-26 16:46:50.000000000 +0100
-@@ -1,4 +1,4 @@
--noinst_PROGRAMS = test-textures test-events test-offscreen test-scale \
-+bin_PROGRAMS = test-textures test-events test-offscreen test-scale \
-                   test-actors test-behave test-text test-entry test-project \
- 		  test-perspective test-rotate test-depth \
- 		  test-threads test-timeline test-timeline-dup-frames \
-@@ -17,8 +17,8 @@
- 		  test-invariants
- 
- if X11_TESTS
--noinst_PROGRAMS += test-pixmap
--noinst_PROGRAMS += test-devices
-+bin_PROGRAMS += test-pixmap
-+bin_PROGRAMS += test-devices
- endif
- 
- INCLUDES = -I$(top_srcdir)/ -I$(top_srcdir)/clutter -I$(top_builddir)/clutter
-@@ -73,4 +73,9 @@
- test_invariants_SOURCES           = test-invariants.c
- test_devices_SOURCES              = test-devices.c
- 
-+test_textdir           = $(pkgdatadir)
-+test_text_DATA         = test-text.c
-+test_actorsdir         = $(pkgdatadir)
-+test_actors_DATA       = redhand.png
-+
- EXTRA_DIST = redhand.png test-script.json
-Index: clutter/tests/test-actors.c
-===================================================================
---- clutter.orig/tests/test-actors.c	2008-06-26 16:46:26.000000000 +0100
-+++ clutter/tests/test-actors.c	2008-06-26 16:46:31.000000000 +0100
-@@ -195,7 +195,7 @@
-       /* Create a texture from file, then clone in to same resources */
-       if (i == 0)
- 	{
--	  if ((oh->hand[i] = clutter_texture_new_from_file ("redhand.png",
-+	  if ((oh->hand[i] = clutter_texture_new_from_file ("/usr/share/clutter/redhand.png",
- 							    &error)) == NULL)
- 	    {
- 	      g_error ("image load failed: %s", error->message);
diff --git a/recipes/clutter/clutter/sample.desktop b/recipes/clutter/clutter/sample.desktop
new file mode 100644
index 0000000..34dec2b
--- /dev/null
+++ b/recipes/clutter/clutter/sample.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Version=1.0
+Name=NAME
+Comment=Clutter Test
+Exec=EXEC
+Icon=star
+Type=Application
+Categories=Graphics;
+
diff --git a/recipes/clutter/clutter/test-conformance-run b/recipes/clutter/clutter/test-conformance-run
new file mode 100755
index 0000000..7efd896
--- /dev/null
+++ b/recipes/clutter/clutter/test-conformance-run
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# Simple script to run all conformance tests. 
+# Works around abortion on crash
+for i in `test-conformance -l` ; do
+	test-conformance $@ -p $i
+done
+
diff --git a/recipes/clutter/clutter_0.8+git.bb b/recipes/clutter/clutter_0.8+git.bb
deleted file mode 100644
index 692154d..0000000
--- a/recipes/clutter/clutter_0.8+git.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require clutter.inc
-
-CLUTTER_REV = "af16378899699376fe7e84c7c11eb3bb5c4668cd"
-
-PV = "0.8.8"
-PR = "${INC_PR}.0"
-PR_append = "+gitr${CLUTTER_REV}"
-
-SRC_URI = "git://git.clutter-project.org/clutter.git;protocol=git;branch=clutter-0-8;rev=${CLUTTER_REV} \
-           file://enable-tests-r2990.patch"
-
-S = "${WORKDIR}/git"
-
-
-ARM_INSTRUCTION_SET = "arm"
diff --git a/recipes/clutter/clutter_1.0.10.bb b/recipes/clutter/clutter_1.0.10.bb
new file mode 100644
index 0000000..020ebf2
--- /dev/null
+++ b/recipes/clutter/clutter_1.0.10.bb
@@ -0,0 +1,29 @@
+require clutter.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI = "http://source.clutter-project.org/sources/clutter/1.0/clutter-${PV}.tar.bz2 \
+           ${INC_SRC_URI} \
+          "
+
+# recommended for --clutter-debug / --cogl-debug params
+BASE_CONF += " --enable-debug"
+
+do_compile_prepend() {
+	rebuild_shader_sources ${S}/clutter/cogl/cogl/driver/gles
+	# align test data location
+	for full_name in $(find ${S}/tests/data -name *.png -o -name *.json) ; do
+		data_name=${full_name##*/}
+		for i in $(find ${S}/tests -name *.c -o -name *.json) ; do
+			sed -i -e s:${data_name}:${datadir}/${PN}-tests/${data_name}:g $i
+		done
+	done
+}
+
+do_install() {
+	autotools_do_install
+	install_tests
+}
+
+SRC_URI[md5sum] = "bf48e85291cba33f3f149f4eefe759f0"
+SRC_URI[sha256sum] = "6fb98dc4d16a3a98be734cf0a6cc4f8d8179800603c3e41011c414eeaf1f456b"
diff --git a/recipes/clutter/files/enable_tests.patch b/recipes/clutter/files/enable_tests.patch
deleted file mode 100644
index 953edf6..0000000
--- a/recipes/clutter/files/enable_tests.patch
+++ /dev/null
@@ -1,32 +0,0 @@
----
- tests/Makefile.am   |    7 ++++++-
- tests/test-actors.c |    2 +-
- tests/test-text.c   |    2 +-
- 3 files changed, 8 insertions(+), 3 deletions(-)
-
-Index: git/tests/interactive/Makefile.am
-===================================================================
---- git.orig/tests/interactive/Makefile.am	2009-03-12 11:01:36.000000000 +0000
-+++ git/tests/interactive/Makefile.am	2009-03-12 11:04:12.000000000 +0000
-@@ -77,7 +77,7 @@
- AM_CFLAGS = $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS)
- AM_LDFLAGS = $(CLUTTER_LIBS)
- 
--noinst_PROGRAMS = test-interactive
-+bin_PROGRAMS = test-interactive
- 
- test_interactive_SOURCES = \
- 	test-main.c \
-Index: git/tests/interactive/test-actors.c
-===================================================================
---- git.orig/tests/interactive/test-actors.c	2009-03-12 11:01:36.000000000 +0000
-+++ git/tests/interactive/test-actors.c	2009-03-12 11:06:32.000000000 +0000
-@@ -182,7 +182,7 @@
-   oh->scaler_1 = clutter_behaviour_scale_new (alpha, 0.5, 0.5, 1.0, 1.0);
-   oh->scaler_2 = clutter_behaviour_scale_new (alpha, 1.0, 1.0, 0.5, 0.5);
- 
--  real_hand = clutter_texture_new_from_file ("redhand.png", &error);
-+  real_hand = clutter_texture_new_from_file ("/usr/share/clutter/redhand.png", &error);
-   if (real_hand == NULL)
-     {
-       g_error ("image load failed: %s", error->message);
-- 
1.5.3.4




More information about the Openembedded-devel mailing list