[games-emulation/eden] better/new USE flags; stricter sirit; tzdb update

Rationales:
- sirit MUST be version 1.0.1 (our fork) or newer, NOT any older version
  e.g. Rein/Pablo's
- gui should be qt6
- Better descriptions for USE flags all around
- tzdb update to 091025
- room, llvm, renderdoc, gamemode:
  * room: dedicated room executable (may be desirable)
  * llvm: demangling is supported anyways, but people may not want to
    pull in all of LLVM for this; other than that, also allow Dynarmic
    to use LLVM for disassembly (see: games-emulation/dolphin)--demangle
    itself is pulled from LLVM, so we also have to add its exception
  * renderdoc: If enabled, will let Eden use the system renderdoc API
    and also enforce its installation for the hotkey
  * gamemode: Uses the system gamemode client, and also enforces the
    user having it installed in the first place
- better REQUIRED_USE
  * web-service requires SSL of course, but also can only be used if the
    Qt or Room executables are enabled.
  * opengl requires gui? Nope--OpenGL works with the SDL frontend as well

Some additional prepwork for rc2 is due as well, I'll get on that later

Signed-off-by: crueter <crueter@eden-emu.dev>
This commit is contained in:
crueter
2025-11-04 20:38:13 -05:00
parent 22ffd566af
commit 278b5cb7e5
3 changed files with 36 additions and 20 deletions

View File

@@ -1,3 +1,3 @@
DIST eden-0.0.4_rc1-revert-the-latest-Dynarmic-changes.patch 110541 BLAKE2B 7832f1f08d79cb8c16797ffdaa824bf4ff4822b2ab002fd3c551864aff4f3128ab0cbb2624132ec139e75ef0e9c6fc18119bd0805d3969fa219b97937aff14d1 SHA512 6e41b8dc2fb8b4b6cfdb0223c9f63a7ae7aab30a038f1e5dee52598f20e6bd53c6638fc6b072c2bb7633268d016fc02274e01cc3a27d935c22d53b2c51702067
DIST eden-0.0.4_rc1.tar.gz 15713193 BLAKE2B 33b1062189b09505f064e7bf0bdb18a2377518b577f1f88fbb948657e60f47bd381ad4e8b572046416c19232bdc57885d531682060118941abbfb638007fdc24 SHA512 2054a71b1bdcd4958e85aee2e6597ddcf54939e1d43e23cf85c1ba835b205236ba92b51c2b2cf2fee9a4e3f6c74eedd45f9954dcd2dc097d50760d64d74012d8
DIST nx-tzdb-250725.zip 286133 BLAKE2B e8791883b589c58927f24293263f56d85f68a7e52f12d4e022c23bdba47f5e5f12cd1d8dfb186194b455fbd53f48951c8eb1e157d4de5e80db4f09b63d7a25f7 SHA512 8f60b4b29f285e39c0443f3d5572a73780f3dbfcfd5b35004451fadad77f3a215b2e2aa8d0fffe7e348e2a7b0660882b35228b6178dda8804a14ce44509fd2ca
DIST nx-tzdb-091025.tar.gz 983040 BLAKE2B c57b8e6e9b21985211330eeffcbffbaf5da8b4b7dacc50948aeb6bffb7f23c3dfabf902d19e4f503497c306f8ff279e4c9b69d87da49c57fd65a8629edcb00f3 SHA512 87abb2aeca716d5d77b05317086dbc2f8acfc2f3f76ce4778345ee3df19973e6cd8ecbf16cfab5ad94c9636a6c44fd3588f9aadd3cba89403cfd56c8bec645c5

View File

