From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1413303-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id EC288158094
	for <garchives@archives.gentoo.org>; Wed, 29 Jun 2022 17:22:54 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 8E928E0BA3;
	Wed, 29 Jun 2022 17:22:53 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id 73A37E0BA3
	for <gentoo-commits@lists.gentoo.org>; Wed, 29 Jun 2022 17:22:53 +0000 (UTC)
Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id A5913341A6B
	for <gentoo-commits@lists.gentoo.org>; Wed, 29 Jun 2022 17:22:52 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id D571351C
	for <gentoo-commits@lists.gentoo.org>; Wed, 29 Jun 2022 17:22:50 +0000 (UTC)
From: "Ionen Wolkens" <ionen@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Ionen Wolkens" <ionen@gentoo.org>
Message-ID: <1656523356.fa7347842737646e51f9453c00b78f6d260e4f49.ionen@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: games-emulation/mgba/
X-VCS-Repository: repo/gentoo
X-VCS-Files: games-emulation/mgba/metadata.xml games-emulation/mgba/mgba-0.9.3-r2.ebuild games-emulation/mgba/mgba-9999.ebuild
X-VCS-Directories: games-emulation/mgba/
X-VCS-Committer: ionen
X-VCS-Committer-Name: Ionen Wolkens
X-VCS-Revision: fa7347842737646e51f9453c00b78f6d260e4f49
X-VCS-Branch: master
Date: Wed, 29 Jun 2022 17:22:50 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 0bd04b97-ba18-44ac-9c0d-00f1340dae80
X-Archives-Hash: ebb65ddebc864ef93073f9a11c442950

commit:     fa7347842737646e51f9453c00b78f6d260e4f49
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 29 12:34:36 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Jun 29 17:22:36 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fa734784

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 <AT> gentoo.org>

 games-emulation/mgba/metadata.xml         |   1 +
 games-emulation/mgba/mgba-0.9.3-r2.ebuild |  92 +++++++++++++++++++
 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
 }