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 |
} |