buildroot/package/mesa3d-demos/0001-demos-makes-opengl-an-...

113 lines
3.4 KiB
Diff

From 5b45f98255b74589015d5cb0d8ca31d7169c9f34 Mon Sep 17 00:00:00 2001
From: Julien Olivain <ju.o@free.fr>
Date: Fri, 16 Sep 2022 22:30:59 +0200
Subject: [PATCH] demos: makes opengl an optional component
This patch is a port of [1] for the new meson build system.
matrix-code from es2gears has been moved to util in version 9.0.0 [2]
so now es2gears is linked with mesa3d-demo libutil (idep_util).
But at the same time the dependency on glu (dep_glu) has been added
to libutil [3]. dep_glu requires opengl (FULL_GL) to build.
In order to keep the es2gears for egl only builds we have to
split the libutil files list to build readtex.c and showbuffer.c
only if opengl is available.
Add back dep_glu since it's used in util's meson.
Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/4936948236
https://gitlab.com/buildroot.org/buildroot/-/jobs/4936948042
[1].
https://git.busybox.net/buildroot/tree/package/mesa3d-demos/0001-demos-makes-opengl-an-optional-component.patch?h=2022.08
[2] https://gitlab.freedesktop.org/mesa/demos/-/commit/c33e2f731c2eab86bbad7b6a028f8a90ea40a00c
[3] https://gitlab.freedesktop.org/mesa/demos/-/commit/ef24aae22978d4d357340074ca9a1c04d9cf81e6
Signed-off-by: Julien Olivain <ju.o@free.fr>
[Bernd: rebased for version 9.0.0]
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
[Romain: fix egl only builds in util]
Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
meson.build | 5 ++++-
meson_options.txt | 1 +
src/egl/meson.build | 5 ++++-
src/util/meson.build | 12 +++++++++---
4 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/meson.build b/meson.build
index 3e39b5a2..f27e1a18 100644
--- a/meson.build
+++ b/meson.build
@@ -39,7 +39,10 @@ add_project_arguments(
dep_m = cc.find_library('m', required : false)
dep_winmm = cc.find_library('winmm', required : false)
-dep_gl = dependency('gl')
+dep_gl = dependency('gl', required : get_option('gl'))
+if not dep_gl.found()
+ add_project_arguments('-DEGL_NO_X11=1', language: 'c')
+endif
dep_epoll = dependency('epoll-shim', required : false)
dep_gles1 = dependency('glesv1_cm', required : get_option('gles1'))
diff --git a/meson_options.txt b/meson_options.txt
index 832b916a..c954a710 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,5 +1,6 @@
option('with-glut', type : 'string')
option('egl', type : 'feature')
+option('gl', type : 'feature')
option('gles1', type : 'feature')
option('gles2', type : 'feature')
option('glut', type : 'feature')
diff --git a/src/egl/meson.build b/src/egl/meson.build
index d1846921..42bf8ecd 100644
--- a/src/egl/meson.build
+++ b/src/egl/meson.build
@@ -19,7 +19,10 @@
# SOFTWARE.
subdir('eglut')
-subdir('opengl')
+
+if dep_gl.found()
+ subdir('opengl')
+endif
if dep_gles1.found()
subdir('opengles1')
diff --git a/src/util/meson.build b/src/util/meson.build
index b4fe614f..4420f28a 100644
--- a/src/util/meson.build
+++ b/src/util/meson.build
@@ -22,13 +22,19 @@ inc_util = include_directories('.')
files_libutil = files(
'glinfo_common.c',
- 'readtex.c',
- 'showbuffer.c',
'trackball.c',
'matrix.c',
)
-_deps = [dep_glu, dep_m]
+_deps = [dep_m]
+if dep_gl.found()
+ files_libutil += files(
+ 'readtex.c',
+ 'showbuffer.c',
+ )
+ _deps += dep_glu
+endif
+
if dep_glut.found()
files_libutil += files('shaderutil.c')
_deps += dep_glut
--
2.41.0