Gentoo Archives: gentoo-commits

From: Ionen Wolkens <ionen@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: games-emulation/mgba/
Date: Wed, 29 Jun 2022 17:22:54
Message-Id: 1656523356.fa7347842737646e51f9453c00b78f6d260e4f49.ionen@gentoo
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 }