Gentoo Archives: gentoo-commits

From: Matt Turner <mattst88@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-apps/mesa-progs/, x11-apps/mesa-progs/files/
Date: Mon, 30 May 2022 17:25:21
Message-Id: 1653931499.579a702668e5ce1e81586c7f5596814e89cb70b5.mattst88@gentoo
1 commit: 579a702668e5ce1e81586c7f5596814e89cb70b5
2 Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
3 AuthorDate: Mon May 30 16:03:09 2022 +0000
4 Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
5 CommitDate: Mon May 30 17:24:59 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=579a7026
7
8 x11-apps/mesa-progs: Switch to meson
9
10 Closes: https://bugs.gentoo.org/845072
11 Co-authored-by: Mike Lothian <mike <AT> fireburn.co.uk>
12 Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
13
14 .../files/8.5.0-Disable-things-we-don-t-want.patch | 254 +++++++++++++++++++++
15 x11-apps/mesa-progs/mesa-progs-9999.ebuild | 91 ++++----
16 2 files changed, 304 insertions(+), 41 deletions(-)
17
18 diff --git a/x11-apps/mesa-progs/files/8.5.0-Disable-things-we-don-t-want.patch b/x11-apps/mesa-progs/files/8.5.0-Disable-things-we-don-t-want.patch
19 new file mode 100644
20 index 000000000000..666f568e461f
21 --- /dev/null
22 +++ b/x11-apps/mesa-progs/files/8.5.0-Disable-things-we-don-t-want.patch
23 @@ -0,0 +1,254 @@
24 +From caa6f31f1032f21756ab327429702feb4381045e Mon Sep 17 00:00:00 2001
25 +From: Matt Turner <mattst88@×××××.com>
26 +Date: Mon, 30 May 2022 12:16:24 -0400
27 +Subject: [PATCH] Disable things we don't want
28 +
29 +---
30 + meson.build | 11 +++--------
31 + src/egl/opengl/meson.build | 29 ----------------------------
32 + src/egl/opengles2/meson.build | 5 -----
33 + src/glad/meson.build | 17 -----------------
34 + src/meson.build | 2 --
35 + src/util/gl_wrap.h | 2 --
36 + src/util/meson.build | 20 -------------------
37 + src/xdemos/meson.build | 36 -----------------------------------
38 + 8 files changed, 3 insertions(+), 119 deletions(-)
39 +
40 +diff --git a/meson.build b/meson.build
41 +index e1968fab..9d59c1ec 100644
42 +--- a/meson.build
43 ++++ b/meson.build
44 +@@ -75,14 +75,7 @@ endif
45 +
46 + dep_threads = dependency('threads')
47 +
48 +-dep_glu = dependency('glu', required : dep_x11.found())
49 +-if not dep_glu.found()
50 +- _glu_name = 'GLU'
51 +- if host_machine.system() == 'windows'
52 +- _glu_name = 'glu32'
53 +- endif
54 +- dep_glu = cc.find_library(_glu_name, has_headers: 'GL/glu.h')
55 +-endif
56 ++dep_glu = disabler()
57 +
58 + # GBM is needed for EGL on KMS
59 + dep_gbm = dependency('gbm', required : false, disabler : true)
60 +@@ -117,6 +110,8 @@ else
61 + )
62 + endif
63 +
64 ++dep_glut = disabler()
65 ++
66 + if dep_glut.found() and cc.has_function('glutInitContextProfile',
67 + include_directories: glut_incdir,
68 + prefix : '#include <GL/freeglut.h>')
69 +diff --git a/src/egl/opengl/meson.build b/src/egl/opengl/meson.build
70 +index ba7cadc3..789b25a5 100644
71 +--- a/src/egl/opengl/meson.build
72 ++++ b/src/egl/opengl/meson.build
73 +@@ -4,41 +4,12 @@ executable(
74 + 'eglgears_x11', files('eglgears.c'),
75 + dependencies: [_deps, idep_eglut_x11]
76 + )
77 +-executable(
78 +- 'egltri_x11', files('egltri.c'),
79 +- dependencies: [_deps, idep_eglut_x11]
80 +-)
81 +-executable(
82 +- 'xeglgears', files('xeglgears.c'),
83 +- dependencies: [_deps, dep_egl, dep_x11]
84 +-)
85 +-executable(
86 +- 'xeglthreads', files('xeglthreads.c'),
87 +- dependencies: [_deps, dep_x11]
88 +-)
89 +-
90 + executable(
91 + 'eglgears_wayland', files('eglgears.c'),
92 + dependencies: [_deps, idep_eglut_wayland]
93 + )
94 +-executable(
95 +- 'egltri_wayland', files('egltri.c'),
96 +- dependencies: [_deps, idep_eglut_wayland]
97 +-)
98 +-
99 +-executable(
100 +- 'eglkms', 'eglkms.c',
101 +- dependencies: [_deps, dep_drm, dep_gbm, dep_egl]
102 +-)
103 +-
104 + executable(
105 + 'eglinfo', 'eglinfo.c',
106 + dependencies: [dep_egl],
107 + install: true
108 + )
109 +-
110 +-executable(
111 +- 'peglgears', 'peglgears.c',
112 +- dependencies: [dep_gl, dep_egl, dep_m, idep_util]
113 +-)
114 +-
115 +diff --git a/src/egl/opengles2/meson.build b/src/egl/opengles2/meson.build
116 +index 59f69ed7..7137a961 100644
117 +--- a/src/egl/opengles2/meson.build
118 ++++ b/src/egl/opengles2/meson.build
119 +@@ -9,11 +9,6 @@ executable(
120 + dependencies: [dep_gles2, idep_eglut_x11, dep_m],
121 + install: true
122 + )
123 +-executable(
124 +- 'es2tri', files('es2tri.c'),
125 +- dependencies: [_deps_x11, dep_m],
126 +- install: true
127 +-)
128 + executable(
129 + 'es2gears_wayland', files('es2gears.c'),
130 + dependencies: [dep_gles2, idep_eglut_wayland, dep_m],
131 +diff --git a/src/glad/meson.build b/src/glad/meson.build
132 +index 2d107609..23dacd45 100644
133 +--- a/src/glad/meson.build
134 ++++ b/src/glad/meson.build
135 +@@ -19,20 +19,3 @@
136 + # SOFTWARE.
137 +
138 + inc_glad = include_directories('include')
139 +-
140 +-_libglad_files = files('src/glad.c')
141 +-if host_machine.system() == 'windows'
142 +- _libglad_files += files('src/glad_wgl.c')
143 +-endif
144 +-
145 +-_libglad = static_library(
146 +- 'glad',
147 +- _libglad_files,
148 +- include_directories: inc_glad
149 +-)
150 +-
151 +-idep_glad = declare_dependency(
152 +- link_with: _libglad,
153 +- dependencies: dep_dl,
154 +- include_directories: inc_glad,
155 +-)
156 +diff --git a/src/meson.build b/src/meson.build
157 +index 39cac78d..4d4abbf8 100644
158 +--- a/src/meson.build
159 ++++ b/src/meson.build
160 +@@ -55,5 +55,3 @@ endif
161 + if host_machine.system() == 'windows'
162 + subdir('wgl')
163 + endif
164 +-
165 +-subdir('data')
166 +diff --git a/src/util/gl_wrap.h b/src/util/gl_wrap.h
167 +index b2ff9c8f..f482df5e 100644
168 +--- a/src/util/gl_wrap.h
169 ++++ b/src/util/gl_wrap.h
170 +@@ -7,10 +7,8 @@
171 +
172 + #ifdef __APPLE__
173 + # include <OpenGL/gl.h>
174 +-# include <OpenGL/glu.h>
175 + #else
176 + # include <GL/gl.h>
177 +-# include <GL/glu.h>
178 + #endif
179 +
180 + #ifndef GLAPIENTRY
181 +diff --git a/src/util/meson.build b/src/util/meson.build
182 +index 9168aecf..066073cc 100644
183 +--- a/src/util/meson.build
184 ++++ b/src/util/meson.build
185 +@@ -20,26 +20,6 @@
186 +
187 + inc_util = include_directories('.')
188 +
189 +-files_libutil = files(
190 +- 'readtex.c',
191 +- 'showbuffer.c',
192 +- 'trackball.c',
193 +-)
194 +-
195 +-_deps = []
196 +-if dep_glut.found()
197 +- files_libutil += files('shaderutil.c')
198 +- _deps += dep_glut
199 +-endif
200 +-
201 +-_libutil = static_library(
202 +- 'util',
203 +- files_libutil,
204 +- include_directories: inc_glad,
205 +- dependencies: _deps,
206 +-)
207 +-
208 + idep_util = declare_dependency(
209 +- link_with: _libutil,
210 + include_directories: inc_util,
211 + )
212 +diff --git a/src/xdemos/meson.build b/src/xdemos/meson.build
213 +index d6d5d5d5..ce26699f 100644
214 +--- a/src/xdemos/meson.build
215 ++++ b/src/xdemos/meson.build
216 +@@ -21,25 +21,7 @@
217 + glx_deps = [dep_gl, dep_x11, dep_m]
218 +
219 + progs = [
220 +- 'glsync',
221 +- 'glxdemo',
222 + 'glxgears',
223 +- 'glxgears_pixmap',
224 +- 'glxcontexts',
225 +- 'glxheads',
226 +- 'glxpixmap',
227 +- 'glxpbdemo',
228 +- 'glxsnoop',
229 +- 'glxswapcontrol',
230 +- 'manywin',
231 +- 'multictx',
232 +- 'offset',
233 +- 'overlay',
234 +- 'shape',
235 +- 'sharedtex',
236 +- 'texture_from_pixmap',
237 +- 'wincopy',
238 +- 'xfont',
239 + ]
240 + foreach p : progs
241 + executable(
242 +@@ -56,23 +38,7 @@ executable(
243 + install: true
244 + )
245 +
246 +-executable(
247 +- 'xrotfontdemo',
248 +- files('xrotfontdemo.c', 'xuserotfont.c'),
249 +- dependencies: glx_deps,
250 +- install: true
251 +-)
252 +-
253 +-_libpbutil = static_library(
254 +- 'pbutil',
255 +- files('pbutil.c'),
256 +- dependencies: glx_deps
257 +-)
258 +-
259 + pbutil_progs = [
260 +- 'glxgears_fbconfig',
261 +- 'pbinfo',
262 +- 'pbdemo',
263 + ]
264 + foreach p : pbutil_progs
265 + executable(
266 +@@ -84,8 +50,6 @@ foreach p : pbutil_progs
267 + endforeach
268 +
269 + thread_progs = [
270 +- 'glthreads',
271 +- 'sharedtex_mt',
272 + ]
273 + foreach p : thread_progs
274 + executable(
275 +--
276 +2.35.1
277 +
278
279 diff --git a/x11-apps/mesa-progs/mesa-progs-9999.ebuild b/x11-apps/mesa-progs/mesa-progs-9999.ebuild
280 index ac2f9b7db41f..0de99d7b802b 100644
281 --- a/x11-apps/mesa-progs/mesa-progs-9999.ebuild
282 +++ b/x11-apps/mesa-progs/mesa-progs-9999.ebuild
283 @@ -1,7 +1,9 @@
284 -# Copyright 1999-2021 Gentoo Authors
285 +# Copyright 1999-2022 Gentoo Authors
286 # Distributed under the terms of the GNU General Public License v2
287
288 -EAPI=7
289 +EAPI=8
290 +
291 +inherit meson-multilib
292
293 MY_PN="${PN/progs/demos}"
294 MY_P="${MY_PN}-${PV}"
295 @@ -9,10 +11,8 @@ MY_P="${MY_PN}-${PV}"
296 DESCRIPTION="Mesa's OpenGL utility and demo programs (glxgears and glxinfo)"
297 HOMEPAGE="https://www.mesa3d.org/ https://mesa.freedesktop.org/ https://gitlab.freedesktop.org/mesa/demos"
298 if [[ ${PV} = 9999* ]]; then
299 - inherit autotools git-r3
300 + inherit git-r3
301 EGIT_REPO_URI="https://gitlab.freedesktop.org/mesa/demos.git"
302 - EGIT_CHECKOUT_DIR="${S}"
303 - EXPERIMENTAL="true"
304 else
305 SRC_URI="https://mesa.freedesktop.org/archive/demos/${MY_P}.tar.bz2
306 https://mesa.freedesktop.org/archive/demos/${PV}/${MY_P}.tar.bz2"
307 @@ -21,49 +21,58 @@ else
308 fi
309 LICENSE="LGPL-2"
310 SLOT="0"
311 -IUSE="egl gles2"
312 +IUSE="gles2 wayland X"
313
314 RDEPEND="
315 - media-libs/mesa[egl(+)?,gles2?]
316 - virtual/opengl
317 - x11-libs/libX11"
318 + media-libs/mesa[${MULTILIB_USEDEP},egl(+),gles2?,wayland?,X?]
319 + wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
320 + X? (
321 + x11-libs/libX11[${MULTILIB_USEDEP}]
322 + x11-libs/libXext[${MULTILIB_USEDEP}]
323 + )
324 +"
325 DEPEND="${RDEPEND}
326 - virtual/glu
327 - x11-base/xorg-proto"
328 -BDEPEND="sys-apps/grep
329 - sys-apps/file"
330 + wayland? ( >=dev-libs/wayland-protocols-1.12 )
331 + X? ( x11-base/xorg-proto )
332 +"
333 +BDEPEND="
334 + virtual/pkgconfig
335 + wayland? ( dev-util/wayland-scanner )
336 +"
337
338 -src_prepare() {
339 - default
340 - [[ ${PV} = 9999* ]] && eautoreconf
341 -}
342 +PATCHES=(
343 + "${FILESDIR}"/8.5.0-Disable-things-we-don-t-want.patch
344 +)
345
346 -src_compile() {
347 - emake -C src/glad libglad.la
348 - emake -C src/xdemos glxgears glxinfo
349 +pkg_setup() {
350 + MULTILIB_CHOST_TOOLS+=(
351 + /usr/bin/eglinfo
352 + )
353
354 - if use egl; then
355 - emake LDLIBS="-lEGL" -C src/egl/opengl/ eglinfo
356 - emake -C src/egl/eglut/ libeglut_x11.la
357 - emake LDLIBS="-lGL -lEGL -lX11 -lm" -C src/egl/opengl/ eglgears_x11
358 + use X && MULTILIB_CHOST_TOOLS+=(
359 + /usr/bin/glxgears
360 + /usr/bin/glxinfo
361 + )
362
363 - if use gles2; then
364 - emake LDLIBS="-lGLESv2 -lEGL -lX11" -C src/egl/opengles2/ es2_info
365 - emake LDLIBS="-lGLESv2 -lEGL -lX11 -lm" -C src/egl/opengles2/ es2gears_x11
366 - fi
367 - fi
368 -}
369 + use gles2 && use X && MULTILIB_CHOST_TOOLS+=(
370 + /usr/bin/es2_info
371 + /usr/bin/es2gears_x11
372 + )
373
374 -src_install() {
375 - local demo='src/xdemos'
376 - if use egl; then
377 - demo="${demo} src/egl/opengl"
378 -
379 - use gles2 && demo="${demo} src/egl/opengles2"
380 - fi
381 + use gles2 && use wayland && MULTILIB_CHOST_TOOLS+=(
382 + /usr/bin/es2gears_wayland
383 + )
384 +}
385
386 - # Ensure only the binaries are installed and not a similarly named wrapper script
387 - find ${demo} -type f -print0 |
388 - xargs -0 file | grep executable | grep ELF | cut -f 1 -d : |
389 - xargs -I '{}' dobin '{}' || die
390 +multilib_src_configure() {
391 + local emesonargs=(
392 + -Dlibdrm=disabled
393 + -Degl=enabled
394 + -Dgles1=disabled
395 + $(meson_feature gles2)
396 + -Dosmesa=disabled
397 + $(meson_feature wayland)
398 + $(meson_feature X x11)
399 + )
400 + meson_src_configure
401 }