diff options
author | Ross Burton <ross@burtonini.com> | 2021-05-26 15:36:04 +0100 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2021-05-28 06:55:33 -0700 |
commit | 4b6175892985a6016df1a38824ccbb5989f00b33 (patch) | |
tree | 32718c4c55dbaf254632068deb91db73d9a81373 /meta-gnome/recipes-graphics | |
parent | ba8309fbb7880b1a2782b43e7f8b203aab4d5c11 (diff) | |
download | meta-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')
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 @@ | |||
1 | SUMMARY = "Graphics library for creating hardware-accelerated user interfaces" | ||
2 | DESCRIPTION = "Clutter is an Open GL based interactive canvas library, \ | ||
3 | designed for creating fast, mainly 2D single window applications such as media \ | ||
4 | box UIs, presentations, kiosk style applications and so on." | ||
5 | HOMEPAGE = "http://www.clutter-project.org/" | ||
6 | LICENSE = "LGPLv2.1+" | ||
7 | |||
8 | inherit clutter ptest-gnome features_check upstream-version-is-even gobject-introspection | ||
9 | # depends on cogl-1.0 which needs opengl | ||
10 | REQUIRED_DISTRO_FEATURES ?= "opengl" | ||
11 | |||
12 | DEPENDS = "pango glib-2.0 json-glib atk udev cogl-1.0" | ||
13 | PACKAGE_BEFORE_PN += "${PN}-examples" | ||
14 | AUTOTOOLS_AUXDIR = "${S}/build-aux" | ||
15 | |||
16 | EDEPENDS_X11 = "virtual/libx11 libxi libxfixes" | ||
17 | EDEPENDS_GLX = "virtual/libgl" | ||
18 | EDEPENDS_EGL = "virtual/egl" | ||
19 | EDEPENDS_WAYLAND = "wayland libxkbcommon gdk-pixbuf" | ||
20 | |||
21 | EDEPENDS_EVDEV = "libxkbcommon" | ||
22 | ERDEPENDS_EVDEV = "xkeyboard-config" | ||
23 | |||
24 | # Disable pretty much everything, override in platform specific set up | ||
25 | EXTRA_OECONF += "--disable-quartz-backend \ | ||
26 | --disable-win32-backend \ | ||
27 | --disable-cex100-backend \ | ||
28 | --disable-tslib-input \ | ||
29 | " | ||
30 | |||
31 | PACKAGECONFIG[gdk] = "--enable-gdk-backend,--disable-gdk-backend,gtk+3" | ||
32 | PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,${EDEPENDS_X11}" | ||
33 | PACKAGECONFIG[glx] = ",,${EDEPENDS_X11} ${EDEPENDS_GLX}" | ||
34 | PACKAGECONFIG[egl] = "--enable-egl-backend,--disable-egl-backend,${EDEPENDS_EGL}" | ||
35 | PACKAGECONFIG[evdev] = "--enable-evdev-input,--disable-evdev-input,${EDEPENDS_EVDEV},${ERDEPENDS_EVDEV}" | ||
36 | PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,${EDEPENDS_WAYLAND}" | ||
37 | PACKAGECONFIG[wayland-compositor] = "--enable-wayland-compositor,--disable-wayland-compositor,wayland" | ||
38 | |||
39 | # Default configuration, distros might want to override | ||
40 | PACKAGECONFIG ??= "egl gdk \ | ||
41 | ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \ | ||
42 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11', '', d)}" | ||
43 | |||
44 | FILES_${PN}-examples = "${libdir}/clutter/examples" | ||
45 | |||
46 | do_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 @@ | |||
1 | From 3a0404dfbc65c6a864e01d1200a48074e19d5def Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Fri, 2 Sep 2016 14:28:38 +0300 | ||
4 | Subject: [PATCH] Remove clutter.types as it is build configuration-specific. | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | Signed-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 | |||
13 | diff --git a/doc/reference/clutter.types b/doc/reference/clutter.types | ||
14 | deleted file mode 100644 | ||
15 | index 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 | -- | ||
142 | 2.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 @@ | |||
1 | Install the examples to $libdir/clutter/. | ||
2 | |||
3 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
4 | Upstream-Status: Inappropriate | ||
5 | |||
6 | Index: 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 @@ | |||
1 | From d6ceb5a44b28e0e50ede22b84984d8516897de4b Mon Sep 17 00:00:00 2001 | ||
2 | From: Jussi Kukkonen <jussi.kukkonen@intel.com> | ||
3 | Date: Mon, 27 Apr 2015 20:12:33 +0300 | ||
4 | Subject: [PATCH] Run installed tests with tap output | ||
5 | |||
6 | Configure output from installed-tests to be TAP compliant such that | ||
7 | gnome-desktop-testing-runner properly interprets the results. | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | |||
11 | Signed-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 | |||
17 | diff --git a/build-aux/autotools/glib-tap.mk b/build-aux/autotools/glib-tap.mk | ||
18 | index 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 | |||
3 | gnome-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 @@ | |||
1 | require clutter-1.0.inc | ||
2 | |||
3 | LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" | ||
4 | |||
5 | SRC_URI[archive.md5sum] = "624dd776a5159de0267587b1df6b97b2" | ||
6 | SRC_URI[archive.sha256sum] = "8b48fac159843f556d0a6be3dbfc6b083fc6d9c58a20a49a6b4919ab4263c4e6" | ||
7 | SRC_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 @@ | |||
1 | SUMMARY = "GStreamer integration library for Clutter" | ||
2 | DESCRIPTION = "Clutter-Gst is an integration library for using GStreamer with Clutter. \ | ||
3 | It provides a GStreamer sink to upload frames to GL and an actor that \ | ||
4 | implements the ClutterGstPlayer interface using playbin." | ||
5 | HOMEPAGE = "http://www.clutter-project.org/" | ||
6 | BUGTRACKER = "https://gitlab.gnome.org/GNOME/clutter-gst/-/issues" | ||
7 | LICENSE = "LGPLv2+" | ||
8 | |||
9 | inherit clutter features_check upstream-version-is-even gobject-introspection | ||
10 | # depends on clutter-1.0 which depends on cogl-1.0 | ||
11 | REQUIRED_DISTRO_FEATURES ?= "opengl" | ||
12 | |||
13 | export GST_PLUGIN_SCANNER_1_0="${S}/gst-plugin-scanner-dummy" | ||
14 | |||
15 | SRC_URI += "file://0001-Install-example-binary-needed-for-core-image-clutter.patch" | ||
16 | |||
17 | DEPENDS = "gstreamer1.0-plugins-base gstreamer1.0-plugins-bad clutter-1.0 libgudev" | ||
18 | RDEPENDS_${PN} += "gstreamer1.0-meta-base" | ||
19 | PACKAGES =+ "${PN}-examples" | ||
20 | |||
21 | FILES_${PN} += "${libdir}/gstreamer-1.0/lib*.so" | ||
22 | FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" | ||
23 | FILES_${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 @@ | |||
1 | From d77c711277bf075ce0545c19b322f040c49c778a Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Thu, 30 Apr 2015 12:19:13 +0300 | ||
4 | Subject: [PATCH] Install example binary needed for core-image-clutter | ||
5 | |||
6 | Signed-off-by: Zhai Edwin <edwin.zhai@intel.com> | ||
7 | |||
8 | Upstream-Status: Inappropriate [configuration] | ||
9 | |||
10 | Imported from clutter-gst-1.8 package, git://git.openembedded.org/openembedded, | ||
11 | commit ae28ee3f7a060b9e0d13154a84f2444a98490b5b, updated for clutter-gst 3.0 | ||
12 | |||
13 | Signed-off-by: Tomas Frydrych <tomas@sleepfive.com> | ||
14 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
15 | --- | ||
16 | examples/Makefile.am | 2 +- | ||
17 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
18 | |||
19 | diff --git a/examples/Makefile.am b/examples/Makefile.am | ||
20 | index 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 | -- | ||
32 | 2.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 @@ | |||
1 | require clutter-gst-3.0.inc | ||
2 | |||
3 | LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ | ||
4 | file://clutter-gst/clutter-gst.h;beginline=1;endline=24;md5=95baacba194e814c110ea3bdf25ddbf4" | ||
5 | |||
6 | SRC_URI[archive.md5sum] = "2bf9d7ca146c9d71e86c45cd00e9a28e" | ||
7 | SRC_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 @@ | |||
1 | SUMMARY = "Library for embedding a Clutter canvas in a GTK+ application" | ||
2 | DESCRIPTION = "Clutter-GTK is a library providing facilities to integrate Clutter into GTK+ \ | ||
3 | applications and vice versa. It provides a GTK+ widget, GtkClutterEmbed, for embedding the \ | ||
4 | a Clutter stage into any GtkContainer; and GtkClutterActor, a Clutter \ | ||
5 | actor for embedding any GtkWidget inside a Clutter stage." | ||
6 | HOMEPAGE = "http://www.clutter-project.org/" | ||
7 | BUGTRACKER = "https://gitlab.gnome.org/GNOME/clutter/-/issues" | ||
8 | LICENSE = "LGPLv2+" | ||
9 | |||
10 | CLUTTERBASEBUILDCLASS = "meson" | ||
11 | inherit clutter features_check upstream-version-is-even gobject-introspection gtk-doc | ||
12 | |||
13 | # depends on clutter-1.0 which depends on cogl-1.0 | ||
14 | REQUIRED_DISTRO_FEATURES ?= "opengl" | ||
15 | # depends on gtk+3 | ||
16 | ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" | ||
17 | |||
18 | DEPENDS = "clutter-1.0 gtk+3" | ||
19 | PACKAGES =+ "${PN}-examples" | ||
20 | |||
21 | GTKDOC_MESON_OPTION = "enable_docs" | ||
22 | |||
23 | GIR_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 @@ | |||
1 | From 7233883c6bd4e80c0e91b29b5c76fe798023e9fe Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Mon, 11 Feb 2019 16:41:13 +0100 | ||
4 | Subject: [PATCH] Add a config variable for enabling/disabling introspection | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | Signed-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 | |||
13 | diff --git a/clutter-gtk/meson.build b/clutter-gtk/meson.build | ||
14 | index 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', | ||
26 | diff --git a/meson_options.txt b/meson_options.txt | ||
27 | index 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 @@ | |||
1 | require clutter-gtk-1.0.inc | ||
2 | |||
3 | LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" | ||
4 | |||
5 | SRC_URI += " file://0001-Add-a-config-variable-for-enabling-disabling-introsp.patch" | ||
6 | SRC_URI[archive.md5sum] = "b363ac9878e2337be887b8ee9e1da00e" | ||
7 | SRC_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 @@ | |||
1 | SUMMARY = "Modern 3D graphics API with associated utility APIs" | ||
2 | DESCRIPTION = "Cogl is a small open source library for using 3D graphics \ | ||
3 | hardware for rendering. The API departs from the flat state machine style of \ | ||
4 | OpenGL and is designed to make it easy to write orthogonal components that \ | ||
5 | can render without stepping on each others toes." | ||
6 | HOMEPAGE = "https://gitlab.gnome.org/GNOME/cogl" | ||
7 | LICENSE = "MIT" | ||
8 | |||
9 | inherit clutter features_check upstream-version-is-even gobject-introspection | ||
10 | # cogl-1.0 needs opengl to build | ||
11 | REQUIRED_DISTRO_FEATURES ?= "opengl" | ||
12 | |||
13 | DEPENDS = "glib-2.0 gdk-pixbuf" | ||
14 | PACKAGES =+ "${PN}-examples \ | ||
15 | libcogl libcogl-gles2 libcogl-pango libcogl-path \ | ||
16 | " | ||
17 | AUTOTOOLS_AUXDIR = "${S}/build" | ||
18 | |||
19 | # Extra DEPENDS for PACKAGECONFIG | ||
20 | EDEPENDS_GL = "virtual/libgl libdrm" | ||
21 | EDEPENDS_GLES2 = "virtual/libgles2" | ||
22 | EDEPENDS_KMS = "libdrm virtual/egl" | ||
23 | EDEPENDS_EGL = "virtual/egl" | ||
24 | EDEPENDS_X11 = "virtual/libx11 libxcomposite libxdamage libxfixes libxrandr" | ||
25 | EDEPENDS_WAYLAND = "virtual/egl virtual/libgles2 wayland" | ||
26 | |||
27 | # Extra RDEPENDS for PACKAGECONFIG | ||
28 | # This has to be explictly listed, because cogl dlopens the backends | ||
29 | ERDEPENDS_GL = "libgl" | ||
30 | ERDEPENDS_GLES2 = "libgles2" | ||
31 | |||
32 | # GLESv1 is rarely tested, so disable it | ||
33 | EXTRA_OECONF += "--enable-examples-install \ | ||
34 | --enable-debug \ | ||
35 | --disable-gles1 \ | ||
36 | --disable-cairo \ | ||
37 | " | ||
38 | DEBUG_OPTIMIZATION_append = " -Wno-error=maybe-uninitialized" | ||
39 | |||
40 | # OpenGL/GLX | ||
41 | PACKAGECONFIG[glx] = "--enable-gl --enable-glx,--disable-gl --disable-glx,${EDEPENDS_GL} ${EDEPENDS_X11},${ERDEPENDS_GL}" | ||
42 | |||
43 | # GLESv2 | ||
44 | PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,${EDEPENDS_GLES2}, ${ERDEPENDS_GLES2}" | ||
45 | |||
46 | # EGL backends | ||
47 | PACKAGECONFIG[egl-kms] = "--enable-kms-egl-platform,--disable-kms-egl-platform,${EDEPENDS_KMS}" | ||
48 | PACKAGECONFIG[egl-null] = "--enable-null-egl-platform,--disable-null-egl-platform" | ||
49 | PACKAGECONFIG[egl-x11] = "--enable-xlib-egl-platform,--disable-xlib-egl-platform,${EDEPENDS_X11} ${EDEPENDS_EGL}" | ||
50 | PACKAGECONFIG[egl-wayland] = "--enable-wayland-egl-platform,--disable-wayland-egl-platform,${EDEPENDS_WAYLAND}" | ||
51 | |||
52 | # Wayland (server-side) | ||
53 | PACKAGECONFIG[wayland-server] = "--enable-wayland-egl-server,--disable-wayland-egl-server,${EDEPENDS_WAYLAND}" | ||
54 | |||
55 | # Support rendering text directly with Pango | ||
56 | PACKAGECONFIG[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. | ||
60 | PACKAGECONFIG ??= "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 | |||
65 | do_compile_prepend() { | ||
66 | export GIR_EXTRA_LIBS_PATH="${B}/cogl/.libs" | ||
67 | } | ||
68 | |||
69 | FILES_${PN} = "" | ||
70 | FILES_${PN}-examples = "${bindir}/* ${datadir}/cogl/examples-data/*" | ||
71 | FILES_libcogl = "${libdir}/libcogl${SOLIBS} ${libdir}/girepository-1.0/Cogl-*.typelib" | ||
72 | FILES_libcogl-gles2 = "${libdir}/libcogl-gles2${SOLIBS}" | ||
73 | FILES_libcogl-pango = "${libdir}/libcogl-pango${SOLIBS} ${libdir}/girepository-1.0/CoglPango*.typelib" | ||
74 | |||
75 | FILES_libcogl-path = "${libdir}/libcogl-path${SOLIBS}" | ||
76 | |||
77 | # For backwards compatibility after Debian-renaming | ||
78 | RPROVIDES_libcogl = "cogl-1.0" | ||
79 | RCONFLICTS_libcogl = "cogl-1.0" | ||
80 | RREPLACES_libcogl = "cogl-1.0" | ||
81 | |||
82 | RDEPENDS_${PN}-dev = "libcogl" | ||
83 | |||
84 | COMPATIBLE_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 @@ | |||
1 | From bb9765a926588ebfe1eb324fbbe8fc22d419eebe Mon Sep 17 00:00:00 2001 | ||
2 | From: Max Krummenacher <max.krummenacher@toradex.com> | ||
3 | Date: Thu, 25 Jun 2020 11:27:40 +0000 | ||
4 | Subject: [PATCH] configure.ac: don't require eglmesaext.h | ||
5 | |||
6 | E.g. the Vivante EGL implementation does not provide eglmesaext.h. | ||
7 | |||
8 | The commit moves the check for header file existence outside of the | ||
9 | check for existence of a egl packageconfig and makes the existence | ||
10 | of eglmesaext.h optional. | ||
11 | |||
12 | fixes commit fb1acfec ("Fix building against libglvnd-provided EGL headers") | ||
13 | Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> | ||
14 | |||
15 | Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/28] | ||
16 | Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> | ||
17 | --- | ||
18 | configure.ac | 51 ++++++++++++++++++++++++++++++++------------------- | ||
19 | 1 file changed, 32 insertions(+), 19 deletions(-) | ||
20 | |||
21 | diff --git a/configure.ac b/configure.ac | ||
22 | index 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 | -- | ||
91 | 2.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 @@ | |||
1 | require cogl-1.0.inc | ||
2 | |||
3 | SRC_URI += "file://0001-configure.ac-don-t-require-eglmesaext.h.patch" | ||
4 | SRC_URI[archive.sha256sum] = "a805b2b019184710ff53d0496f9f0ce6dcca420c141a0f4f6fcc02131581d759" | ||
5 | |||
6 | LIC_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 | |||
5 | SUMMARY = "Clutter package groups" | ||
6 | |||
7 | PR = "r6" | ||
8 | |||
9 | inherit packagegroup features_check | ||
10 | # rdepends on clutter-* | ||
11 | REQUIRED_DISTRO_FEATURES = "opengl" | ||
12 | |||
13 | PACKAGES = "\ | ||
14 | ${PN}-core \ | ||
15 | " | ||
16 | |||
17 | SUMMARY_${PN}-core = "Clutter graphics library" | ||
18 | RDEPENDS_${PN}-core = "\ | ||
19 | clutter-1.0 \ | ||
20 | clutter-gst-3.0 \ | ||
21 | clutter-gtk-1.0 \ | ||
22 | " | ||