@@ -5,11 +5,13 @@ EAPI=8
inherit cmake xdg
_TZDB_VER=091025
DESCRIPTION="Nintendo Switch Emulator"
HOMEPAGE="https://eden-emu.dev"
SRC_URI="
https://git.eden-emu.dev/eden-emu/eden/archive/v${PV/_/-}.tar.gz -> ${P}.tar.gz
https://git.crueter.xyz/misc/tzdb_to_nx/releases/download/250725/250725.zip -> nx-tzdb-250725.zip
https://git.crueter.xyz/misc/tzdb_to_nx/releases/download/${_TZDB_VER}/${_TZDB_VER}.tar.gz -> nx-tzdb-${_TZDB_VER}.tar.gz
https://git.eden-emu.dev/eden-emu/eden/commit/6b01c13975439784cd40cf1810b67350111a41d3.patch ->
${PN}-0.0.4_rc1-revert-the-latest-Dynarmic-changes.patch
"
@@ -19,10 +21,10 @@ S="${WORKDIR}/${PN}"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64"
IUSE="camera cubeb discord gui lto opengl sdl ssl test usb web-applet web-service wifi"
IUSE="camera +cubeb discord +qt6 lto +opengl +sdl ssl test +usb web-applet web-service wifi room llvm renderdoc +gamemode"
REQUIRED_USE="
!gui? ( !camera !discord !opengl !web-applet )
web-service? ( ssl )
!qt6? ( !camera !discord !web-applet )
web-service? ( ssl || ( qt6 room ) )
"
RESTRICT="!test? ( test )"
@@ -31,10 +33,8 @@ RDEPEND="
app-arch/zstd
dev-libs/libfmt:=
dev-libs/mcl
dev-libs/sirit
>=dev-libs/sirit-1.0.1
dev-util/spirv-tools
llvm-core/llvm
media-gfx/renderdoc
media-libs/libva
media-libs/opus
media-video/ffmpeg
@@ -53,7 +53,7 @@ RDEPEND="
dev-cpp/cpp-httplib:=[ssl]
dev-libs/discord-rpc
)
gui? (
qt6? (
dev-libs/quazip[qt6]
dev-qt/qtbase:6[concurrent,dbus,gui,widgets]
)
@@ -63,6 +63,9 @@ RDEPEND="
web-applet? ( dev-qt/qtwebengine:6[widgets] )
web-service? ( dev-cpp/cpp-httplib:=[ssl] )
wifi? ( net-wireless/wireless-tools )
llvm? ( llvm-core/llvm )
renderdoc? ( media-gfx/renderdoc )
gamemode? ( games-util/gamemode )
"
DEPEND="
${RDEPEND}
@@ -74,7 +77,6 @@ DEPEND="
dev-util/spirv-headers
dev-util/vulkan-headers
dev-util/vulkan-utility-libraries
games-util/gamemode
media-libs/VulkanMemoryAllocator
amd64? ( dev-libs/xbyak )
@@ -103,6 +105,7 @@ declare -A KEEP_BUNDLED=(
# Generated or copied files for internal usage
[bc_decoder]=MPL-2.0
[cmake-modules]=Boost-1.0
[demangle]="Apache-2.0 WITH LLVM-exception"
[FidelityFX-FSR]=MIT
[glad]=GPL-2+
[nx_tzdb]="GPL-2+"
@@ -141,25 +144,30 @@ src_configure() {
local mycmakeargs=(
-DCPMUTIL_FORCE_SYSTEM=yes
-DTITLE_BAR_FORMAT_IDLE="Eden | v${PV/_/-}"
-DYUZU_TZDB_PATH="${WORKDIR}"
-DYUZU_TZDB_PATH="${WORKDIR}/${_TZDB_VER}"
-DYUZU_USE_FASTER_LD=no
-DDYNARMIC_ENABLE_LTO=$(usex lto)
-DYUZU_ENABLE_LTO=$(usex lto)
-DDYNARMIC_USE_LLVM=$(usex llvm)
-DYUZU_DISABLE_LLVM=$(usex !llvm)
-DBUILD_TESTING=$(usex test)
-DENABLE_CUBEB=$(usex cubeb)
-DENABLE_LIBUSB=$(usex usb)
-DENABLE_OPENGL=$(usex opengl)
-DENABLE_OPENSSL=$(usex ssl)
-DENABLE_QT=$(usex gui)
-DENABLE_QT=$(usex qt6)
-DENABLE_SDL2=$(usex sdl)
-DENABLE_WEB_SERVICE=$(usex web-service)
-DENABLE_WIFI_SCAN=$(usex wifi)
-DUSE_DISCORD_PRESENCE=$(usex discord)
-DYUZU_ENABLE_LTO=$(usex lto)
-DYUZU_USE_QT_MULTIMEDIA=$(usex camera)
-DYUZU_USE_QT_WEB_ENGINE=$(usex web-applet)
-DYUZU_ROOM=$(usex room)
-Wno-dev
)

View File

@@ -5,17 +5,25 @@
<name>Pavel Sobolev</name>
<email>contact@paveloom.dev</email>
</maintainer>
<maintainer type="person">
<name>crueter</name>
<email>crueter@crueter.xyz</email>
</maintainer>
<use>
<flag name="camera">Enable camera support</flag>
<flag name="camera">Enable camera support through dev-qt/qtmultimedia</flag>
<flag name="cubeb">Enable the cubeb audio backend</flag>
<flag name="discord">Enable Discord Rich Presence</flag>
<flag name="opengl">Enable the OpenGL frontend</flag>
<flag name="sdl">Enable the SDL2 frontend</flag>
<flag name="ssl">Enable OpenSSL backend for ISslConnection</flag>
<flag name="usb">Enable the use of LibUSB</flag>
<flag name="web-applet">Enable web applet support</flag>
<flag name="web-service">Enable web services (telemetry, etc.)</flag>
<flag name="opengl">Enable the OpenGL graphics backend</flag>
<flag name="sdl">Enable the SDL2 frontend (eden-cli, controller backend...)</flag>
<flag name="ssl">Enable the OpenSSL backend for ISslConnection</flag>
<flag name="usb">Enable the LibUSB controller backend</flag>
<flag name="web-applet">Enable the custom web applet frontend through dev-qt/qtwebengine</flag>
<flag name="web-service">Enable multiplayer support</flag>
<flag name="wifi">Enable Wi-Fi scanning</flag>
<flag name="room">Compile the dedicated room executable</flag>
<flag name="llvm">Enable the LLVM backend for disassembly and symbol demangling</flag>
<flag name="renderdoc">Enable the RenderDoc API for graphics debugging</flag>
<flag name="gamemode">Enable the Feral Gamemode client for better performance</flag>
</use>
<upstream>
<bugs-to>https://git.eden-emu.dev/eden-emu/eden/issues</bugs-to>