1 |
commit: fa7347842737646e51f9453c00b78f6d260e4f49 |
2 |
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Jun 29 12:34:36 2022 +0000 |
4 |
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Jun 29 17:22:36 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fa734784 |
7 |
|
8 |
games-emulation/mgba: re-arrange ebuild |
9 |
|
10 |
non-style changes: |
11 |
- enable tests |
12 |
- IUSE=qt5 -> gui |
13 |
- add IUSE=libretro |
14 |
- update LICENSE to be hopefully complete |
15 |
- disable markdown wrt bug #752048, all this does is automagic |
16 |
convert the installed *.md to html |
17 |
- require IUSE=opengl with gles2/gles3 for now wrt bug #835039, |
18 |
won't be needed next bump |
19 |
- enable lzma, bundled but no real reason to disable (+public-domain) |
20 |
- drop unused qtopengl (uses libglvnd directly) and add qtnetwork |
21 |
- use cmake_src_install, removes need for custom icons loop and |
22 |
installs intended files (including shaders, and headers) |
23 |
- add subslot for libmgba given next version has a soname change, |
24 |
better handle this now than when something will need it |
25 |
(dolphin could potentially use to unbundle, albeit may be unsuitable |
26 |
for current dolphin snapshots) |
27 |
|
28 |
Could likely still use more work for some features and maybe some force |
29 |
unbundling, but leaving alone for now unless there's a need to / user |
30 |
requests. |
31 |
|
32 |
Closes: https://bugs.gentoo.org/752048 |
33 |
Closes: https://bugs.gentoo.org/835039 |
34 |
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org> |
35 |
|
36 |
games-emulation/mgba/metadata.xml | 1 + |
37 |
games-emulation/mgba/mgba-0.9.3-r2.ebuild | 92 +++++++++++++++++++ |
38 |
games-emulation/mgba/mgba-9999.ebuild | 142 +++++++++++------------------- |
39 |
3 files changed, 146 insertions(+), 89 deletions(-) |
40 |
|
41 |
diff --git a/games-emulation/mgba/metadata.xml b/games-emulation/mgba/metadata.xml |
42 |
index e99f6fd576d4..9e784de51af0 100644 |
43 |
--- a/games-emulation/mgba/metadata.xml |
44 |
+++ b/games-emulation/mgba/metadata.xml |
45 |
@@ -10,6 +10,7 @@ |
46 |
<flag name="elf">Enable the use of elf utils via <pkg>dev-libs/elfutils</pkg></flag> |
47 |
<flag name="gles2">Build OpenGL ES 2.x RenderSystem</flag> |
48 |
<flag name="gles3">Build OpenGL ES 3.x RenderSystem</flag> |
49 |
+ <flag name="libretro">Build libretro port</flag> |
50 |
</use> |
51 |
<upstream> |
52 |
<remote-id type="github">mgba-emu/mgba</remote-id> |
53 |
|
54 |
diff --git a/games-emulation/mgba/mgba-0.9.3-r2.ebuild b/games-emulation/mgba/mgba-0.9.3-r2.ebuild |
55 |
new file mode 100644 |
56 |
index 000000000000..4d806f22f62f |
57 |
--- /dev/null |
58 |
+++ b/games-emulation/mgba/mgba-0.9.3-r2.ebuild |
59 |
@@ -0,0 +1,92 @@ |
60 |
+# Copyright 1999-2022 Gentoo Authors |
61 |
+# Distributed under the terms of the GNU General Public License v2 |
62 |
+ |
63 |
+EAPI=8 |
64 |
+ |
65 |
+inherit cmake xdg |
66 |
+ |
67 |
+if [[ ${PV} == 9999 ]] ; then |
68 |
+ inherit git-r3 |
69 |
+ EGIT_REPO_URI="https://github.com/mgba-emu/mgba.git" |
70 |
+else |
71 |
+ SRC_URI="https://github.com/mgba-emu/mgba/archive/${PV}.tar.gz -> ${P}.tar.gz" |
72 |
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" |
73 |
+fi |
74 |
+ |
75 |
+DESCRIPTION="Game Boy Advance Emulator" |
76 |
+HOMEPAGE="https://mgba.io/" |
77 |
+ |
78 |
+LICENSE="MPL-2.0 BSD LGPL-2.1+ public-domain discord? ( MIT )" |
79 |
+SLOT="0/9" |
80 |
+IUSE="debug discord elf ffmpeg gles2 gles3 gui libretro opengl +sdl sqlite test" |
81 |
+# gles2/gles3 opengl require can be lifted in next version (bug #835039) |
82 |
+REQUIRED_USE=" |
83 |
+ || ( gui sdl ) |
84 |
+ gles2? ( opengl ) |
85 |
+ gles3? ( opengl ) |
86 |
+ gui? ( || ( gles2 opengl ) )" |
87 |
+RESTRICT="!test? ( test )" |
88 |
+ |
89 |
+RDEPEND=" |
90 |
+ media-libs/libpng:= |
91 |
+ sys-libs/zlib:=[minizip] |
92 |
+ debug? ( dev-libs/libedit ) |
93 |
+ elf? ( dev-libs/elfutils ) |
94 |
+ ffmpeg? ( media-video/ffmpeg:= ) |
95 |
+ gles2? ( media-libs/libglvnd ) |
96 |
+ gles3? ( media-libs/libglvnd ) |
97 |
+ opengl? ( media-libs/libglvnd ) |
98 |
+ gui? ( |
99 |
+ dev-qt/qtcore:5 |
100 |
+ dev-qt/qtgui:5 |
101 |
+ dev-qt/qtmultimedia:5 |
102 |
+ dev-qt/qtnetwork:5 |
103 |
+ dev-qt/qtwidgets:5 |
104 |
+ ) |
105 |
+ sdl? ( media-libs/libsdl2[sound,joystick,opengl?,video] ) |
106 |
+ sqlite? ( dev-db/sqlite:3 )" |
107 |
+DEPEND=" |
108 |
+ ${RDEPEND} |
109 |
+ test? ( dev-util/cmocka )" |
110 |
+ |
111 |
+PATCHES=( |
112 |
+ "${FILESDIR}"/${P}-ffmpeg5.patch |
113 |
+) |
114 |
+ |
115 |
+src_configure() { |
116 |
+ local mycmakeargs=( |
117 |
+ -DBUILD_CINEMA=$(usex test) |
118 |
+ -DBUILD_GL=$(usex opengl) |
119 |
+ -DBUILD_GLES2=$(usex gles2) |
120 |
+ -DBUILD_GLES3=$(usex gles3) |
121 |
+ -DBUILD_LIBRETRO=$(usex libretro) |
122 |
+ -DBUILD_QT=$(usex gui) |
123 |
+ -DBUILD_SDL=$(usex sdl) |
124 |
+ -DBUILD_SUITE=$(usex test) |
125 |
+ -DMARKDOWN=OFF #752048 |
126 |
+ -DUSE_DEBUGGERS=$(usex debug) |
127 |
+ -DUSE_DISCORD_RPC=$(usex discord) |
128 |
+ -DUSE_EDITLINE=$(usex debug) |
129 |
+ -DUSE_ELF=$(usex elf) |
130 |
+ -DUSE_EPOXY=OFF |
131 |
+ -DUSE_FFMPEG=$(usex ffmpeg) |
132 |
+ -DUSE_GDB_STUB=$(usex debug) |
133 |
+ -DUSE_LIBZIP=OFF |
134 |
+ -DUSE_LZMA=ON |
135 |
+ -DUSE_MINIZIP=ON |
136 |
+ -DUSE_PNG=ON |
137 |
+ -DUSE_SQLITE3=$(usex sqlite) |
138 |
+ -DUSE_ZLIB=ON |
139 |
+ $(usev libretro -DLIBRETRO_LIBDIR="${EPREFIX}"/usr/$(get_libdir)/libretro) |
140 |
+ ) |
141 |
+ |
142 |
+ cmake_src_configure |
143 |
+} |
144 |
+ |
145 |
+src_install() { |
146 |
+ cmake_src_install |
147 |
+ |
148 |
+ use !test || rm "${ED}"/usr/bin/mgba-cinema || die |
149 |
+ |
150 |
+ rm -r "${ED}"/usr/share/doc/${PF}/{LICENSE,licenses} || die |
151 |
+} |
152 |
|
153 |
diff --git a/games-emulation/mgba/mgba-9999.ebuild b/games-emulation/mgba/mgba-9999.ebuild |
154 |
index bfc1bea7e039..76e7916549ff 100644 |
155 |
--- a/games-emulation/mgba/mgba-9999.ebuild |
156 |
+++ b/games-emulation/mgba/mgba-9999.ebuild |
157 |
@@ -3,126 +3,90 @@ |
158 |
|
159 |
EAPI=8 |
160 |
|
161 |
-inherit cmake desktop xdg |
162 |
+inherit cmake xdg |
163 |
|
164 |
-DESCRIPTION="Game Boy Advance emulator written in C" |
165 |
-HOMEPAGE="https://mgba.io" |
166 |
-if [[ "${PV}" == 9999 ]] ; then |
167 |
+if [[ ${PV} == 9999 ]] ; then |
168 |
inherit git-r3 |
169 |
EGIT_REPO_URI="https://github.com/mgba-emu/mgba.git" |
170 |
else |
171 |
- MY_PV="${PV/_beta/-b}" |
172 |
- SRC_URI="https://github.com/${PN}-emu/${PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz" |
173 |
- [[ "${PV}" == *_beta* ]] || \ |
174 |
- KEYWORDS="~amd64 ~arm64 ~x86" |
175 |
- S="${WORKDIR}/${PN}-${MY_PV}" |
176 |
+ SRC_URI="https://github.com/mgba-emu/mgba/archive/${PV}.tar.gz -> ${P}.tar.gz" |
177 |
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" |
178 |
fi |
179 |
-LICENSE="MPL-2.0" |
180 |
-SLOT="0" |
181 |
-IUSE="debug discord elf ffmpeg gles2 gles3 opengl qt5 +sdl sqlite" |
182 |
-REQUIRED_USE="|| ( qt5 sdl ) |
183 |
- qt5? ( opengl )" |
184 |
+ |
185 |
+DESCRIPTION="Game Boy Advance Emulator" |
186 |
+HOMEPAGE="https://mgba.io/" |
187 |
+ |
188 |
+LICENSE="MPL-2.0 BSD LGPL-2.1+ public-domain discord? ( MIT )" |
189 |
+SLOT="0/10" |
190 |
+IUSE="debug discord elf ffmpeg gles2 gles3 gui libretro opengl +sdl sqlite test" |
191 |
+REQUIRED_USE=" |
192 |
+ || ( gui sdl ) |
193 |
+ gui? ( || ( gles2 gles3 opengl ) )" |
194 |
+RESTRICT="!test? ( test )" |
195 |
|
196 |
RDEPEND=" |
197 |
- media-libs/libpng:0= |
198 |
- sys-libs/zlib[minizip] |
199 |
+ media-libs/libpng:= |
200 |
+ sys-libs/zlib:=[minizip] |
201 |
debug? ( dev-libs/libedit ) |
202 |
elf? ( dev-libs/elfutils ) |
203 |
ffmpeg? ( media-video/ffmpeg:= ) |
204 |
+ gles2? ( media-libs/libglvnd ) |
205 |
+ gles3? ( media-libs/libglvnd ) |
206 |
opengl? ( media-libs/libglvnd ) |
207 |
- qt5? ( |
208 |
+ gui? ( |
209 |
dev-qt/qtcore:5 |
210 |
dev-qt/qtgui:5 |
211 |
dev-qt/qtmultimedia:5 |
212 |
+ dev-qt/qtnetwork:5 |
213 |
dev-qt/qtwidgets:5 |
214 |
- opengl? ( dev-qt/qtopengl:5 ) |
215 |
) |
216 |
- sdl? ( media-libs/libsdl2[X,sound,joystick,video,opengl?] ) |
217 |
- sqlite? ( dev-db/sqlite:3 ) |
218 |
-" |
219 |
-DEPEND="${RDEPEND} |
220 |
- gles2? ( media-libs/libglvnd ) |
221 |
- gles3? ( media-libs/libglvnd ) |
222 |
-" |
223 |
- |
224 |
-src_prepare() { |
225 |
- xdg_environment_reset |
226 |
- cmake_src_prepare |
227 |
- |
228 |
- # Get rid of any bundled stuff we don't want |
229 |
- local pkg |
230 |
- for pkg in libpng lzma sqlite3 zlib ; do |
231 |
- rm -r src/third-party/${pkg} || die |
232 |
- done |
233 |
-} |
234 |
+ sdl? ( media-libs/libsdl2[sound,joystick,opengl?,video] ) |
235 |
+ sqlite? ( dev-db/sqlite:3 )" |
236 |
+DEPEND=" |
237 |
+ ${RDEPEND} |
238 |
+ test? ( dev-util/cmocka )" |
239 |
|
240 |
src_configure() { |
241 |
local mycmakeargs=( |
242 |
- -DCMAKE_SKIP_RPATH=ON |
243 |
- -DBUILD_GL="$(usex opengl)" |
244 |
- -DBUILD_GLES2="$(usex gles2)" |
245 |
- -DBUILD_GLES3="$(usex gles3)" |
246 |
- -DBUILD_PYTHON=OFF |
247 |
- -DBUILD_QT="$(usex qt5)" |
248 |
- -DBUILD_SDL="$(usex sdl)" |
249 |
- -DBUILD_SHARED=ON |
250 |
- # test suite fails to build (>=0.6.0) |
251 |
- -DBUILD_SUITE=OFF |
252 |
- -DBUILD_TEST=OFF |
253 |
- -DM_CORE_GB=ON |
254 |
- -DM_CORE_GBA=ON |
255 |
- -DUSE_DEBUGGERS="$(usex debug)" |
256 |
- -DUSE_DISCORD_RPC="$(usex discord)" |
257 |
- -DUSE_EDITLINE="$(usex debug)" |
258 |
- -DUSE_ELF="$(usex elf)" |
259 |
+ -DBUILD_CINEMA=$(usex test) |
260 |
+ -DBUILD_GL=$(usex opengl) |
261 |
+ -DBUILD_GLES2=$(usex gles2) |
262 |
+ -DBUILD_GLES3=$(usex gles3) |
263 |
+ -DBUILD_LIBRETRO=$(usex libretro) |
264 |
+ -DBUILD_QT=$(usex gui) |
265 |
+ -DBUILD_SDL=$(usex sdl) |
266 |
+ -DBUILD_SUITE=$(usex test) |
267 |
+ -DMARKDOWN=OFF #752048 |
268 |
+ -DUSE_DEBUGGERS=$(usex debug) |
269 |
+ -DUSE_DISCORD_RPC=$(usex discord) |
270 |
+ -DUSE_EDITLINE=$(usex debug) |
271 |
+ -DUSE_ELF=$(usex elf) |
272 |
-DUSE_EPOXY=OFF |
273 |
- -DUSE_FFMPEG="$(usex ffmpeg)" |
274 |
- -DUSE_GDB_STUB="$(usex debug)" |
275 |
+ -DUSE_FFMPEG=$(usex ffmpeg) |
276 |
+ -DUSE_GDB_STUB=$(usex debug) |
277 |
-DUSE_LIBZIP=OFF |
278 |
- -DUSE_LZMA=OFF |
279 |
+ -DUSE_LZMA=ON |
280 |
-DUSE_MINIZIP=ON |
281 |
-DUSE_PNG=ON |
282 |
- -DUSE_SQLITE3="$(usex sqlite)" |
283 |
+ -DUSE_SQLITE3=$(usex sqlite) |
284 |
-DUSE_ZLIB=ON |
285 |
+ $(usev libretro -DLIBRETRO_LIBDIR="${EPREFIX}"/usr/$(get_libdir)/libretro) |
286 |
) |
287 |
- cmake_src_configure |
288 |
-} |
289 |
|
290 |
-src_compile() { |
291 |
- cmake_src_compile |
292 |
+ cmake_src_configure |
293 |
} |
294 |
|
295 |
-src_install() { |
296 |
- if use qt5 ; then |
297 |
- dobin "${BUILD_DIR}"/qt/${PN}-qt |
298 |
- doman doc/${PN}-qt.6 |
299 |
- domenu res/${PN}-qt.desktop |
300 |
- for size in 16 24 32 48 64 96 128 256 ; do |
301 |
- newicon -s ${size} res/${PN}-${size}.png ${PN}.png |
302 |
- done |
303 |
- fi |
304 |
- if use sdl ; then |
305 |
- doman doc/${PN}.6 |
306 |
- newbin "${BUILD_DIR}"/sdl/${PN} ${PN}-sdl |
307 |
- fi |
308 |
+src_test() { |
309 |
+ # CMakeLists.txt forces SKIP_RPATH=ON when PREFIX=/usr |
310 |
+ local -x LD_LIBRARY_PATH=${BUILD_DIR}:${LD_LIBRARY_PATH} |
311 |
|
312 |
- dolib.so "${BUILD_DIR}"/lib${PN}.so* |
313 |
+ cmake_src_test |
314 |
} |
315 |
|
316 |
-pkg_preinst() { |
317 |
- if use qt5 ; then |
318 |
- xdg_pkg_preinst |
319 |
- fi |
320 |
-} |
321 |
+src_install() { |
322 |
+ cmake_src_install |
323 |
|
324 |
-pkg_postinst() { |
325 |
- if use qt5 ; then |
326 |
- xdg_pkg_postinst |
327 |
- fi |
328 |
-} |
329 |
+ use !test || rm "${ED}"/usr/bin/mgba-cinema || die |
330 |
|
331 |
-pkg_postrm() { |
332 |
- if use qt5 ; then |
333 |
- xdg_pkg_postrm |
334 |
- fi |
335 |
+ rm -r "${ED}"/usr/share/doc/${PF}/{LICENSE,licenses} || die |
336 |
} |