diff options
Diffstat (limited to 'meta/recipes-graphics/waffle')
4 files changed, 90 insertions, 94 deletions
diff --git a/meta/recipes-graphics/waffle/waffle/0001-third_party-threads-Use-PTHREAD_MUTEX_RECURSIVE-by-d.patch b/meta/recipes-graphics/waffle/waffle/0001-third_party-threads-Use-PTHREAD_MUTEX_RECURSIVE-by-d.patch deleted file mode 100644 index a0c826ed93..0000000000 --- a/meta/recipes-graphics/waffle/waffle/0001-third_party-threads-Use-PTHREAD_MUTEX_RECURSIVE-by-d.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 3b9b8f5f6d1b99af43e95ec0868404e552a85b73 Mon Sep 17 00:00:00 2001 -From: Emil Velikov <emil.l.velikov@gmail.com> -Date: Thu, 19 Mar 2015 22:26:11 +0000 -Subject: [PATCH] third_party/threads: Use PTHREAD_MUTEX_RECURSIVE by default - -PTHREAD_MUTEX_RECURSIVE_NP was used for compatibility with old glibc. -Although due to the_GNU_SOURCES define the portable, -PTHREAD_MUTEX_RECURSIVE will be available for Linuxes since at least -1998. Simplify things giving us compatibility with musl which -apparently does not provide the non-portable define. - -Inspired by almost identical commit in mesa aead7fe2e2b(c11/threads: Use -PTHREAD_MUTEX_RECURSIVE by default) by Felix Janda. - -Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> -Reviewed-by: Chad Versace <chad.versace@intel.com> ---- -Upstream-Status: Backport - - third_party/threads/threads_posix.c | 10 ++++------ - 1 file changed, 4 insertions(+), 6 deletions(-) - -diff --git a/third_party/threads/threads_posix.c b/third_party/threads/threads_posix.c -index 5835e43..e122bf9 100644 ---- a/third_party/threads/threads_posix.c -+++ b/third_party/threads/threads_posix.c -@@ -26,6 +26,9 @@ - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ -+ -+#define _GNU_SOURCE -+ - #include <stdlib.h> - #ifndef assert - #include <assert.h> -@@ -150,13 +153,8 @@ int mtx_init(mtx_t *mtx, int type) - && type != (mtx_try|mtx_recursive)) - return thrd_error; - pthread_mutexattr_init(&attr); -- if ((type & mtx_recursive) != 0) { --#if defined(__linux__) || defined(__linux) -- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP); --#else -+ if ((type & mtx_recursive) != 0) - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); --#endif -- } - pthread_mutex_init(mtx, &attr); - pthread_mutexattr_destroy(&attr); - return thrd_success; --- -2.5.2 - diff --git a/meta/recipes-graphics/waffle/waffle/0001-waffle-do-not-make-core-protocol-into-the-library.patch b/meta/recipes-graphics/waffle/waffle/0001-waffle-do-not-make-core-protocol-into-the-library.patch new file mode 100644 index 0000000000..31ac3e0dd1 --- /dev/null +++ b/meta/recipes-graphics/waffle/waffle/0001-waffle-do-not-make-core-protocol-into-the-library.patch @@ -0,0 +1,40 @@ +From 79b9e4338f803d79449e53a40b1ecc0a5a5889e4 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Tue, 26 Oct 2021 08:52:17 +0200 +Subject: [PATCH] waffle: do not make core protocol into the library + +None of the consumers (which is just piglit) use it, and +this avoids host contamination from pkg-config suggesting +wayland.xml from the host. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + src/waffle/meson.build | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/src/waffle/meson.build b/src/waffle/meson.build +index 1cc99f6..022745a 100644 +--- a/src/waffle/meson.build ++++ b/src/waffle/meson.build +@@ -89,12 +89,6 @@ if build_surfaceless + endif + + if build_wayland +- wl_core_proto_c = custom_target( +- 'wl-core-proto.c', +- input: wayland_core_xml, +- output: 'wl-core-proto.c', +- command: [prog_wayland_scanner, 'private-code', '@INPUT@', '@OUTPUT@'], +- ) + wl_xdg_shell_proto_c = custom_target( + 'wl-xdg-shell-proto.c', + input: wayland_xdg_shell_xml, +@@ -115,7 +109,6 @@ if build_wayland + 'wayland/wayland_wrapper.c', + ) + files_libwaffle += [ +- wl_core_proto_c, + wl_xdg_shell_proto_c, + wl_xdg_shell_proto_h, + ] diff --git a/meta/recipes-graphics/waffle/waffle_1.5.2.bb b/meta/recipes-graphics/waffle/waffle_1.5.2.bb deleted file mode 100644 index a5179db1da..0000000000 --- a/meta/recipes-graphics/waffle/waffle_1.5.2.bb +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "cross-platform C library to defer selection of GL API and of window system" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4c5154407c2490750dd461c50ad94797 \ - file://include/waffle/waffle.h;endline=24;md5=61dbf8697f61c78645e75a93c585b1bf" - -SRC_URI = "http://waffle-gl.org/files/release/${BPN}-${PV}/${BPN}-${PV}.tar.xz \ - file://0001-third_party-threads-Use-PTHREAD_MUTEX_RECURSIVE-by-d.patch \ - " -SRC_URI[md5sum] = "c669c91bf2f7e13a5d781c3dbb30fd8c" -SRC_URI[sha256sum] = "d2c096cf654bf0061323a4b9231a1ef5b749a1e5c7c5bfe067e964219c2a851c" - -UPSTREAM_CHECK_URI = "http://www.waffle-gl.org/releases.html" - -inherit cmake distro_features_check lib_package - -# This should be overridden per-machine to reflect the capabilities of the GL -# stack. -PACKAGECONFIG ??= "glx" - -# libx11 requires x11 in DISTRO_FEATURES. -REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'glx', 'x11', '', d)}" - -# virtual/libgl requires opengl in DISTRO_FEATURES. -REQUIRED_DISTRO_FEATURES += "${@bb.utils.contains('DEPENDS', 'virtual/${MLPREFIX}libgl', 'opengl', '', d)}" - -# I say virtual/libgl, actually wants gl.pc -PACKAGECONFIG[glx] = "-Dwaffle_has_glx=1,-Dwaffle_has_glx=0,virtual/${MLPREFIX}libgl libx11" - -# I say virtual/libgl, actually wants wayland-egl.pc, egl.pc, and the wayland -# DISTRO_FEATURE. -PACKAGECONFIG[wayland] = "-Dwaffle_has_wayland=1,-Dwaffle_has_wayland=0,virtual/${MLPREFIX}libgl wayland" - -# I say virtual/libgl, actually wants gbm.pc egl.pc -PACKAGECONFIG[gbm] = "-Dwaffle_has_gbm=1,-Dwaffle_has_gbm=0,virtual/${MLPREFIX}libgl udev" - -# I say virtual/libgl, actually wants egl.pc -PACKAGECONFIG[x11-egl] = "-Dwaffle_has_x11_egl=1,-Dwaffle_has_x11_egl=0,virtual/${MLPREFIX}libgl libxcb" - -FILES_${PN}-dev += "${datadir}/cmake/Modules/FindWaffle.cmake \ - ${libdir}/cmake/Waffle/" diff --git a/meta/recipes-graphics/waffle/waffle_1.8.0.bb b/meta/recipes-graphics/waffle/waffle_1.8.0.bb new file mode 100644 index 0000000000..ad8649b40e --- /dev/null +++ b/meta/recipes-graphics/waffle/waffle_1.8.0.bb @@ -0,0 +1,50 @@ +SUMMARY = "A C library for selecting an OpenGL API and window system at runtime" +DESCRIPTION = "A cross-platform C library that allows one to defer selection \ +of an OpenGL API and window system until runtime. For example, on Linux, Waffle \ +enables an application to select X11/EGL with an OpenGL 3.3 core profile, \ +Wayland with OpenGL ES2, and other window system / API combinations." +HOMEPAGE = "https://gitlab.freedesktop.org/mesa/waffle" +BUGTRACKER = "https://gitlab.freedesktop.org/mesa/waffle" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4c5154407c2490750dd461c50ad94797 \ + file://include/waffle-1/waffle.h;endline=24;md5=61dbf8697f61c78645e75a93c585b1bf" + +SRC_URI = "git://gitlab.freedesktop.org/mesa/waffle.git;protocol=https;branch=master \ + file://0001-waffle-do-not-make-core-protocol-into-the-library.patch \ + " +SRCREV = "580b912a30085528886603942c100c7b309b3bdb" +S = "${WORKDIR}/git" + +inherit meson features_check lib_package bash-completion pkgconfig + +DEPENDS:append = " python3" + +# This should be overridden per-machine to reflect the capabilities of the GL +# stack. +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11-egl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gbm surfaceless-egl', '', d)} \ +" + +# virtual/libgl requires opengl in DISTRO_FEATURES. +REQUIRED_DISTRO_FEATURES += "${@bb.utils.contains('DEPENDS', 'virtual/${MLPREFIX}libgl', 'opengl', '', d)}" + +# I say virtual/libgl, actually wants gl.pc +PACKAGECONFIG[glx] = "-Dglx=enabled,-Dglx=disabled,virtual/${MLPREFIX}libgl libx11" + +# wants wayland-egl.pc, egl.pc, and the wayland +# DISTRO_FEATURE. +PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,virtual/${MLPREFIX}egl wayland wayland-native wayland-protocols" + +# wants gbm.pc egl.pc +PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled,virtual/${MLPREFIX}egl virtual/${MLPREFIX}libgbm libdrm" + +# wants egl.pc +PACKAGECONFIG[x11-egl] = "-Dx11_egl=enabled,-Dx11_egl=disabled,virtual/${MLPREFIX}egl libxcb" +PACKAGECONFIG[surfaceless-egl] = "-Dsurfaceless_egl=enabled,-Dsurfaceless_egl=disabled,virtual/${MLPREFIX}egl" + +# TODO: optionally build manpages and examples + +do_install:append() { + rm -rf ${D}${datadir}/zsh +} |