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