summaryrefslogtreecommitdiff
path: root/games-emulation/rmg
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-08-07 12:37:21 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-08-07 12:37:21 +0100
commitb8c7370a682e4e29cda623222d17a790c01c3642 (patch)
treef6caa14689bd00a5760eadaa381ff41e50ef3c1b /games-emulation/rmg
parent8a4997a7e2d1e36c089d4d76935b5a902d98d3d0 (diff)
gentoo auto-resync : 07:08:2024 - 12:37:20
Diffstat (limited to 'games-emulation/rmg')
-rw-r--r--games-emulation/rmg/Manifest24
-rw-r--r--games-emulation/rmg/files/rmg-0.5.6-parallel-rdp-standalone-musl.patch40
-rw-r--r--games-emulation/rmg/metadata.xml26
-rw-r--r--games-emulation/rmg/rmg-0.6.5.ebuild137
-rw-r--r--games-emulation/rmg/rmg-9999.ebuild137
5 files changed, 364 insertions, 0 deletions
diff --git a/games-emulation/rmg/Manifest b/games-emulation/rmg/Manifest
new file mode 100644
index 000000000000..34f77f124441
--- /dev/null
+++ b/games-emulation/rmg/Manifest
@@ -0,0 +1,24 @@
+AUX rmg-0.5.6-parallel-rdp-standalone-musl.patch 2031 BLAKE2B 2a12b0d206432e508988fee907d5aa34b1f010a9ca178b273af07b6ff39d3af3fa83a6ef2a548ab7d2c5105c76c07473ea77b92074c562142ebce9852a16e6f9 SHA512 4c1542838af7863a38db45cf998e26c28f381448ea04ab6f7d2c0c0b378d9a31e1b27ef7c700bdca0d8f5e4916916712374c35b1672470e32550925b5a72a15e
+DIST cc-1.0.83.crate 68343 BLAKE2B 33245b33fa845ea2f36da36e3830ec835f937e4319865b357ee9d5ea29a0f9f8392eadb38bf1d95e3c15ed201e561acaa87aedcef744f8db3dabff87a96c7f02 SHA512 742a248c3a7547bb220a0b9c97b67a831fab9b4ac21daa08c85a3966b9fe576088def33e16132fcabec9a2828a6fc437088bb045bfc98b2cea829df6742565a7
+DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST libc-0.2.152.crate 740278 BLAKE2B 8eecde477063207d77b6894d6f9194c8dd10e55b69585e3d66296eaa0b9d3f6e2d033e667207182bf4c3cf31f6d38820c9187b2006f4b5ebee898adafb4b2751 SHA512 1722f6f52077efab90026aae3d10306f8c38ebba95366593c3c1adf707fae121ab450064ad9e8be5a667caf6af0b90fad4d1ca1009db0f2220093c44e33c4b5c
+DIST libloading-0.7.4.crate 27580 BLAKE2B 491faef2659270b10bb88ac46e0453f747f35e78d7f28b7d6d9151177b4c7a7aec0a1efdf702eda0988c31e9dafff2990eba4e6a9b0b695c535ea9086ccf36e7 SHA512 34439d9eca68bac8fcbe2bc94a70e07550e7e95d713ab74ed60ba6736ec807fd9c9135c178d436fbeb39afb074b2a9b05775d953340845c088f5f8712f5f56a1
+DIST libusb1-sys-0.6.4.crate 284025 BLAKE2B 3a2e3456fad16a8a2c25995b003ba77adc11852aa1a05470b78cd3ceebb355fc392065e8631abc6137bc6ecd230d6df14534dcfe48e2b038e1c783570e019c55 SHA512 e53550a2697e8df78bd8137133cfa8dd9fb5f39c6cdbd53d7b239f7dcbee668b5d231c9ba8eaf2e83cb4c75587a2c7224564880ed729b0d1c6235056e6378a2f
+DIST once_cell-1.19.0.crate 33046 BLAKE2B c14b374eaf4ac0f60acc2e02f7bba270a0e8e0a6978d749cd3cb0ab3eb26907e4fbea70dd5132982f90290381ed18ff8a87fd530f1415fabffac864f157ea380 SHA512 4154876afd34a699ee650d1a8a1c5ee5a25f0ebd9388b8bef2564e33629fae68f113d7507488c68abbe7ea1acf9bbc41813cbbf3ef3e464e3f3b9cc7a51d870c
+DIST pkg-config-0.3.29.crate 20563 BLAKE2B ed0559b0073890911fb47742743b2586123bf9e9b594aa0d5b2c419c6768cd37e25b546c21077ea6cc02823a679b302aeaaca6c7fcaf9aeec615dd08f53a1f6f SHA512 bac7dafc0e10bef40e427c1fc0271d1a26acb2f5b1cf7cc7a128f4d4f1f3110529e45057b71cea7b0f6ddff26945fe08962285ddeb22b54639e44a2e43af698f
+DIST proc-macro2-1.0.78.crate 47158 BLAKE2B c56a24fce3faca9e04db7965cab552d2a976c3764df0a84179b5a89d1230ab355c777a82b4c982e3945414f1f0478473a88821dd176c32d6de394d73a26adb9a SHA512 11956fe03a2e77a925cdff2c3c8bc8804dffab4fa1de963a128fa23f4189976fd2e2102bd346b92c33524beae320b71dadaa5213695a3ec638404196e14fa769
+DIST quote-1.0.35.crate 28136 BLAKE2B 81424245e1e2b94459df68bb3a9a866c6a364102b5e1d010ede9c5f8278f8406d7b651957d091c5914e936b494b0f6e9a6a1dd8b7d35cd7d7100f86dee4ec12e SHA512 f5314fb6af17cf36c228e1970c569c29ec248954a450a5f90ba9e2896d04f74904c9cec5a1f74325f2489295a94491eee4ce8fb461e22cd4b34e53f1f881efd2
+DIST rmg-0.6.5.tar.gz 78957406 BLAKE2B c6b6e86b13761ceedaf140f0019b627676e9787e108b637fe048b133bdaab77300c96707c4f0619cf7b91ff3b95e8f04cf7404b13c2c11cbb0f8b36b9edd8d1e SHA512 f73e52d61f61bdab3b302936eb6a93bca565b8eaa5108a4ab042df3d9758a5bb92402a6e9c6e587da498bfadbe385cbf9601b25315a5bbdc69c264c21a285699
+DIST rusb-0.9.3.crate 43389 BLAKE2B f9359bddad8963fe86f50aecdd2ca95666de49799fa79b656e5f406f0c8262d8478470b44bcd79247a80674f78a7d19f1bb6770ea247c7d28980efe6b369dfef SHA512 fb2125e0a8bbab9b1324b3b5aaa0ccdc3254ffb5adfee1629ae3958d76d50b79a47a02f9ade77e986d9478e66c53bb956b2b08c3fc0efd5c5b488bcb8ecfaa42
+DIST serde-1.0.195.crate 76856 BLAKE2B 6a80b59335f222ae48d5e377c30611f30fe6416e6853ca47a39016e21f649cb9dfbe4964ce19e5da977fb9a963228a6a81c1e85af99ae12d7a0a5722901aa2f5 SHA512 0002ecb933d08fbdc8585ee74efb4048d385459f629261f5a4a8401b794f1c02b8296db79f479013a0b2a47ba99bee6c02d60d0fc2454e32f1b038b4071e8727
+DIST serde_derive-1.0.195.crate 55687 BLAKE2B 4da7916e36f71dfe82defa6c45b3075395cae54631cdff08a4607e962290020e7214288258fd316439c02536073325f5902e7b00144f97269a207fc453496599 SHA512 8a82ae4e7cfe0c3ac27688cc95d74bf4c2e10c1fe845ab28fb57579b2f47f36d13218c2ae603f93f00114065d47c3e46166dea39b205be673f443c34305dacce
+DIST syn-2.0.48.crate 250566 BLAKE2B e46b0863af76c3116c84d01b654a9820b7edc51f75c9c5301a7967d12284f78da602409f34fc40524728350dc6b998a4d738f08b8868f95236b3e5d24c460580 SHA512 926c0ad55cc743df20f9166b6d71fd44421aeb1f073fd86b6ddb53e13cd508b539c0360ce64b07b65597bb14639c8f33acf7e60951e1e9128624517aa3aee325
+DIST toml-0.5.11.crate 54910 BLAKE2B 9ecd5103b33ab47d4be23c897c7095ca381cb79bedcaac4918cddc36fc7cf5d34ab664da52c2273d935f04486e9325241d6b66785d50aac78453c219aab49e1e SHA512 eddb82aeb8fdeb5436579292c6f7a64a90a2c7bb54070beb437bc7890b99795d0505faa8d6451a99e8bcf440f78db8a1b273a697c8ad44275cc4163a9ee49317
+DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac SHA512 bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920
+DIST vcpkg-0.2.15.crate 228735 BLAKE2B 6b6bacd9a7fa38919241f45a97f58cae957e58d3aac99df208a26aa718e4f1644f4ccefa31b09151e5c1952288e0e5837c363918b98c7f55079a948a952c1c50 SHA512 7322a21e8811b2fe4e79e09dc321458068ecdf1953f05d36233f3278ecc0b1dfc64194db7010dd46fcf692285f42475beb090c6c6cac0c8f9fe0eb5c770e3172
+DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+EBUILD rmg-0.6.5.ebuild 2858 BLAKE2B 7e4b3c69acc2d57d17fe2a661fa771537447ef21fafd1668b1d8fc4aea23c1209b4470c4184e6be55d5b410d4189f64f39fd3d98dd94ada51699e7064cafb4be SHA512 ae2f22d58807424999412b2685046ec4db17d1470f202e37dface692b766062bd885d9b21476c44bed8e8b27daf5f8de7cf63a1c93aab2a15e54b43646c34839
+EBUILD rmg-9999.ebuild 2858 BLAKE2B 7e4b3c69acc2d57d17fe2a661fa771537447ef21fafd1668b1d8fc4aea23c1209b4470c4184e6be55d5b410d4189f64f39fd3d98dd94ada51699e7064cafb4be SHA512 ae2f22d58807424999412b2685046ec4db17d1470f202e37dface692b766062bd885d9b21476c44bed8e8b27daf5f8de7cf63a1c93aab2a15e54b43646c34839
+MISC metadata.xml 994 BLAKE2B 59277438f2927aa7f21b18e9a5e3bdaaad5b9b4c6fe1a97c17573693afcc0ef1bb51dec675d2058fe4f38aa18b4530b42718c4b675546637391c331489bd0bd4 SHA512 0c33ace51df8ed133343b0db2b40e3a86df748fda4b2cb86772d0bea7640e92ed33fbfdee5e8490fdf466cd02130d662d2df495cf94ee11807d82d58530c5036
diff --git a/games-emulation/rmg/files/rmg-0.5.6-parallel-rdp-standalone-musl.patch b/games-emulation/rmg/files/rmg-0.5.6-parallel-rdp-standalone-musl.patch
new file mode 100644
index 000000000000..951ed61a4b7a
--- /dev/null
+++ b/games-emulation/rmg/files/rmg-0.5.6-parallel-rdp-standalone-musl.patch
@@ -0,0 +1,40 @@
+https://github.com/Themaister/Granite/pull/129
+
+From 9e78ed6c4ec494d29a9341d127cf3131a2e22722 Mon Sep 17 00:00:00 2001
+From: orbea <orbea@riseup.net>
+Date: Mon, 22 Jan 2024 08:03:46 -0800
+Subject: [PATCH] util: fix the musl build
+
+samu: job failed with status 1: /usr/lib/ccache/bin/c++ -I/tmp/Granite/util -I/tmp/Granite/application/global -std=gnu++14 -Wshadow -Wall -Wextra -Wno-comment -Wno-missing-field-initializers -Wno-empty-body -fno-omit-frame-pointer -msse3 -ffast-math -MD -MT util/CMakeFiles/granite-util.dir/aligned_alloc.cpp.o -MF util/CMakeFiles/granite-util.dir/aligned_alloc.cpp.o.d -o util/CMakeFiles/granite-util.dir/aligned_alloc.cpp.o -c /tmp/Granite/util/aligned_alloc.cpp
+/tmp/Granite/util/aligned_alloc.cpp: In function 'void* Util::memalign_alloc(size_t, size_t)':
+/tmp/Granite/util/aligned_alloc.cpp:47:5: error: 'uintptr_t' was not declared in this scope
+ 47 | uintptr_t addr = 0;
+ | ^~~~~~~~~
+/tmp/Granite/util/aligned_alloc.cpp:27:1: note: 'uintptr_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
+ 26 | #include <string.h>
+ +++ |+#include <cstdint>
+ 27 | #ifdef _WIN32
+/tmp/Granite/util/aligned_alloc.cpp:53:5: error: 'addr' was not declared in this scope
+ 53 | addr = ((uintptr_t)ptr + sizeof(uintptr_t) + boundary) & ~(boundary - 1);
+ | ^~~~
+/tmp/Granite/util/aligned_alloc.cpp:53:24: error: expected ')' before 'ptr'
+ 53 | addr = ((uintptr_t)ptr + sizeof(uintptr_t) + boundary) & ~(boundary - 1);
+ | ~ ^~~
+ | )
+samu: subcommand failed
+---
+ util/aligned_alloc.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/util/aligned_alloc.cpp b/util/aligned_alloc.cpp
+index 674aeb3c0..9f5900eca 100644
+--- a/Source/3rdParty/mupen64plus-video-parallel/util/aligned_alloc.cpp
++++ b/Source/3rdParty/mupen64plus-video-parallel/util/aligned_alloc.cpp
+@@ -21,6 +21,7 @@
+ */
+
+ #include "aligned_alloc.hpp"
++#include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #ifdef _WIN32
diff --git a/games-emulation/rmg/metadata.xml b/games-emulation/rmg/metadata.xml
new file mode 100644
index 000000000000..bbbd1acac716
--- /dev/null
+++ b/games-emulation/rmg/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM 'https://www.gentoo.org/dtd/metadata.dtd'>
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>orbea@riseup.net</email>
+ <name>orbea</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <use>
+ <flag name="discord">Enable Discord RPC support</flag>
+ <flag name="dynarec">Enable the new dynarec for the mupen64plus-core plugin</flag>
+ <flag name="angrylion-plugin">Enable the mupen64plus-video-angrylion-plus XMAME licensed plugin</flag>
+ <flag name="rust-plugin">Enable the mupen64plus-input-gca rust plugin</flag>
+ </use>
+ <longdescription>
+ Rosalie's Mupen GUI is a free and open-source mupen64plus
+ front-end written in C++.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/Rosalie241/RMG/issues</bugs-to>
+ <remote-id type="github">Rosalie241/RMG</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/games-emulation/rmg/rmg-0.6.5.ebuild b/games-emulation/rmg/rmg-0.6.5.ebuild
new file mode 100644
index 000000000000..d6de051e2f28
--- /dev/null
+++ b/games-emulation/rmg/rmg-0.6.5.ebuild
@@ -0,0 +1,137 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CARGO_OPTIONAL=1
+
+CRATES="
+ cc@1.0.83
+ cfg-if@1.0.0
+ libc@0.2.152
+ libloading@0.7.4
+ libusb1-sys@0.6.4
+ once_cell@1.19.0
+ pkg-config@0.3.29
+ proc-macro2@1.0.78
+ quote@1.0.35
+ rusb@0.9.3
+ serde@1.0.195
+ serde_derive@1.0.195
+ syn@2.0.48
+ toml@0.5.11
+ unicode-ident@1.0.12
+ vcpkg@0.2.15
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+"
+
+inherit cargo cmake xdg
+
+MY_PN="${PN^^}"
+MY_P="${MY_PN}-${PV}"
+DESCRIPTION="Rosalie's Mupen GUI"
+HOMEPAGE="https://github.com/Rosalie241/RMG"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Rosalie241/${MY_PN}.git"
+else
+ SRC_URI="
+ https://github.com//Rosalie241/${MY_PN}/archive/v${PV}/${MY_P}.tar.gz \
+ -> ${P}.tar.gz
+ rust-plugin? ( ${CARGO_CRATE_URIS} )
+ "
+ S="${WORKDIR}/${MY_P}"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="
+ BSD-2 CC0-1.0 GPL-2 GPL-3 MIT ZLIB public-domain
+ angrylion-plugin? ( XMAME )
+ rust-plugin? ( ISC Unicode-DFS-2016 )
+"
+SLOT="0"
+IUSE="angrylion-plugin discord dynarec rust-plugin"
+
+DEPEND="
+ dev-libs/hidapi
+ dev-qt/qtbase:6[gui,opengl,vulkan,widgets]
+ dev-qt/qtsvg:6
+ media-libs/freetype
+ media-libs/libpng:=
+ media-libs/libsamplerate
+ media-libs/libsdl2[haptic,joystick,opengl,sound,vulkan]
+ media-libs/speexdsp
+ sys-libs/zlib[minizip(+)]
+ virtual/opengl
+ rust-plugin? ( dev-libs/libusb:1 )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ dynarec? ( dev-lang/nasm )
+ rust-plugin? ( virtual/rust )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.5.6-parallel-rdp-standalone-musl.patch
+)
+
+pkg_setup() {
+ QA_FLAGS_IGNORED="/usr/$(get_libdir)/RMG/Plugin/Input/libmupen64plus_input_gca.so"
+}
+
+src_unpack() {
+ if [[ "${PV}" == *9999 ]] ; then
+ git-r3_src_unpack
+ if use rust-plugin; then
+ S="${S}"/Source/3rdParty/mupen64plus-input-gca \
+ cargo_live_src_unpack
+ fi
+ else
+ if use rust-plugin; then
+ cargo_src_unpack
+ else
+ default
+ fi
+ fi
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ # Don't install unused 3rdParty code
+ rm -r "${S}"/Source/3rdParty/fmt || die
+
+ # Don't install XMAME licensed code
+ if ! use angrylion-plugin; then
+ rm -r "${S}"/Source/3rdParty/mupen64plus-video-angrylion-plus || die
+ fi
+
+ # Don't install pre-compiled binaries
+ rm -r "${S}"/Source/3rdParty/vosk-api || die
+
+ # Enable verbose make(1) output
+ sed -e 's/CC=/V=1 CC=/' -i "${S}"/Source/3rdParty/CMakeLists.txt || die
+}
+
+src_configure() {
+ export PKG_CONFIG_ALLOW_CROSS=1
+
+ local mycmakeargs=(
+ -DAPPIMAGE_UPDATER=OFF
+ -DDISCORD_RPC=$(usex discord)
+ -DNO_ASM=$(usex dynarec OFF ON)
+ -DNO_RUST=$(usex rust-plugin OFF ON)
+ -DPORTABLE_INSTALL=OFF
+ -DUPDATER=OFF
+ -DUSE_ANGRYLION=$(usex angrylion-plugin)
+ -DUSE_CCACHE=OFF
+ -DUSE_LIBFMT=OFF # Use std::format
+ -DUSE_LTO=OFF
+ -DVRU=OFF # Precompiled binaries
+ )
+
+ cmake_src_configure
+}
diff --git a/games-emulation/rmg/rmg-9999.ebuild b/games-emulation/rmg/rmg-9999.ebuild
new file mode 100644
index 000000000000..d6de051e2f28
--- /dev/null
+++ b/games-emulation/rmg/rmg-9999.ebuild
@@ -0,0 +1,137 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CARGO_OPTIONAL=1
+
+CRATES="
+ cc@1.0.83
+ cfg-if@1.0.0
+ libc@0.2.152
+ libloading@0.7.4
+ libusb1-sys@0.6.4
+ once_cell@1.19.0
+ pkg-config@0.3.29
+ proc-macro2@1.0.78
+ quote@1.0.35
+ rusb@0.9.3
+ serde@1.0.195
+ serde_derive@1.0.195
+ syn@2.0.48
+ toml@0.5.11
+ unicode-ident@1.0.12
+ vcpkg@0.2.15
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+"
+
+inherit cargo cmake xdg
+
+MY_PN="${PN^^}"
+MY_P="${MY_PN}-${PV}"
+DESCRIPTION="Rosalie's Mupen GUI"
+HOMEPAGE="https://github.com/Rosalie241/RMG"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Rosalie241/${MY_PN}.git"
+else
+ SRC_URI="
+ https://github.com//Rosalie241/${MY_PN}/archive/v${PV}/${MY_P}.tar.gz \
+ -> ${P}.tar.gz
+ rust-plugin? ( ${CARGO_CRATE_URIS} )
+ "
+ S="${WORKDIR}/${MY_P}"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="
+ BSD-2 CC0-1.0 GPL-2 GPL-3 MIT ZLIB public-domain
+ angrylion-plugin? ( XMAME )
+ rust-plugin? ( ISC Unicode-DFS-2016 )
+"
+SLOT="0"
+IUSE="angrylion-plugin discord dynarec rust-plugin"
+
+DEPEND="
+ dev-libs/hidapi
+ dev-qt/qtbase:6[gui,opengl,vulkan,widgets]
+ dev-qt/qtsvg:6
+ media-libs/freetype
+ media-libs/libpng:=
+ media-libs/libsamplerate
+ media-libs/libsdl2[haptic,joystick,opengl,sound,vulkan]
+ media-libs/speexdsp
+ sys-libs/zlib[minizip(+)]
+ virtual/opengl
+ rust-plugin? ( dev-libs/libusb:1 )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ dynarec? ( dev-lang/nasm )
+ rust-plugin? ( virtual/rust )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.5.6-parallel-rdp-standalone-musl.patch
+)
+
+pkg_setup() {
+ QA_FLAGS_IGNORED="/usr/$(get_libdir)/RMG/Plugin/Input/libmupen64plus_input_gca.so"
+}
+
+src_unpack() {
+ if [[ "${PV}" == *9999 ]] ; then
+ git-r3_src_unpack
+ if use rust-plugin; then
+ S="${S}"/Source/3rdParty/mupen64plus-input-gca \
+ cargo_live_src_unpack
+ fi
+ else
+ if use rust-plugin; then
+ cargo_src_unpack
+ else
+ default
+ fi
+ fi
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ # Don't install unused 3rdParty code
+ rm -r "${S}"/Source/3rdParty/fmt || die
+
+ # Don't install XMAME licensed code
+ if ! use angrylion-plugin; then
+ rm -r "${S}"/Source/3rdParty/mupen64plus-video-angrylion-plus || die
+ fi
+
+ # Don't install pre-compiled binaries
+ rm -r "${S}"/Source/3rdParty/vosk-api || die
+
+ # Enable verbose make(1) output
+ sed -e 's/CC=/V=1 CC=/' -i "${S}"/Source/3rdParty/CMakeLists.txt || die
+}
+
+src_configure() {
+ export PKG_CONFIG_ALLOW_CROSS=1
+
+ local mycmakeargs=(
+ -DAPPIMAGE_UPDATER=OFF
+ -DDISCORD_RPC=$(usex discord)
+ -DNO_ASM=$(usex dynarec OFF ON)
+ -DNO_RUST=$(usex rust-plugin OFF ON)
+ -DPORTABLE_INSTALL=OFF
+ -DUPDATER=OFF
+ -DUSE_ANGRYLION=$(usex angrylion-plugin)
+ -DUSE_CCACHE=OFF
+ -DUSE_LIBFMT=OFF # Use std::format
+ -DUSE_LTO=OFF
+ -DVRU=OFF # Precompiled binaries
+ )
+
+ cmake_src_configure
+}