mesa-demos: fix detection of GLX headers

Backport a patch from upstream to fix the build when glx.pc isn't found,
but the glx headers are available. As libglvnd is the only provider of
glx.pc and by default we build without libglvnd, this is common.

This solves the problem where mesa-demo is missing the GLX demos, such
as glxgears.

[ YOCTO #15825 ]

(From OE-Core rev: 764765e48ff02e412944bdca8885fb30ea0cbb76)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton 2025-04-14 20:22:10 +01:00 committed by Richard Purdie
parent 9d0d16c667
commit 434a9f89d0
2 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,46 @@
From e16117fc92688d76a042ad2c590c77d5a987a4ac Mon Sep 17 00:00:00 2001
From: Erik Faye-Lund <erik.faye-lund@collabora.com>
Date: Fri, 24 Mar 2023 13:31:58 +0100
Subject: [PATCH] meson: fix glx-detection without glvnd
When build without GLVND, Mesa provides GLX as a part of libGL, just
like XQuartz does on MacOS. There's nothing really macOS specific about
this fallback, so let's drop the condition.
And just for good measure, let's add in dep_gl as a dependency for
the header-check here, in case some one decides to install libGL outside
of the default include directory.
Fixes: 34300551 ("meson: explicitly check for glx dependency")
Closes: https://gitlab.freedesktop.org/mesa/demos/-/issues/36
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
meson.build | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/meson.build b/meson.build
index c1853f94..bc3278e1 100644
--- a/meson.build
+++ b/meson.build
@@ -99,10 +99,11 @@ if not dep_glu.found() and host_machine.system() != 'darwin'
endif
dep_glx = dependency('glx', required: false, disabler : true)
-if not dep_glx.found() and host_machine.system() == 'darwin'
- # xquartz doesn't have a glx.pc, but it does have the header. And all the
- # symbols reside in libGL, so let's just use that.
- if cc.check_header('GL/glx.h', dependencies: dep_x11)
+if not dep_glx.found()
+ # Both Mesa build without GLVND and XQuartz lacks a glx.pc, but does
+ # provide the header. And all the symbols reside in libGL, so let's
+ # just use that.
+ if cc.check_header('GL/glx.h', dependencies: [dep_x11, dep_gl])
dep_glx = dep_gl
endif
endif
--
2.43.0

View File

@ -10,6 +10,7 @@ LIC_FILES_CHKSUM = "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=9142
file://src/xdemos/glxdemo.c;beginline=1;endline=8;md5=b01d5ab1aee94d35b7efaa2ef48e1a06"
SRC_URI = "https://archive.mesa3d.org/demos/${BPN}-${PV}.tar.xz \
file://0001-meson-fix-glx-detection-without-glvnd.patch \
"
SRC_URI[sha256sum] = "3046a3d26a7b051af7ebdd257a5f23bfeb160cad6ed952329cdff1e9f1ed496b"