summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIonen Wolkens <ionen@gentoo.org>2022-06-29 08:34:36 -0400
committerIonen Wolkens <ionen@gentoo.org>2022-06-29 13:22:36 -0400
commitfa7347842737646e51f9453c00b78f6d260e4f49 (patch)
treeda14f450c3ef3373abde425ebd71694d425aa2b4 /games-emulation
parentgames-emulation/mgba: tidy patch and add links (diff)
downloadgentoo-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.xml1
-rw-r--r--games-emulation/mgba/mgba-0.9.3-r2.ebuild92
-rw-r--r--games-emulation/mgba/mgba-9999.ebuild142
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
}