diff options
author | Ionen Wolkens <ionen@gentoo.org> | 2022-06-29 08:34:36 -0400 |
---|---|---|
committer | Ionen Wolkens <ionen@gentoo.org> | 2022-06-29 13:22:36 -0400 |
commit | fa7347842737646e51f9453c00b78f6d260e4f49 (patch) | |
tree | da14f450c3ef3373abde425ebd71694d425aa2b4 /games-emulation | |
parent | games-emulation/mgba: tidy patch and add links (diff) | |
download | gentoo-fa7347842737646e51f9453c00b78f6d260e4f49.tar.gz gentoo-fa7347842737646e51f9453c00b78f6d260e4f49.tar.bz2 gentoo-fa7347842737646e51f9453c00b78f6d260e4f49.zip |
games-emulation/mgba: re-arrange ebuild
non-style changes:
- enable tests
- IUSE=qt5 -> gui
- add IUSE=libretro
- update LICENSE to be hopefully complete
- disable markdown wrt bug #752048, all this does is automagic
convert the installed *.md to html
- require IUSE=opengl with gles2/gles3 for now wrt bug #835039,
won't be needed next bump
- enable lzma, bundled but no real reason to disable (+public-domain)
- drop unused qtopengl (uses libglvnd directly) and add qtnetwork
- use cmake_src_install, removes need for custom icons loop and
installs intended files (including shaders, and headers)
- add subslot for libmgba given next version has a soname change,
better handle this now than when something will need it
(dolphin could potentially use to unbundle, albeit may be unsuitable
for current dolphin snapshots)
Could likely still use more work for some features and maybe some force
unbundling, but leaving alone for now unless there's a need to / user
requests.
Closes: https://bugs.gentoo.org/752048
Closes: https://bugs.gentoo.org/835039
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'games-emulation')
-rw-r--r-- | games-emulation/mgba/metadata.xml | 1 | ||||
-rw-r--r-- | games-emulation/mgba/mgba-0.9.3-r2.ebuild | 92 | ||||
-rw-r--r-- | games-emulation/mgba/mgba-9999.ebuild | 142 |
3 files changed, 146 insertions, 89 deletions
diff --git a/games-emulation/mgba/metadata.xml b/games-emulation/mgba/metadata.xml index e99f6fd576d4..9e784de51af0 100644 --- a/games-emulation/mgba/metadata.xml +++ b/games-emulation/mgba/metadata.xml @@ -10,6 +10,7 @@ <flag name="elf">Enable the use of elf utils via <pkg>dev-libs/elfutils</pkg></flag> <flag name="gles2">Build OpenGL ES 2.x RenderSystem</flag> <flag name="gles3">Build OpenGL ES 3.x RenderSystem</flag> + <flag name="libretro">Build libretro port</flag> </use> <upstream> <remote-id type="github">mgba-emu/mgba</remote-id> diff --git a/games-emulation/mgba/mgba-0.9.3-r2.ebuild b/games-emulation/mgba/mgba-0.9.3-r2.ebuild new file mode 100644 index 000000000000..4d806f22f62f --- /dev/null +++ b/games-emulation/mgba/mgba-0.9.3-r2.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake xdg + +if [[ ${PV} == 9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/mgba-emu/mgba.git" +else + SRC_URI="https://github.com/mgba-emu/mgba/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +fi + +DESCRIPTION="Game Boy Advance Emulator" +HOMEPAGE="https://mgba.io/" + +LICENSE="MPL-2.0 BSD LGPL-2.1+ public-domain discord? ( MIT )" +SLOT="0/9" +IUSE="debug discord elf ffmpeg gles2 gles3 gui libretro opengl +sdl sqlite test" +# gles2/gles3 opengl require can be lifted in next version (bug #835039) +REQUIRED_USE=" + || ( gui sdl ) + gles2? ( opengl ) + gles3? ( opengl ) + gui? ( || ( gles2 opengl ) )" +RESTRICT="!test? ( test )" + +RDEPEND=" + media-libs/libpng:= + sys-libs/zlib:=[minizip] + debug? ( dev-libs/libedit ) + elf? ( dev-libs/elfutils ) + ffmpeg? ( media-video/ffmpeg:= ) + gles2? ( media-libs/libglvnd ) + gles3? ( media-libs/libglvnd ) + opengl? ( media-libs/libglvnd ) + gui? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtmultimedia:5 + dev-qt/qtnetwork:5 + dev-qt/qtwidgets:5 + ) + sdl? ( media-libs/libsdl2[sound,joystick,opengl?,video] ) + sqlite? ( dev-db/sqlite:3 )" +DEPEND=" + ${RDEPEND} + test? ( dev-util/cmocka )" + +PATCHES=( + "${FILESDIR}"/${P}-ffmpeg5.patch +) + +src_configure() { + local mycmakeargs=( + -DBUILD_CINEMA=$(usex test) + -DBUILD_GL=$(usex opengl) + -DBUILD_GLES2=$(usex gles2) + -DBUILD_GLES3=$(usex gles3) + -DBUILD_LIBRETRO=$(usex libretro) + -DBUILD_QT=$(usex gui) + -DBUILD_SDL=$(usex sdl) + -DBUILD_SUITE=$(usex test) + -DMARKDOWN=OFF #752048 + -DUSE_DEBUGGERS=$(usex debug) + -DUSE_DISCORD_RPC=$(usex discord) + -DUSE_EDITLINE=$(usex debug) + -DUSE_ELF=$(usex elf) + -DUSE_EPOXY=OFF + -DUSE_FFMPEG=$(usex ffmpeg) + -DUSE_GDB_STUB=$(usex debug) + -DUSE_LIBZIP=OFF + -DUSE_LZMA=ON + -DUSE_MINIZIP=ON + -DUSE_PNG=ON + -DUSE_SQLITE3=$(usex sqlite) + -DUSE_ZLIB=ON + $(usev libretro -DLIBRETRO_LIBDIR="${EPREFIX}"/usr/$(get_libdir)/libretro) + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + + use !test || rm "${ED}"/usr/bin/mgba-cinema || die + + rm -r "${ED}"/usr/share/doc/${PF}/{LICENSE,licenses} || die +} diff --git a/games-emulation/mgba/mgba-9999.ebuild b/games-emulation/mgba/mgba-9999.ebuild index bfc1bea7e039..76e7916549ff 100644 --- a/games-emulation/mgba/mgba-9999.ebuild +++ b/games-emulation/mgba/mgba-9999.ebuild @@ -3,126 +3,90 @@ EAPI=8 -inherit cmake desktop xdg +inherit cmake xdg -DESCRIPTION="Game Boy Advance emulator written in C" -HOMEPAGE="https://mgba.io" -if [[ "${PV}" == 9999 ]] ; then +if [[ ${PV} == 9999 ]] ; then inherit git-r3 EGIT_REPO_URI="https://github.com/mgba-emu/mgba.git" else - MY_PV="${PV/_beta/-b}" - SRC_URI="https://github.com/${PN}-emu/${PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz" - [[ "${PV}" == *_beta* ]] || \ - KEYWORDS="~amd64 ~arm64 ~x86" - S="${WORKDIR}/${PN}-${MY_PV}" + SRC_URI="https://github.com/mgba-emu/mgba/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" fi -LICENSE="MPL-2.0" -SLOT="0" -IUSE="debug discord elf ffmpeg gles2 gles3 opengl qt5 +sdl sqlite" -REQUIRED_USE="|| ( qt5 sdl ) - qt5? ( opengl )" + +DESCRIPTION="Game Boy Advance Emulator" +HOMEPAGE="https://mgba.io/" + +LICENSE="MPL-2.0 BSD LGPL-2.1+ public-domain discord? ( MIT )" +SLOT="0/10" +IUSE="debug discord elf ffmpeg gles2 gles3 gui libretro opengl +sdl sqlite test" +REQUIRED_USE=" + || ( gui sdl ) + gui? ( || ( gles2 gles3 opengl ) )" +RESTRICT="!test? ( test )" RDEPEND=" - media-libs/libpng:0= - sys-libs/zlib[minizip] + media-libs/libpng:= + sys-libs/zlib:=[minizip] debug? ( dev-libs/libedit ) elf? ( dev-libs/elfutils ) ffmpeg? ( media-video/ffmpeg:= ) + gles2? ( media-libs/libglvnd ) + gles3? ( media-libs/libglvnd ) opengl? ( media-libs/libglvnd ) - qt5? ( + gui? ( dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtmultimedia:5 + dev-qt/qtnetwork:5 dev-qt/qtwidgets:5 - opengl? ( dev-qt/qtopengl:5 ) ) - sdl? ( media-libs/libsdl2[X,sound,joystick,video,opengl?] ) - sqlite? ( dev-db/sqlite:3 ) -" -DEPEND="${RDEPEND} - gles2? ( media-libs/libglvnd ) - gles3? ( media-libs/libglvnd ) -" - -src_prepare() { - xdg_environment_reset - cmake_src_prepare - - # Get rid of any bundled stuff we don't want - local pkg - for pkg in libpng lzma sqlite3 zlib ; do - rm -r src/third-party/${pkg} || die - done -} + sdl? ( media-libs/libsdl2[sound,joystick,opengl?,video] ) + sqlite? ( dev-db/sqlite:3 )" +DEPEND=" + ${RDEPEND} + test? ( dev-util/cmocka )" src_configure() { local mycmakeargs=( - -DCMAKE_SKIP_RPATH=ON - -DBUILD_GL="$(usex opengl)" - -DBUILD_GLES2="$(usex gles2)" - -DBUILD_GLES3="$(usex gles3)" - -DBUILD_PYTHON=OFF - -DBUILD_QT="$(usex qt5)" - -DBUILD_SDL="$(usex sdl)" - -DBUILD_SHARED=ON - # test suite fails to build (>=0.6.0) - -DBUILD_SUITE=OFF - -DBUILD_TEST=OFF - -DM_CORE_GB=ON - -DM_CORE_GBA=ON - -DUSE_DEBUGGERS="$(usex debug)" - -DUSE_DISCORD_RPC="$(usex discord)" - -DUSE_EDITLINE="$(usex debug)" - -DUSE_ELF="$(usex elf)" + -DBUILD_CINEMA=$(usex test) + -DBUILD_GL=$(usex opengl) + -DBUILD_GLES2=$(usex gles2) + -DBUILD_GLES3=$(usex gles3) + -DBUILD_LIBRETRO=$(usex libretro) + -DBUILD_QT=$(usex gui) + -DBUILD_SDL=$(usex sdl) + -DBUILD_SUITE=$(usex test) + -DMARKDOWN=OFF #752048 + -DUSE_DEBUGGERS=$(usex debug) + -DUSE_DISCORD_RPC=$(usex discord) + -DUSE_EDITLINE=$(usex debug) + -DUSE_ELF=$(usex elf) -DUSE_EPOXY=OFF - -DUSE_FFMPEG="$(usex ffmpeg)" - -DUSE_GDB_STUB="$(usex debug)" + -DUSE_FFMPEG=$(usex ffmpeg) + -DUSE_GDB_STUB=$(usex debug) -DUSE_LIBZIP=OFF - -DUSE_LZMA=OFF + -DUSE_LZMA=ON -DUSE_MINIZIP=ON -DUSE_PNG=ON - -DUSE_SQLITE3="$(usex sqlite)" + -DUSE_SQLITE3=$(usex sqlite) -DUSE_ZLIB=ON + $(usev libretro -DLIBRETRO_LIBDIR="${EPREFIX}"/usr/$(get_libdir)/libretro) ) - cmake_src_configure -} -src_compile() { - cmake_src_compile + cmake_src_configure } -src_install() { - if use qt5 ; then - dobin "${BUILD_DIR}"/qt/${PN}-qt - doman doc/${PN}-qt.6 - domenu res/${PN}-qt.desktop - for size in 16 24 32 48 64 96 128 256 ; do - newicon -s ${size} res/${PN}-${size}.png ${PN}.png - done - fi - if use sdl ; then - doman doc/${PN}.6 - newbin "${BUILD_DIR}"/sdl/${PN} ${PN}-sdl - fi +src_test() { + # CMakeLists.txt forces SKIP_RPATH=ON when PREFIX=/usr + local -x LD_LIBRARY_PATH=${BUILD_DIR}:${LD_LIBRARY_PATH} - dolib.so "${BUILD_DIR}"/lib${PN}.so* + cmake_src_test } -pkg_preinst() { - if use qt5 ; then - xdg_pkg_preinst - fi -} +src_install() { + cmake_src_install -pkg_postinst() { - if use qt5 ; then - xdg_pkg_postinst - fi -} + use !test || rm "${ED}"/usr/bin/mgba-cinema || die -pkg_postrm() { - if use qt5 ; then - xdg_pkg_postrm - fi + rm -r "${ED}"/usr/share/doc/${PF}/{LICENSE,licenses} || die } |