summaryrefslogtreecommitdiffstats
path: root/meta-gnome/recipes-graphics
diff options
context:
space:
mode:
authorRoss Burton <ross@burtonini.com>2021-05-26 15:36:04 +0100
committerKhem Raj <raj.khem@gmail.com>2021-05-28 06:55:33 -0700
commit4b6175892985a6016df1a38824ccbb5989f00b33 (patch)
tree32718c4c55dbaf254632068deb91db73d9a81373 /meta-gnome/recipes-graphics
parentba8309fbb7880b1a2782b43e7f8b203aab4d5c11 (diff)
downloadmeta-openembedded-4b6175892985a6016df1a38824ccbb5989f00b33.tar.gz
meta-gnome: add Cogl/Clutter from oe-core
Nothing in openembedded-core needs Clutter now, and Clutter is abandoned upstream. Move it to meta-gnome as there are still a few users of Clutter in Gnome. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-gnome/recipes-graphics')
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-1.0.inc49
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch143
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-1.0/install-examples.patch19
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch30
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-1.0/run-ptest3
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-1.0_1.26.4.bb10
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-gst-3.0.inc23
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch33
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb7
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0.inc23
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch37
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb7
-rw-r--r--meta-gnome/recipes-graphics/cogl/cogl-1.0.inc84
-rw-r--r--meta-gnome/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch92
-rw-r--r--meta-gnome/recipes-graphics/cogl/cogl-1.0_1.22.8.bb6
-rw-r--r--meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb22
16 files changed, 588 insertions, 0 deletions
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-1.0.inc b/meta-gnome/recipes-graphics/clutter/clutter-1.0.inc
new file mode 100644
index 000000000..80472178b
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-1.0.inc
@@ -0,0 +1,49 @@
1SUMMARY = "Graphics library for creating hardware-accelerated user interfaces"
2DESCRIPTION = "Clutter is an Open GL based interactive canvas library, \
3designed for creating fast, mainly 2D single window applications such as media \
4box UIs, presentations, kiosk style applications and so on."
5HOMEPAGE = "http://www.clutter-project.org/"
6LICENSE = "LGPLv2.1+"
7
8inherit clutter ptest-gnome features_check upstream-version-is-even gobject-introspection
9# depends on cogl-1.0 which needs opengl
10REQUIRED_DISTRO_FEATURES ?= "opengl"
11
12DEPENDS = "pango glib-2.0 json-glib atk udev cogl-1.0"
13PACKAGE_BEFORE_PN += "${PN}-examples"
14AUTOTOOLS_AUXDIR = "${S}/build-aux"
15
16EDEPENDS_X11 = "virtual/libx11 libxi libxfixes"
17EDEPENDS_GLX = "virtual/libgl"
18EDEPENDS_EGL = "virtual/egl"
19EDEPENDS_WAYLAND = "wayland libxkbcommon gdk-pixbuf"
20
21EDEPENDS_EVDEV = "libxkbcommon"
22ERDEPENDS_EVDEV = "xkeyboard-config"
23
24# Disable pretty much everything, override in platform specific set up
25EXTRA_OECONF += "--disable-quartz-backend \
26 --disable-win32-backend \
27 --disable-cex100-backend \
28 --disable-tslib-input \
29 "
30
31PACKAGECONFIG[gdk] = "--enable-gdk-backend,--disable-gdk-backend,gtk+3"
32PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,${EDEPENDS_X11}"
33PACKAGECONFIG[glx] = ",,${EDEPENDS_X11} ${EDEPENDS_GLX}"
34PACKAGECONFIG[egl] = "--enable-egl-backend,--disable-egl-backend,${EDEPENDS_EGL}"
35PACKAGECONFIG[evdev] = "--enable-evdev-input,--disable-evdev-input,${EDEPENDS_EVDEV},${ERDEPENDS_EVDEV}"
36PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,${EDEPENDS_WAYLAND}"
37PACKAGECONFIG[wayland-compositor] = "--enable-wayland-compositor,--disable-wayland-compositor,wayland"
38
39# Default configuration, distros might want to override
40PACKAGECONFIG ??= "egl gdk \
41 ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
42 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11', '', d)}"
43
44FILES_${PN}-examples = "${libdir}/clutter/examples"
45
46do_configure_prepend() {
47 # see https://bugzilla.gnome.org/show_bug.cgi?id=661128 for this
48 touch -t 200001010000 ${S}/po/clutter-1.0.pot
49}
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch b/meta-gnome/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch
new file mode 100644
index 000000000..7b3c1980b
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch
@@ -0,0 +1,143 @@
1From 3a0404dfbc65c6a864e01d1200a48074e19d5def Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 2 Sep 2016 14:28:38 +0300
4Subject: [PATCH] Remove clutter.types as it is build configuration-specific.
5
6Upstream-Status: Pending
7Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
8---
9 doc/reference/clutter.types | 122 --------------------------------------------
10 1 file changed, 122 deletions(-)
11 delete mode 100644 doc/reference/clutter.types
12
13diff --git a/doc/reference/clutter.types b/doc/reference/clutter.types
14deleted file mode 100644
15index 0037acc..0000000
16--- a/doc/reference/clutter.types
17+++ /dev/null
18@@ -1,122 +0,0 @@
19-cally_actor_get_type
20-cally_clone_get_type
21-cally_group_get_type
22-cally_rectangle_get_type
23-cally_root_get_type
24-cally_stage_get_type
25-cally_text_get_type
26-cally_texture_get_type
27-cally_util_get_type
28-clutter_action_get_type
29-clutter_actor_box_get_type
30-clutter_actor_get_type
31-clutter_actor_meta_get_type
32-clutter_align_constraint_get_type
33-clutter_alpha_get_type
34-clutter_animatable_get_type
35-clutter_animation_get_type
36-clutter_animator_get_type
37-clutter_animator_key_get_type
38-clutter_backend_get_type
39-clutter_behaviour_depth_get_type
40-clutter_behaviour_ellipse_get_type
41-clutter_behaviour_get_type
42-clutter_behaviour_opacity_get_type
43-clutter_behaviour_path_get_type
44-clutter_behaviour_rotate_get_type
45-clutter_behaviour_scale_get_type
46-clutter_bin_layout_get_type
47-clutter_bind_constraint_get_type
48-clutter_binding_pool_get_type
49-clutter_blur_effect_get_type
50-clutter_box_get_type
51-clutter_box_layout_get_type
52-clutter_brightness_contrast_effect_get_type
53-clutter_cairo_texture_get_type
54-clutter_canvas_get_type
55-clutter_child_meta_get_type
56-clutter_click_action_get_type
57-clutter_clip_node_get_type
58-clutter_clone_get_type
59-clutter_color_get_type
60-clutter_color_node_get_type
61-clutter_colorize_effect_get_type
62-clutter_constraint_get_type
63-clutter_container_get_type
64-clutter_content_get_type
65-clutter_deform_effect_get_type
66-clutter_desaturate_effect_get_type
67-clutter_device_manager_get_type
68-clutter_drag_action_get_type
69-clutter_drop_action_get_type
70-clutter_effect_get_type
71-clutter_event_get_type
72-clutter_event_sequence_get_type
73-clutter_fixed_layout_get_type
74-clutter_flow_layout_get_type
75-clutter_fog_get_type
76-clutter_geometry_get_type
77-clutter_gesture_action_get_type
78-clutter_glx_texture_pixmap_get_type
79-clutter_grid_layout_get_type
80-clutter_group_get_type
81-clutter_image_get_type
82-clutter_input_device_get_type
83-clutter_interval_get_type
84-clutter_keyframe_transition_get_type
85-clutter_knot_get_type
86-clutter_layout_manager_get_type
87-clutter_layout_meta_get_type
88-clutter_list_model_get_type
89-clutter_margin_get_type
90-clutter_media_get_type
91-clutter_model_get_type
92-clutter_model_iter_get_type
93-clutter_offscreen_effect_get_type
94-clutter_page_turn_effect_get_type
95-clutter_paint_node_get_type
96-clutter_paint_volume_get_type
97-clutter_pan_action_get_type
98-clutter_param_color_get_type
99-clutter_param_fixed_get_type
100-clutter_param_units_get_type
101-clutter_path_constraint_get_type
102-clutter_path_get_type
103-clutter_path_node_get_type
104-clutter_perspective_get_type
105-clutter_pipeline_node_get_type
106-clutter_point_get_type
107-clutter_property_transition_get_type
108-clutter_rect_get_type
109-clutter_rectangle_get_type
110-clutter_rotate_action_get_type
111-clutter_score_get_type
112-clutter_script_get_type
113-clutter_scriptable_get_type
114-clutter_scroll_actor_get_type
115-clutter_settings_get_type
116-clutter_shader_effect_get_type
117-clutter_shader_float_get_type
118-clutter_shader_get_type
119-clutter_shader_int_get_type
120-clutter_shader_matrix_get_type
121-clutter_size_get_type
122-clutter_snap_constraint_get_type
123-clutter_stage_get_type
124-clutter_stage_manager_get_type
125-clutter_state_get_type
126-clutter_state_key_get_type
127-clutter_swipe_action_get_type
128-clutter_table_layout_get_type
129-clutter_tap_action_get_type
130-clutter_text_buffer_get_type
131-clutter_text_get_type
132-clutter_text_node_get_type
133-clutter_texture_get_type
134-clutter_texture_node_get_type
135-clutter_timeline_get_type
136-clutter_transition_get_type
137-clutter_transition_group_get_type
138-clutter_units_get_type
139-clutter_vertex_get_type
140-clutter_zoom_action_get_type
141--
1422.9.3
143
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-1.0/install-examples.patch b/meta-gnome/recipes-graphics/clutter/clutter-1.0/install-examples.patch
new file mode 100644
index 000000000..ce9ab3a24
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-1.0/install-examples.patch
@@ -0,0 +1,19 @@
1Install the examples to $libdir/clutter/.
2
3Signed-off-by: Ross Burton <ross.burton@intel.com>
4Upstream-Status: Inappropriate
5
6Index: clutter-1.26.2/examples/Makefile.am
7===================================================================
8--- clutter-1.26.2.orig/examples/Makefile.am
9+++ clutter-1.26.2/examples/Makefile.am
10@@ -33,7 +33,8 @@ AM_CPPFLAGS = \
11 -I$(top_srcdir)/clutter \
12 -I$(top_builddir)/clutter
13
14-noinst_PROGRAMS = $(all_examples)
15+exampledir = $(pkglibdir)/examples
16+example_PROGRAMS = $(all_examples)
17
18 EXTRA_DIST = redhand.png
19
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch b/meta-gnome/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch
new file mode 100644
index 000000000..fef82eaf9
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch
@@ -0,0 +1,30 @@
1From d6ceb5a44b28e0e50ede22b84984d8516897de4b Mon Sep 17 00:00:00 2001
2From: Jussi Kukkonen <jussi.kukkonen@intel.com>
3Date: Mon, 27 Apr 2015 20:12:33 +0300
4Subject: [PATCH] Run installed tests with tap output
5
6Configure output from installed-tests to be TAP compliant such that
7gnome-desktop-testing-runner properly interprets the results.
8
9Upstream-Status: Pending
10
11Signed-off-by: Tim Orling <TicoTimo@gmail.com>
12
13---
14 build-aux/autotools/glib-tap.mk | 3 ++-
15 1 file changed, 2 insertions(+), 1 deletion(-)
16
17diff --git a/build-aux/autotools/glib-tap.mk b/build-aux/autotools/glib-tap.mk
18index a4f0dad..51cfa31 100644
19--- a/build-aux/autotools/glib-tap.mk
20+++ b/build-aux/autotools/glib-tap.mk
21@@ -127,7 +127,8 @@ installed_test_meta_DATA = $(installed_testcases:=.test)
22 %.test: %$(EXEEXT) Makefile
23 $(AM_V_GEN) (echo '[Test]' > $@.tmp; \
24 echo 'Type=session' >> $@.tmp; \
25- echo 'Exec=env G_ENABLE_DIAGNOSTIC=0 CLUTTER_ENABLE_DIAGNOSTIC=0 $(installed_testdir)/$<' >> $@.tmp; \
26+ echo 'Exec=env G_ENABLE_DIAGNOSTIC=0 CLUTTER_ENABLE_DIAGNOSTIC=0 $(installed_testdir)/$< --tap' >> $@.tmp; \
27+ echo 'Output=TAP' >> $@.tmp; \
28 mv $@.tmp $@)
29
30 CLEANFILES += $(installed_test_meta_DATA)
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-1.0/run-ptest b/meta-gnome/recipes-graphics/clutter/clutter-1.0/run-ptest
new file mode 100644
index 000000000..98877e522
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-1.0/run-ptest
@@ -0,0 +1,3 @@
1#! /bin/sh
2
3gnome-desktop-testing-runner clutter
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-1.0_1.26.4.bb b/meta-gnome/recipes-graphics/clutter/clutter-1.0_1.26.4.bb
new file mode 100644
index 000000000..ee549fbdd
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-1.0_1.26.4.bb
@@ -0,0 +1,10 @@
1require clutter-1.0.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
4
5SRC_URI[archive.md5sum] = "624dd776a5159de0267587b1df6b97b2"
6SRC_URI[archive.sha256sum] = "8b48fac159843f556d0a6be3dbfc6b083fc6d9c58a20a49a6b4919ab4263c4e6"
7SRC_URI += "file://install-examples.patch \
8 file://run-installed-tests-with-tap-output.patch \
9 file://0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch \
10 file://run-ptest"
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0.inc b/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0.inc
new file mode 100644
index 000000000..73315c97e
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0.inc
@@ -0,0 +1,23 @@
1SUMMARY = "GStreamer integration library for Clutter"
2DESCRIPTION = "Clutter-Gst is an integration library for using GStreamer with Clutter. \
3It provides a GStreamer sink to upload frames to GL and an actor that \
4implements the ClutterGstPlayer interface using playbin."
5HOMEPAGE = "http://www.clutter-project.org/"
6BUGTRACKER = "https://gitlab.gnome.org/GNOME/clutter-gst/-/issues"
7LICENSE = "LGPLv2+"
8
9inherit clutter features_check upstream-version-is-even gobject-introspection
10# depends on clutter-1.0 which depends on cogl-1.0
11REQUIRED_DISTRO_FEATURES ?= "opengl"
12
13export GST_PLUGIN_SCANNER_1_0="${S}/gst-plugin-scanner-dummy"
14
15SRC_URI += "file://0001-Install-example-binary-needed-for-core-image-clutter.patch"
16
17DEPENDS = "gstreamer1.0-plugins-base gstreamer1.0-plugins-bad clutter-1.0 libgudev"
18RDEPENDS_${PN} += "gstreamer1.0-meta-base"
19PACKAGES =+ "${PN}-examples"
20
21FILES_${PN} += "${libdir}/gstreamer-1.0/lib*.so"
22FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
23FILES_${PN}-examples = "${bindir}/video-player ${bindir}/video-sink"
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch b/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch
new file mode 100644
index 000000000..0b26b990d
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch
@@ -0,0 +1,33 @@
1From d77c711277bf075ce0545c19b322f040c49c778a Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Thu, 30 Apr 2015 12:19:13 +0300
4Subject: [PATCH] Install example binary needed for core-image-clutter
5
6Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
7
8Upstream-Status: Inappropriate [configuration]
9
10Imported from clutter-gst-1.8 package, git://git.openembedded.org/openembedded,
11commit ae28ee3f7a060b9e0d13154a84f2444a98490b5b, updated for clutter-gst 3.0
12
13Signed-off-by: Tomas Frydrych <tomas@sleepfive.com>
14Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
15---
16 examples/Makefile.am | 2 +-
17 1 file changed, 1 insertion(+), 1 deletion(-)
18
19diff --git a/examples/Makefile.am b/examples/Makefile.am
20index bfbc1b5..09655e3 100644
21--- a/examples/Makefile.am
22+++ b/examples/Makefile.am
23@@ -1,6 +1,6 @@
24 NULL = #
25
26-noinst_PROGRAMS = camera-player video-player video-sink video-sink-navigation video-content
27+bin_PROGRAMS = camera-player video-player video-sink video-sink-navigation video-content
28
29 AM_CPPFLAGS = -I$(top_srcdir) \
30 $(MAINTAINER_CFLAGS) \
31--
322.1.4
33
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb b/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb
new file mode 100644
index 000000000..35382453c
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb
@@ -0,0 +1,7 @@
1require clutter-gst-3.0.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
4 file://clutter-gst/clutter-gst.h;beginline=1;endline=24;md5=95baacba194e814c110ea3bdf25ddbf4"
5
6SRC_URI[archive.md5sum] = "2bf9d7ca146c9d71e86c45cd00e9a28e"
7SRC_URI[archive.sha256sum] = "fe69bd6c659d24ab30da3f091eb91cd1970026d431179b0724f13791e8ad9f9d"
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0.inc b/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0.inc
new file mode 100644
index 000000000..9a28b5219
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0.inc
@@ -0,0 +1,23 @@
1SUMMARY = "Library for embedding a Clutter canvas in a GTK+ application"
2DESCRIPTION = "Clutter-GTK is a library providing facilities to integrate Clutter into GTK+ \
3applications and vice versa. It provides a GTK+ widget, GtkClutterEmbed, for embedding the \
4a Clutter stage into any GtkContainer; and GtkClutterActor, a Clutter \
5actor for embedding any GtkWidget inside a Clutter stage."
6HOMEPAGE = "http://www.clutter-project.org/"
7BUGTRACKER = "https://gitlab.gnome.org/GNOME/clutter/-/issues"
8LICENSE = "LGPLv2+"
9
10CLUTTERBASEBUILDCLASS = "meson"
11inherit clutter features_check upstream-version-is-even gobject-introspection gtk-doc
12
13# depends on clutter-1.0 which depends on cogl-1.0
14REQUIRED_DISTRO_FEATURES ?= "opengl"
15# depends on gtk+3
16ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
17
18DEPENDS = "clutter-1.0 gtk+3"
19PACKAGES =+ "${PN}-examples"
20
21GTKDOC_MESON_OPTION = "enable_docs"
22
23GIR_MESON_OPTION = 'enable_gi'
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch b/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch
new file mode 100644
index 000000000..e21c6fd90
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch
@@ -0,0 +1,37 @@
1From 7233883c6bd4e80c0e91b29b5c76fe798023e9fe Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Mon, 11 Feb 2019 16:41:13 +0100
4Subject: [PATCH] Add a config variable for enabling/disabling introspection
5
6Upstream-Status: Pending
7Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
8---
9 clutter-gtk/meson.build | 2 +-
10 meson_options.txt | 4 ++++
11 2 files changed, 5 insertions(+), 1 deletion(-)
12
13diff --git a/clutter-gtk/meson.build b/clutter-gtk/meson.build
14index 5d6847d..5d934b6 100644
15--- a/clutter-gtk/meson.build
16+++ b/clutter-gtk/meson.build
17@@ -49,7 +49,7 @@ clutter_gtk_dep = declare_dependency(link_with: clutter_gtk,
18 dependencies: [ mathlib_dep, clutter_dep, gtk_dep ],
19 include_directories: include_directories('.'))
20
21-if not meson.is_cross_build()
22+if get_option('enable_gi')
23 gnome.generate_gir(clutter_gtk,
24 sources: clutter_gtk_headers + clutter_gtk_sources,
25 namespace: 'GtkClutter',
26diff --git a/meson_options.txt b/meson_options.txt
27index aaf59f1..b7e51c3 100644
28--- a/meson_options.txt
29+++ b/meson_options.txt
30@@ -2,3 +2,7 @@ option('enable_docs',
31 type: 'boolean',
32 value: false,
33 description: 'Enable generating the API reference (depends on GTK-Doc)')
34+option('enable_gi',
35+ type: 'boolean',
36+ value: false,
37+ description: 'Enable gobject introspection')
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb b/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb
new file mode 100644
index 000000000..53948c894
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb
@@ -0,0 +1,7 @@
1require clutter-gtk-1.0.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
4
5SRC_URI += " file://0001-Add-a-config-variable-for-enabling-disabling-introsp.patch"
6SRC_URI[archive.md5sum] = "b363ac9878e2337be887b8ee9e1da00e"
7SRC_URI[archive.sha256sum] = "521493ec038973c77edcb8bc5eac23eed41645117894aaee7300b2487cb42b06"
diff --git a/meta-gnome/recipes-graphics/cogl/cogl-1.0.inc b/meta-gnome/recipes-graphics/cogl/cogl-1.0.inc
new file mode 100644
index 000000000..d581ad1c0
--- /dev/null
+++ b/meta-gnome/recipes-graphics/cogl/cogl-1.0.inc
@@ -0,0 +1,84 @@
1SUMMARY = "Modern 3D graphics API with associated utility APIs"
2DESCRIPTION = "Cogl is a small open source library for using 3D graphics \
3hardware for rendering. The API departs from the flat state machine style of \
4OpenGL and is designed to make it easy to write orthogonal components that \
5can render without stepping on each others toes."
6HOMEPAGE = "https://gitlab.gnome.org/GNOME/cogl"
7LICENSE = "MIT"
8
9inherit clutter features_check upstream-version-is-even gobject-introspection
10# cogl-1.0 needs opengl to build
11REQUIRED_DISTRO_FEATURES ?= "opengl"
12
13DEPENDS = "glib-2.0 gdk-pixbuf"
14PACKAGES =+ "${PN}-examples \
15 libcogl libcogl-gles2 libcogl-pango libcogl-path \
16 "
17AUTOTOOLS_AUXDIR = "${S}/build"
18
19# Extra DEPENDS for PACKAGECONFIG
20EDEPENDS_GL = "virtual/libgl libdrm"
21EDEPENDS_GLES2 = "virtual/libgles2"
22EDEPENDS_KMS = "libdrm virtual/egl"
23EDEPENDS_EGL = "virtual/egl"
24EDEPENDS_X11 = "virtual/libx11 libxcomposite libxdamage libxfixes libxrandr"
25EDEPENDS_WAYLAND = "virtual/egl virtual/libgles2 wayland"
26
27# Extra RDEPENDS for PACKAGECONFIG
28# This has to be explictly listed, because cogl dlopens the backends
29ERDEPENDS_GL = "libgl"
30ERDEPENDS_GLES2 = "libgles2"
31
32# GLESv1 is rarely tested, so disable it
33EXTRA_OECONF += "--enable-examples-install \
34 --enable-debug \
35 --disable-gles1 \
36 --disable-cairo \
37 "
38DEBUG_OPTIMIZATION_append = " -Wno-error=maybe-uninitialized"
39
40# OpenGL/GLX
41PACKAGECONFIG[glx] = "--enable-gl --enable-glx,--disable-gl --disable-glx,${EDEPENDS_GL} ${EDEPENDS_X11},${ERDEPENDS_GL}"
42
43# GLESv2
44PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,${EDEPENDS_GLES2}, ${ERDEPENDS_GLES2}"
45
46# EGL backends
47PACKAGECONFIG[egl-kms] = "--enable-kms-egl-platform,--disable-kms-egl-platform,${EDEPENDS_KMS}"
48PACKAGECONFIG[egl-null] = "--enable-null-egl-platform,--disable-null-egl-platform"
49PACKAGECONFIG[egl-x11] = "--enable-xlib-egl-platform,--disable-xlib-egl-platform,${EDEPENDS_X11} ${EDEPENDS_EGL}"
50PACKAGECONFIG[egl-wayland] = "--enable-wayland-egl-platform,--disable-wayland-egl-platform,${EDEPENDS_WAYLAND}"
51
52# Wayland (server-side)
53PACKAGECONFIG[wayland-server] = "--enable-wayland-egl-server,--disable-wayland-egl-server,${EDEPENDS_WAYLAND}"
54
55# Support rendering text directly with Pango
56PACKAGECONFIG[cogl-pango] = "--enable-cogl-pango,--disable-cogl-pango,pango"
57
58# Respect the DISTRO_FEATURES to pull in GLX or Wayland as appropriate by
59# default.
60PACKAGECONFIG ??= "cogl-pango gles2 \
61 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'egl-wayland', '', d)} \
62 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx egl-x11', '', d)} \
63 "
64
65do_compile_prepend() {
66 export GIR_EXTRA_LIBS_PATH="${B}/cogl/.libs"
67}
68
69FILES_${PN} = ""
70FILES_${PN}-examples = "${bindir}/* ${datadir}/cogl/examples-data/*"
71FILES_libcogl = "${libdir}/libcogl${SOLIBS} ${libdir}/girepository-1.0/Cogl-*.typelib"
72FILES_libcogl-gles2 = "${libdir}/libcogl-gles2${SOLIBS}"
73FILES_libcogl-pango = "${libdir}/libcogl-pango${SOLIBS} ${libdir}/girepository-1.0/CoglPango*.typelib"
74
75FILES_libcogl-path = "${libdir}/libcogl-path${SOLIBS}"
76
77# For backwards compatibility after Debian-renaming
78RPROVIDES_libcogl = "cogl-1.0"
79RCONFLICTS_libcogl = "cogl-1.0"
80RREPLACES_libcogl = "cogl-1.0"
81
82RDEPENDS_${PN}-dev = "libcogl"
83
84COMPATIBLE_HOST_armv4 = 'null'
diff --git a/meta-gnome/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch b/meta-gnome/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch
new file mode 100644
index 000000000..328984a63
--- /dev/null
+++ b/meta-gnome/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch
@@ -0,0 +1,92 @@
1From bb9765a926588ebfe1eb324fbbe8fc22d419eebe Mon Sep 17 00:00:00 2001
2From: Max Krummenacher <max.krummenacher@toradex.com>
3Date: Thu, 25 Jun 2020 11:27:40 +0000
4Subject: [PATCH] configure.ac: don't require eglmesaext.h
5
6E.g. the Vivante EGL implementation does not provide eglmesaext.h.
7
8The commit moves the check for header file existence outside of the
9check for existence of a egl packageconfig and makes the existence
10of eglmesaext.h optional.
11
12fixes commit fb1acfec ("Fix building against libglvnd-provided EGL headers")
13Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
14
15Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/28]
16Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
17---
18 configure.ac | 51 ++++++++++++++++++++++++++++++++-------------------
19 1 file changed, 32 insertions(+), 19 deletions(-)
20
21diff --git a/configure.ac b/configure.ac
22index b7ba95d..0d1d8de 100644
23--- a/configure.ac
24+++ b/configure.ac
25@@ -1212,22 +1212,6 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"],
26 PKG_CHECK_EXISTS([egl],
27 [COGL_PKG_REQUIRES="$COGL_PKG_REQUIRES egl"],
28 [
29- AC_CHECK_HEADERS(
30- [EGL/egl.h],
31- [],
32- [AC_MSG_ERROR([Unable to locate required EGL headers])])
33- AC_CHECK_HEADERS(
34- [EGL/eglext.h],
35- [],
36- [AC_MSG_ERROR([Unable to locate required EGL headers])],
37- [#include <EGL/egl.h>])
38- AC_CHECK_HEADERS(
39- [EGL/eglmesaext.h],
40- [],
41- [AC_MSG_ERROR([Unable to locate required EGL headers])],
42- [#include <EGL/egl.h>
43-#include <EGL/eglext.h>])
44-
45 AC_CHECK_LIB(EGL, [eglInitialize],
46 [COGL_EXTRA_LDFLAGS="$COGL_EXTRA_LDFLAGS -lEGL"],
47 [AC_MSG_ERROR([Unable to locate required EGL library])])
48@@ -1236,9 +1220,38 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"],
49 ]
50 )
51
52- COGL_EGL_INCLUDES="#include <EGL/egl.h>
53-#include <EGL/eglext.h>
54-#include <EGL/eglmesaext.h>"
55+dnl Test for the existence of egl headers.
56+dnl egl*.h includes eglplatform.h which on __unix__ defaults to a X11 platform.
57+dnl In that case AC_CHECK_HEADERS failes if X11 headers are not available.
58+dnl Set the usual include guard define and, if the EGL implementation doesn't
59+dnl use that guard fall back to USE_OZONE and EGL_NO_X11 platforms which don't
60+dnl require additional headers.
61+ AC_CHECK_HEADERS(
62+ [EGL/egl.h],
63+ [COGL_EGL_INCLUDES="#include <EGL/egl.h>"],
64+ [AC_MSG_ERROR([Unable to locate required EGL headers])],
65+ [#define __egl_h_
66+ #define USE_OZONE
67+ #define EGL_NO_X11])
68+ AC_CHECK_HEADERS(
69+ [EGL/eglext.h],
70+ [COGL_EGL_INCLUDES="$COGL_EGL_INCLUDES
71+#include <EGL/eglext.h>"],
72+ [AC_MSG_ERROR([Unable to locate required EGL headers])],
73+ [#define __eglext_h_
74+ #define USE_OZONE
75+ #define EGL_NO_X11
76+$COGL_EGL_INCLUDES])
77+ AC_CHECK_HEADERS(
78+ [EGL/eglmesaext.h],
79+ [COGL_EGL_INCLUDES="$COGL_EGL_INCLUDES
80+#include <EGL/eglmesaext.h>"],
81+ [],
82+ [#define __eglmesaext_h_
83+#define USE_OZONE
84+#define EGL_NO_X11
85+$COGL_EGL_INCLUDES])
86+
87 AC_SUBST([COGL_EGL_INCLUDES])
88 ])
89
90--
912.20.1
92
diff --git a/meta-gnome/recipes-graphics/cogl/cogl-1.0_1.22.8.bb b/meta-gnome/recipes-graphics/cogl/cogl-1.0_1.22.8.bb
new file mode 100644
index 000000000..b9446fab3
--- /dev/null
+++ b/meta-gnome/recipes-graphics/cogl/cogl-1.0_1.22.8.bb
@@ -0,0 +1,6 @@
1require cogl-1.0.inc
2
3SRC_URI += "file://0001-configure.ac-don-t-require-eglmesaext.h.patch"
4SRC_URI[archive.sha256sum] = "a805b2b019184710ff53d0496f9f0ce6dcca420c141a0f4f6fcc02131581d759"
5
6LIC_FILES_CHKSUM = "file://COPYING;md5=1b1a508d91d25ca607c83f92f3e31c84"
diff --git a/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb b/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
new file mode 100644
index 000000000..2e7b47dd4
--- /dev/null
+++ b/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
@@ -0,0 +1,22 @@
1#
2# Copyright (C) 2007 OpenedHand Ltd.
3#
4
5SUMMARY = "Clutter package groups"
6
7PR = "r6"
8
9inherit packagegroup features_check
10# rdepends on clutter-*
11REQUIRED_DISTRO_FEATURES = "opengl"
12
13PACKAGES = "\
14 ${PN}-core \
15 "
16
17SUMMARY_${PN}-core = "Clutter graphics library"
18RDEPENDS_${PN}-core = "\
19 clutter-1.0 \
20 clutter-gst-3.0 \
21 clutter-gtk-1.0 \
22 "