summaryrefslogtreecommitdiff
path: root/games-emulation
diff options
context:
space:
mode:
Diffstat (limited to 'games-emulation')
-rw-r--r--games-emulation/Manifest.gzbin12061 -> 12063 bytes
-rw-r--r--games-emulation/dolphin/Manifest16
-rw-r--r--games-emulation/dolphin/dolphin-2407.ebuild306
-rw-r--r--games-emulation/dolphin/dolphin-9999.ebuild220
-rw-r--r--games-emulation/dolphin/files/dolphin-2407-fix-llvm-build.patch27
-rw-r--r--games-emulation/dolphin/files/dolphin-2407-libfmt-11-fix.patch103
-rw-r--r--games-emulation/dolphin/files/dolphin-2407-minizip.patch18
-rw-r--r--games-emulation/dolphin/metadata.xml1
-rw-r--r--games-emulation/melonds/Manifest4
-rw-r--r--games-emulation/melonds/melonds-0.9.5_p20240815.ebuild99
-rw-r--r--games-emulation/melonds/melonds-9999.ebuild37
11 files changed, 748 insertions, 83 deletions
diff --git a/games-emulation/Manifest.gz b/games-emulation/Manifest.gz
index 24996939bbca..37c921ee0607 100644
--- a/games-emulation/Manifest.gz
+++ b/games-emulation/Manifest.gz
Binary files differ
diff --git a/games-emulation/dolphin/Manifest b/games-emulation/dolphin/Manifest
index 125a61ec3c5e..2129f9c56ef9 100644
--- a/games-emulation/dolphin/Manifest
+++ b/games-emulation/dolphin/Manifest
@@ -1,7 +1,19 @@
+AUX dolphin-2407-fix-llvm-build.patch 1361 BLAKE2B 262b0a84544204a72025da8ed7397cb5619736befdf7a3cf5099eb35ffe131ad46ddbfa5544a50dec1160b63b515b947fc25a6967ab365ea25fba97b87f1099b SHA512 3df2faab776861c29cbcf7fc40ca439e04dc03438434647519e65e066d86cf34f7fc155f99323f53fdc30a4368c0d95c87df384b21d839ee01be762aee8a6cb9
+AUX dolphin-2407-libfmt-11-fix.patch 2822 BLAKE2B 89c183a2841ad27c40f18b1d607b28b7908e7a34b2a649f6a84862ce695d8b6525bef70f3270c12983e918c8bd7d0e6cd3247325a7e0e4a632adac4e1556759b SHA512 ca07ed0582a9fde6e8d8035dfa778b55783a407c9f10c9de8d481591bfe5caf2d7f9e9a61f6b62c8d4db3dfe1cbef31c5d771ae44004a5cd52aacd3ddcec3cc2
+AUX dolphin-2407-minizip.patch 422 BLAKE2B 359afbcaf0cc12e0320fd5c1074f2e47fc285e7eb97302daefa4b932c333c68f5bcc5385cb9a23aeb5b9547486632e532d2e20634ac12907ce7eeeada975c00e SHA512 d867cc862494d699ffe4fd83fc5ef360ebb89d1d7c3d879c5dd04257acba7187db35d772d2ff6d12264ee438f5a221f8b94c3c4ccbfa2a14c4f95735f80d8a81
AUX dolphin-5.0_p20220520-gcc-14.patch 985 BLAKE2B ce23b524350d24bc782a6dc6e247015f451c18a1dd51271b89ba20acd4d44a89f6c09850693fcc7bb625314312f47bfdc692bcda53c6ea8889cdca49d53c1ca1 SHA512 72fa9cd0a919b0d38104d7fc050b11ec63c6caac0424477e57b810240bd0a601ec4884fc71c0d52ab302bb198ae202fd7d6fabe94741efc75e53409979300b88
AUX dolphin-5.0_p20220520-libfmt-9.0.0-fix-build.patch 1473 BLAKE2B ce7d9aaf62fc71262600d72442251241353c6280c84d1d08d2986a99330ae22b786983ba3b99484983adf7e7367c094d3f5a7ce1184e94686516c093d3c9957a SHA512 7bbd120fecf9ad18a2fb242d3568da4c013081dbe39045007e82f4ed56a52800d2afeca7263abf785ff023432f0d60cb36b629fb41555b7b39ef56b12fa16aa6
+DIST Vulkan-Headers-05fe2cc910a68c9ba5dac07db46ef78573acee72.tar.gz 2288519 BLAKE2B bd11ba3ecac3bf0f6df255a4b87556092b9630c85b97cbcc2c0901d5293882da6f996e326cce8f410f8503f9e29454f0a2994c4adceb4565490d435b307d4495 SHA512 3679a087ea024a15b2d30730834345d2af3869ae012bcc5a996eed90558516d16b762010d887b9c762b5177bfc0a21b3bd29dbc4e236e067132623482068b058
+DIST VulkanMemoryAllocator-009ecd192c1289c7529bff248a16cfe896254816.tar.gz 904841 BLAKE2B 64966d40b86197a18f86c9715acb2ea649ea6b69d3de38d9385a8130e35519036eca49b7503886123284be58d5c248dd9d7c5cb16a489c64d385439c382dcd30 SHA512 3a47a4bc81562b96f598f357b803d2219fa167e6eb87779837efa6e85fc6eaff8e1cfbdea0935117a7b3c630cc99944b94e91823eafa8a94d80b2c459f33c317
+DIST dolphin-2407.tar.gz 19773792 BLAKE2B a6de162479d45e6b1cba5444df5abdeafd92773d1e49cc837dfc6c1ab45ed11d7a3f72a582ddb56d0ecc6b550d03c1a02a9389852ba438d8a9235d5ea3285d4b SHA512 8bb8459d8b653708e34d5df184d96ba9705e8c50b00d066862d4012f78b7e71938207979b3bd900dd14c35c3b6c0258bb5c8fad9ba73267188e98d8a2edfb73f
DIST dolphin-5.0_p20220520.tar.gz 34880474 BLAKE2B 925cddfe8a5d6febced5721bea6ced7c8d2855619f74ca8940b95dc78ea523b4a1083b9ef6efe3561d833b8e9ecb742cb2adf5a1864c06b629b3ecd9e92cc871 SHA512 4993cb10061b142f6627c96493885a5f9d88857d8949c2e8e8d5df5ba6e19b4f98d199da5e641d3d61294884e1cbbe8191bc5b4445c60bf80723046b2524aad5
+DIST implot-cc5e1daa5c7f2335a9460ae79c829011dc5cef2d.tar.gz 137924 BLAKE2B c830275b05a74e8a60a7164f22c01dd9a5a35f9219736785c9cc17830dae809eb8cba65604b0388c3966d7658c9fe71cb9a8468c23d3ed17b7890581a2222cb8 SHA512 ab9935e759f38d19e6f60ed195c22018929ba46fccf783f4486346d7ffb7040b6097bc4c3d3b3577cc91f0c413684e07449a24bebf3db9c937638092c181de92
DIST mgba-40d4c430fc36caeb7ea32fd39624947ed487d2f2.tar.gz 12921593 BLAKE2B 8c5cf7b9b53f897f6248ad6bc51efafaa8a9d5df137d42d30f4b042b6d1527049644595938626c8cae1385d329bc45bf42db8dcc4424b963a3899e0df53246eb SHA512 26d7b60cbc7415652bb9ca2a42ccd532856867db57bf6dd91d8204551970109b6b9f4a96c42d643ea96b9d071d6aec924d3c1bb79c251c95183b7fb8536456c9
+DIST mgba-8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51.tar.gz 14488880 BLAKE2B 5beec2de9a0999a93a4ad704f45246b551824a9ddd576a5b77e731b269fb8f7d311d1c4e2cfb217f34e22a49050498c70e52d714d9c0bb7b4e4d178f49f15c3d SHA512 782d456b7bf827591c774f146a88821b41b3b936faefddb5aee82bb0dd16ca7ad7228a1c331e1e517eac40a71cc4c94cc44bee12560946328c8433e1c6327225
+DIST minizip-ng-3eed562ef0ea3516db30d1c8ecb0e1b486d8cb70.tar.gz 770054 BLAKE2B 7d5b24a5be7134ac17178869883625b28fa80a55f878231ca4156901057db72b20b4d342f8d0bb04a436fcd72d7ccbb0f79adc8503a16e1197a84f3a476da730 SHA512 f76a2cefd7d9ad47f8c3c73b3483b657fab0507605e0b29895eaec759718a65f0d2915ea7022831f3f98493891a1ab4f5035971bf09d4860abbf4cde0b091869
+DIST tinygltf-c5641f2c22d117da7971504591a8f6a41ece488b.tar.gz 5903179 BLAKE2B 0ef4b36cf26f3a5a544d0c739317b8cce041121b1dec58d1d9dbc3bbc892df284d80aa4c45ec1ebc332ba96b151230a5b0dbf95b95aefcf86ee7878c393eda5d SHA512 486bcf32be137dea5746117074dc51bc978290698de7831e1c4bbaa4acb56ed99fc34c38e69878a955b3e5f10f43eab07b0637164f822beae0fddd099aa0c56d
+DIST zlib-ng-ce01b1e41da298334f8214389cc9369540a7560f.tar.gz 2223118 BLAKE2B c79a138c31c74c291ae38a6c4d8983e0884169ced4147d7242d1a766f70777de0368ceba815ac2261bd2543dba55a6106b70f7e040fae4f200863da217f88978 SHA512 73f4e56410ae298ef211ebab52b1a0d3d5bfae91c2de3cd294b56cd0a78ab50e1203b396c7df462f360c1aaaa9392ec5625473d1e9eb084cc64bc813e28d12a1
+EBUILD dolphin-2407.ebuild 7897 BLAKE2B 88af5fd11666613d30c9ead31479f65932ef4be85b2e888d58c8a3b690f2e81a073b8f418559b30bf0e138a3f05b4f17e848a3364c421a9267b8ab424329cd44 SHA512 cda4e8b9ba98fa1f37e5594823bf0786404fa0b6fe698bf8fc3077dedc40b145f15e53d7770a0f62c43ef972592714ca51bee2597eefbb6a0888c9a05117db1b
EBUILD dolphin-5.0_p20220520-r3.ebuild 4979 BLAKE2B 46fce5ad63f25de89c9a130793c63a221091355cab4c83de6f8d24d086ce9af95d2c51fd84492864e65d859f124148aaec2ab5e20eb53a881d0cedcc9ef523f1 SHA512 0ab0763991dbdd20aa80069fb85dd8dee3962d6c5b227c645d1dece979d311845224060bfc03005e1fd4c454551f6ef544cef02d10b1a8d9fe1b19d2c0b6a2ef
-EBUILD dolphin-9999.ebuild 4829 BLAKE2B a2419c154b9416db0a3dcecbf96440cbbe89ee52eb18834d6fac6c3e3e1d4b3b9e0a3e62ce7b95381f5faea2660b98b596bcf37409a6874da9beb56f012c1ed0 SHA512 0e350f7afb671b1e33afef83410f376abc671847af16b084f12f7aa331679d6b0adb2df53a07b3ebce531a5c1ef6444bb8ab3fe01bbe0150c3415acc2d1ae8f1
-MISC metadata.xml 938 BLAKE2B 07b08890471080d41dd0bbc37bc94e5c9b7d98f2c0cea33c592dea3ccc331f9e6d8ef99cff08350f382c8298111e2d8f811f703562a045cbe853cf12c482ea04 SHA512 91239b346061f8f474880e13c6d3e877a63637d7e56d4c31106e6a17583e0a30db29eec8fe6a711fb033efcec39a7262037e0f7f867459398841b8339d3f6bef
+EBUILD dolphin-9999.ebuild 7848 BLAKE2B ff8138ad6cd6f769c26b4aef5b98428d20558177da437370768bc1fba2e086199e7c86fad54d018508a4a228cfcdc73c1e5ab4d96a7ad59d0b8b6e005f077584 SHA512 600f3afe4357cc03747b9c982d62c1513ef2115b1fe6beaf6ad2817bb3892eb516092382b92b7080731db4024d9cfcf0f3b2f65421cac4e95169c274b000fd76
+MISC metadata.xml 1003 BLAKE2B 29d426769469da0b23975299b97d310f962b1c3c18a765389b47b8361821014f45b068991b1b21a57344ce34815a1ce609e6c552ed992eff9b84045b74872e41 SHA512 50c546c0a35693c1e1c3d8b53e697e19fc675dd577f6803abe04b1348e08576b0e79640e6978b31484182ecc24cc42557b301c90e2cc31b9c3ead055fdc21458
diff --git a/games-emulation/dolphin/dolphin-2407.ebuild b/games-emulation/dolphin/dolphin-2407.ebuild
new file mode 100644
index 000000000000..bc400baf4651
--- /dev/null
+++ b/games-emulation/dolphin/dolphin-2407.ebuild
@@ -0,0 +1,306 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 18 )
+LLVM_OPTIONAL=1
+
+inherit cmake llvm-r1 pax-utils xdg-utils
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/dolphin-emu/dolphin"
+ EGIT_SUBMODULES=(
+ Externals/mGBA/mgba
+ Externals/implot/implot
+ Externals/tinygltf/tinygltf
+ Externals/Vulkan-Headers
+ Externals/VulkanMemoryAllocator
+ Externals/zlib-ng/zlib-ng
+ Externals/minizip-ng/minizip-ng
+ )
+else
+ MGBA_COMMIT=8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51
+ IMPLOT_COMMIT=cc5e1daa5c7f2335a9460ae79c829011dc5cef2d
+ TINYGLTF_COMMIT=c5641f2c22d117da7971504591a8f6a41ece488b
+ VULKAN_HEADERS_COMMIT=05fe2cc910a68c9ba5dac07db46ef78573acee72
+ VULKANMEMORYALLOCATOR_COMMIT=009ecd192c1289c7529bff248a16cfe896254816
+ ZLIB_NG_COMMIT=ce01b1e41da298334f8214389cc9369540a7560f
+ MINIZIP_NG_COMMIT=3eed562ef0ea3516db30d1c8ecb0e1b486d8cb70
+ SRC_URI="
+ https://github.com/dolphin-emu/dolphin/archive/${PV}.tar.gz
+ -> ${P}.tar.gz
+ https://github.com/epezent/implot/archive/${IMPLOT_COMMIT}.tar.gz
+ -> implot-${IMPLOT_COMMIT}.tar.gz
+ https://github.com/syoyo/tinygltf/archive/${TINYGLTF_COMMIT}.tar.gz
+ -> tinygltf-${TINYGLTF_COMMIT}.tar.gz
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/${VULKAN_HEADERS_COMMIT}.tar.gz
+ -> Vulkan-Headers-${VULKAN_HEADERS_COMMIT}.tar.gz
+ https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/archive/${VULKANMEMORYALLOCATOR_COMMIT}.tar.gz
+ -> VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}.tar.gz
+ https://github.com/zlib-ng/zlib-ng/archive/${ZLIB_NG_COMMIT}.tar.gz
+ -> zlib-ng-${ZLIB_NG_COMMIT}.tar.gz
+ https://github.com/zlib-ng/minizip-ng/archive/${MINIZIP_NG_COMMIT}.tar.gz
+ -> minizip-ng-${MINIZIP_NG_COMMIT}.tar.gz
+ mgba? (
+ https://github.com/mgba-emu/mgba/archive/${MGBA_COMMIT}.tar.gz
+ -> mgba-${MGBA_COMMIT}.tar.gz
+ )
+ "
+ KEYWORDS="~amd64"
+fi
+
+DESCRIPTION="Gamecube and Wii game emulator"
+HOMEPAGE="https://dolphin-emu.org/"
+
+LICENSE="GPL-2+ BSD BSD-2 LGPL-2.1+ MIT ZLIB"
+SLOT="0"
+IUSE="
+ alsa bluetooth discord-presence doc egl +evdev ffmpeg +gui llvm log mgba
+ profile pulseaudio sdl systemd telemetry test upnp vulkan
+"
+REQUIRED_USE="
+ mgba? ( gui )
+ llvm? ( ${LLVM_REQUIRED_USE} )
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ app-arch/bzip2:=
+ >=app-arch/lz4-1.8:=
+ app-arch/xz-utils
+ >=app-arch/zstd-1.4.0:=
+ dev-libs/hidapi
+ >=dev-libs/libfmt-10.1:=
+ dev-libs/lzo:2
+ dev-libs/pugixml
+ dev-libs/xxhash
+ media-libs/cubeb
+ media-libs/libsfml:=
+ media-libs/libspng
+ >=net-libs/enet-1.3.18:1.3=
+ net-libs/mbedtls:=
+ net-misc/curl
+ x11-libs/libX11
+ x11-libs/libXi
+ x11-libs/libXrandr
+ virtual/libusb:1
+ virtual/opengl
+ alsa? ( media-libs/alsa-lib )
+ bluetooth? ( net-wireless/bluez:= )
+ evdev? (
+ dev-libs/libevdev
+ virtual/udev
+ )
+ ffmpeg? ( media-video/ffmpeg:= )
+ gui? (
+ dev-qt/qtbase:6[gui,widgets]
+ dev-qt/qtsvg:6
+ )
+ llvm? ( $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}=') )
+ profile? ( dev-util/oprofile )
+ pulseaudio? ( media-libs/libpulse )
+ sdl? ( media-libs/libsdl2 )
+ systemd? ( sys-apps/systemd:0= )
+ upnp? ( net-libs/miniupnpc:= )
+"
+DEPEND="
+ ${RDEPEND}
+ egl? ( media-libs/libglvnd )
+ test? ( dev-cpp/gtest )
+"
+BDEPEND="
+ sys-devel/gettext
+ virtual/pkgconfig
+"
+
+# vulkan-loader required for vulkan backend which can be selected
+# at runtime.
+RDEPEND+="
+ vulkan? ( media-libs/vulkan-loader )
+"
+
+# [directory]=license
+declare -A KEEP_BUNDLED=(
+ # please keep this list in CMakeLists.txt order
+
+ # TODO: use system libraries
+ [zlib-ng]=ZLIB
+ [minizip-ng]=ZLIB
+
+ [Bochs_disasm]=LGPL-2.1+
+ [cpp-optparse]=MIT
+ [imgui]=MIT
+ [implot]=MIT
+ [glslang]=BSD
+
+ [tinygltf]=MIT
+
+ [FreeSurround]=GPL-2+
+ [soundtouch]=LGPL-2.1+
+
+ # FIXME: discord-rpc not packaged
+ [discord-rpc]=MIT
+
+ [mGBA]=MPL-2.0
+
+ [picojson]=BSD-2
+ [expr]=MIT
+ [rangeset]=ZLIB
+ [FatFs]=FatFs
+ [Vulkan-Headers]="|| ( Apache-2.0 MIT )"
+ [VulkanMemoryAllocator]=MIT
+)
+
+PATCHES=(
+ "${FILESDIR}"/dolphin-2407-libfmt-11-fix.patch
+ "${FILESDIR}"/dolphin-2407-minizip.patch
+ "${FILESDIR}"/dolphin-2407-fix-llvm-build.patch
+)
+
+add_bundled_licenses() {
+ for license in ${KEEP_BUNDLED[@]}; do
+ LICENSE+=" ${license}"
+ done
+}
+add_bundled_licenses
+
+pkg_setup() {
+ use llvm && llvm-r1_pkg_setup
+}
+
+src_prepare() {
+ if [[ ${PV} != *9999 ]]; then
+ mv -T "${WORKDIR}/implot-${IMPLOT_COMMIT}" Externals/implot/implot || die
+ mv -T "${WORKDIR}/tinygltf-${TINYGLTF_COMMIT}" Externals/tinygltf/tinygltf || die
+ mv -T "${WORKDIR}/Vulkan-Headers-${VULKAN_HEADERS_COMMIT}" Externals/Vulkan-Headers || die
+ mv -T "${WORKDIR}/VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}" Externals/VulkanMemoryAllocator || die
+ mv -T "${WORKDIR}/zlib-ng-${ZLIB_NG_COMMIT}" Externals/zlib-ng/zlib-ng || die
+ mv -T "${WORKDIR}/minizip-ng-${MINIZIP_NG_COMMIT}" Externals/minizip-ng/minizip-ng || die
+ if use mgba; then
+ mv -T "${WORKDIR}/mgba-${MGBA_COMMIT}" Externals/mGBA/mgba || die
+ fi
+ fi
+
+ cmake_src_prepare
+
+ local s remove=()
+ for s in Externals/*; do
+ [[ -f ${s} ]] && continue
+ if ! has "${s#Externals/}" "${!KEEP_BUNDLED[@]}"; then
+ remove+=( "${s}" )
+ fi
+ done
+
+ einfo "removing sources: ${remove[*]}"
+ rm -r "${remove[@]}" || die
+
+ # About 50% compile-time speedup
+ if ! use vulkan; then
+ sed -i -e '/Externals\/glslang/d' CMakeLists.txt || die
+ fi
+
+ # Remove dirty suffix: needed for netplay
+ sed -i -e 's/--dirty/&=""/' CMake/ScmRevGen.cmake || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DDSPTOOL=ON
+ -DENABLE_ALSA=$(usex alsa)
+ -DENABLE_ANALYTICS=$(usex telemetry)
+ -DENABLE_AUTOUPDATE=OFF
+ -DENABLE_BLUEZ=$(usex bluetooth)
+ -DENABLE_CLI_TOOL=ON
+ -DENABLE_EGL=$(usex egl)
+ -DENABLE_EVDEV=$(usex evdev)
+ -DENABLE_LLVM=$(usex llvm)
+ -DENABLE_LTO=OFF # just adds -flto, user can do that via flags
+ -DENABLE_NOGUI=$(usex !gui)
+ -DENABLE_PULSEAUDIO=$(usex pulseaudio)
+ -DENABLE_QT=$(usex gui)
+ -DENABLE_SDL=$(usex sdl)
+ -DENABLE_TESTS=$(usex test)
+ -DENABLE_VULKAN=$(usex vulkan)
+ -DENCODE_FRAMEDUMPS=$(usex ffmpeg)
+ -DFASTLOG=$(usex log)
+ -DOPROFILING=$(usex profile)
+ -DSTEAM=OFF
+ -DUSE_DISCORD_PRESENCE=$(usex discord-presence)
+ -DUSE_MGBA=$(usex mgba)
+ -DUSE_RETRO_ACHIEVEMENTS=OFF
+ -DUSE_UPNP=$(usex upnp)
+
+ -DCMAKE_DISABLE_FIND_PACKAGE_SYSTEMD=$(usex !systemd)
+
+ # Use system libraries
+ -DUSE_SYSTEM_FMT=ON
+ -DUSE_SYSTEM_PUGIXML=ON
+ -DUSE_SYSTEM_ENET=ON
+ -DUSE_SYSTEM_XXHASH=ON
+ -DUSE_SYSTEM_BZIP2=ON
+ -DUSE_SYSTEM_LIBLZMA=ON
+ -DUSE_SYSTEM_ZSTD=ON
+ -DUSE_SYSTEM_ZLIB=OFF
+ -DUSE_SYSTEM_MINIZIP=OFF
+ -DUSE_SYSTEM_LZO=ON
+ -DUSE_SYSTEM_LZ4=ON
+ -DUSE_SYSTEM_SPNG=ON
+ -DUSE_SYSTEM_CUBEB=ON
+ -DUSE_SYSTEM_LIBUSB=ON
+ -DUSE_SYSTEM_SFML=ON
+ -DUSE_SYSTEM_MBEDTLS=ON
+ -DUSE_SYSTEM_CURL=ON
+ -DUSE_SYSTEM_ICONV=ON
+ -DUSE_SYSTEM_HIDAPI=ON
+
+ # Use ccache only when user did set FEATURES=ccache (or similar)
+ # not when ccache binary is present in system (automagic).
+ -DCCACHE_BIN=CCACHE_BIN-NOTFOUND
+
+ # Undo cmake.eclass's defaults.
+ # All dolphin's libraries are private
+ # and rely on circular dependency resolution.
+ -DBUILD_SHARED_LIBS=OFF
+
+ # Avoid warning spam around unset variables.
+ -Wno-dev
+ )
+
+ # System installed git shouldnt affect non live builds
+ [[ ${PV} != *9999 ]] && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON )
+
+ use test && mycmakeargs+=( -DUSE_SYSTEM_GTEST=ON )
+ use mgba && mycmakeargs+=( -DUSE_SYSTEM_LIBMGBA=OFF )
+ use sdl && mycmakeargs+=( -DUSE_SYSTEM_SDL2=ON )
+ use upnp && mycmakeargs+=( -DUSE_SYSTEM_MINIUPNPC=ON )
+
+ cmake_src_configure
+}
+
+src_test() {
+ cmake_build unittests
+}
+
+src_install() {
+ cmake_src_install
+
+ dodoc Readme.md
+ if use doc; then
+ dodoc -r docs/ActionReplay docs/DSP docs/WiiMote
+ fi
+
+ # Add pax markings for hardened systems
+ pax-mark -m "${ED}"/usr/bin/"${PN}"{-emu{,-nogui},-tool}
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
diff --git a/games-emulation/dolphin/dolphin-9999.ebuild b/games-emulation/dolphin/dolphin-9999.ebuild
index 25bf321c0c70..99620fc6f3d9 100644
--- a/games-emulation/dolphin/dolphin-9999.ebuild
+++ b/games-emulation/dolphin/dolphin-9999.ebuild
@@ -1,28 +1,54 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit cmake desktop flag-o-matic xdg-utils pax-utils
+LLVM_COMPAT=( 18 )
+LLVM_OPTIONAL=1
-if [[ ${PV} == *9999 ]]
-then
- EGIT_REPO_URI="https://github.com/dolphin-emu/dolphin"
- EGIT_SUBMODULES=( Externals/mGBA/mgba )
+inherit cmake llvm-r1 pax-utils xdg-utils
+
+if [[ ${PV} == *9999 ]]; then
inherit git-r3
+ EGIT_REPO_URI="https://github.com/dolphin-emu/dolphin"
+ EGIT_SUBMODULES=(
+ Externals/mGBA/mgba
+ Externals/implot/implot
+ Externals/tinygltf/tinygltf
+ Externals/Vulkan-Headers
+ Externals/VulkanMemoryAllocator
+ Externals/zlib-ng/zlib-ng
+ Externals/minizip-ng/minizip-ng
+ )
else
- EGIT_COMMIT=0f2540a0d1133950467845f20b1e003181147781
- MGBA_COMMIT=40d4c430fc36caeb7ea32fd39624947ed487d2f2
+ MGBA_COMMIT=8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51
+ IMPLOT_COMMIT=cc5e1daa5c7f2335a9460ae79c829011dc5cef2d
+ TINYGLTF_COMMIT=c5641f2c22d117da7971504591a8f6a41ece488b
+ VULKAN_HEADERS_COMMIT=05fe2cc910a68c9ba5dac07db46ef78573acee72
+ VULKANMEMORYALLOCATOR_COMMIT=009ecd192c1289c7529bff248a16cfe896254816
+ ZLIB_NG_COMMIT=ce01b1e41da298334f8214389cc9369540a7560f
+ MINIZIP_NG_COMMIT=3eed562ef0ea3516db30d1c8ecb0e1b486d8cb70
SRC_URI="
- https://github.com/dolphin-emu/dolphin/archive/${EGIT_COMMIT}.tar.gz
+ https://github.com/dolphin-emu/dolphin/archive/${PV}.tar.gz
-> ${P}.tar.gz
+ https://github.com/epezent/implot/archive/${IMPLOT_COMMIT}.tar.gz
+ -> implot-${IMPLOT_COMMIT}.tar.gz
+ https://github.com/syoyo/tinygltf/archive/${TINYGLTF_COMMIT}.tar.gz
+ -> tinygltf-${TINYGLTF_COMMIT}.tar.gz
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/${VULKAN_HEADERS_COMMIT}.tar.gz
+ -> Vulkan-Headers-${VULKAN_HEADERS_COMMIT}.tar.gz
+ https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/archive/${VULKANMEMORYALLOCATOR_COMMIT}.tar.gz
+ -> VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}.tar.gz
+ https://github.com/zlib-ng/zlib-ng/archive/${ZLIB_NG_COMMIT}.tar.gz
+ -> zlib-ng-${ZLIB_NG_COMMIT}.tar.gz
+ https://github.com/zlib-ng/minizip-ng/archive/${MINIZIP_NG_COMMIT}.tar.gz
+ -> minizip-ng-${MINIZIP_NG_COMMIT}.tar.gz
mgba? (
https://github.com/mgba-emu/mgba/archive/${MGBA_COMMIT}.tar.gz
-> mgba-${MGBA_COMMIT}.tar.gz
)
"
- S=${WORKDIR}/${PN}-${EGIT_COMMIT}
- KEYWORDS="~amd64 ~arm64"
+ KEYWORDS="~amd64"
fi
DESCRIPTION="Gamecube and Wii game emulator"
@@ -31,51 +57,58 @@ HOMEPAGE="https://dolphin-emu.org/"
LICENSE="GPL-2+ BSD BSD-2 LGPL-2.1+ MIT ZLIB"
SLOT="0"
IUSE="
- alsa bluetooth discord-presence doc +evdev ffmpeg +gui log mgba
- profile pulseaudio systemd upnp vulkan
+ alsa bluetooth discord-presence doc egl +evdev ffmpeg +gui llvm log mgba
+ profile pulseaudio sdl systemd telemetry test upnp vulkan
+"
+REQUIRED_USE="
+ mgba? ( gui )
+ llvm? ( ${LLVM_REQUIRED_USE} )
"
+RESTRICT="!test? ( test )"
RDEPEND="
app-arch/bzip2:=
- app-arch/xz-utils:=
- app-arch/zstd:=
- dev-libs/hidapi:=
- >=dev-libs/libfmt-8:=
- dev-libs/lzo:=
- dev-libs/pugixml:=
- media-libs/cubeb:=
- media-libs/libpng:=
+ >=app-arch/lz4-1.8:=
+ app-arch/xz-utils
+ >=app-arch/zstd-1.4.0:=
+ dev-libs/hidapi
+ >=dev-libs/libfmt-10.1:=
+ dev-libs/lzo:2
+ dev-libs/pugixml
+ dev-libs/xxhash
+ media-libs/cubeb
media-libs/libsfml:=
- media-libs/mesa[egl(+)]
- net-libs/enet:1.3
+ media-libs/libspng
+ >=net-libs/enet-1.3.18:1.3=
net-libs/mbedtls:=
- net-misc/curl:=
- sys-libs/readline:=
- sys-libs/zlib:=[minizip]
- x11-libs/libXext
+ net-misc/curl
+ x11-libs/libX11
x11-libs/libXi
x11-libs/libXrandr
virtual/libusb:1
virtual/opengl
alsa? ( media-libs/alsa-lib )
- bluetooth? ( net-wireless/bluez )
+ bluetooth? ( net-wireless/bluez:= )
evdev? (
dev-libs/libevdev
virtual/udev
)
ffmpeg? ( media-video/ffmpeg:= )
gui? (
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qtwidgets:5
+ dev-qt/qtbase:6[gui,widgets]
+ dev-qt/qtsvg:6
)
+ llvm? ( $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}=') )
profile? ( dev-util/oprofile )
pulseaudio? ( media-libs/libpulse )
+ sdl? ( media-libs/libsdl2 )
systemd? ( sys-apps/systemd:0= )
- upnp? ( net-libs/miniupnpc )
+ upnp? ( net-libs/miniupnpc:= )
"
DEPEND="
${RDEPEND}
+ egl? ( media-libs/libglvnd )
+ test? ( dev-cpp/gtest )
"
BDEPEND="
sys-devel/gettext
@@ -92,16 +125,17 @@ RDEPEND+="
declare -A KEEP_BUNDLED=(
# please keep this list in CMakeLists.txt order
+ # TODO: use system libraries
+ [zlib-ng]=ZLIB
+ [minizip-ng]=ZLIB
+
[Bochs_disasm]=LGPL-2.1+
[cpp-optparse]=MIT
[imgui]=MIT
+ [implot]=MIT
[glslang]=BSD
- # FIXME: xxhash can't be found by cmake
- [xxhash]=BSD-2
-
- # FIXME: requires minizip-ng
- #[minizip]=ZLIB
+ [tinygltf]=MIT
[FreeSurround]=GPL-2+
[soundtouch]=LGPL-2.1+
@@ -112,14 +146,40 @@ declare -A KEEP_BUNDLED=(
[mGBA]=MPL-2.0
[picojson]=BSD-2
+ [expr]=MIT
[rangeset]=ZLIB
- [gtest]= # (build-time only)
+ [FatFs]=FatFs
+ [Vulkan-Headers]="|| ( Apache-2.0 MIT )"
+ [VulkanMemoryAllocator]=MIT
+)
+
+PATCHES=(
+ "${FILESDIR}"/dolphin-2407-libfmt-11-fix.patch
+ "${FILESDIR}"/dolphin-2407-minizip.patch
)
+add_bundled_licenses() {
+ for license in ${KEEP_BUNDLED[@]}; do
+ LICENSE+=" ${license}"
+ done
+}
+add_bundled_licenses
+
+pkg_setup() {
+ use llvm && llvm-r1_pkg_setup
+}
+
src_prepare() {
- if use mgba && [[ ${PV} != *9999 ]]; then
- rmdir Externals/mGBA/mgba || die
- mv "${WORKDIR}/mgba-${MGBA_COMMIT}" Externals/mGBA/mgba || die
+ if [[ ${PV} != *9999 ]]; then
+ mv -T "${WORKDIR}/implot-${IMPLOT_COMMIT}" Externals/implot/implot || die
+ mv -T "${WORKDIR}/tinygltf-${TINYGLTF_COMMIT}" Externals/tinygltf/tinygltf || die
+ mv -T "${WORKDIR}/Vulkan-Headers-${VULKAN_HEADERS_COMMIT}" Externals/Vulkan-Headers || die
+ mv -T "${WORKDIR}/VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}" Externals/VulkanMemoryAllocator || die
+ mv -T "${WORKDIR}/zlib-ng-${ZLIB_NG_COMMIT}" Externals/zlib-ng/zlib-ng || die
+ mv -T "${WORKDIR}/minizip-ng-${MINIZIP_NG_COMMIT}" Externals/minizip-ng/minizip-ng || die
+ if use mgba; then
+ mv -T "${WORKDIR}/mgba-${MGBA_COMMIT}" Externals/mGBA/mgba || die
+ fi
fi
cmake_src_prepare
@@ -140,43 +200,64 @@ src_prepare() {
sed -i -e '/Externals\/glslang/d' CMakeLists.txt || die
fi
- # Allow regular minizip.
- sed -i -e '/minizip/s:>=2[.]0[.]0::' CMakeLists.txt || die
-
# Remove dirty suffix: needed for netplay
- sed -i -e 's/--dirty/&=""/' CMakeLists.txt || die
-
- # Force Qt5 rather than automagic until support is properly handled here
- sed -i -e '/NAMES Qt6 COMP/d' Source/Core/DolphinQt/CMakeLists.txt || die
+ sed -i -e 's/--dirty/&=""/' CMake/ScmRevGen.cmake || die
}
src_configure() {
- # bug #891225 (https://bugs.dolphin-emu.org/issues/11481, QTBUG-61710)
- use gui && filter-lto
-
local mycmakeargs=(
- # Use ccache only when user did set FEATURES=ccache (or similar)
- # not when ccache binary is present in system (automagic).
- -DCCACHE_BIN=CCACHE_BIN-NOTFOUND
+ -DDSPTOOL=ON
-DENABLE_ALSA=$(usex alsa)
+ -DENABLE_ANALYTICS=$(usex telemetry)
-DENABLE_AUTOUPDATE=OFF
-DENABLE_BLUEZ=$(usex bluetooth)
+ -DENABLE_CLI_TOOL=ON
+ -DENABLE_EGL=$(usex egl)
-DENABLE_EVDEV=$(usex evdev)
- -DENCODE_FRAMEDUMPS=$(usex ffmpeg)
- -DENABLE_LLVM=OFF
- # just adds -flto, user can do that via flags
- -DENABLE_LTO=OFF
- -DUSE_MGBA=$(usex mgba)
+ -DENABLE_LLVM=$(usex llvm)
+ -DENABLE_LTO=OFF # just adds -flto, user can do that via flags
+ -DENABLE_NOGUI=$(usex !gui)
-DENABLE_PULSEAUDIO=$(usex pulseaudio)
-DENABLE_QT=$(usex gui)
- -DENABLE_SDL=OFF # not supported: #666558
+ -DENABLE_SDL=$(usex sdl)
+ -DENABLE_TESTS=$(usex test)
-DENABLE_VULKAN=$(usex vulkan)
+ -DENCODE_FRAMEDUMPS=$(usex ffmpeg)
-DFASTLOG=$(usex log)
-DOPROFILING=$(usex profile)
+ -DSTEAM=OFF
-DUSE_DISCORD_PRESENCE=$(usex discord-presence)
- -DUSE_SHARED_ENET=ON
+ -DUSE_MGBA=$(usex mgba)
+ -DUSE_RETRO_ACHIEVEMENTS=OFF
-DUSE_UPNP=$(usex upnp)
+ -DCMAKE_DISABLE_FIND_PACKAGE_SYSTEMD=$(usex !systemd)
+
+ # Use system libraries
+ -DUSE_SYSTEM_FMT=ON
+ -DUSE_SYSTEM_PUGIXML=ON
+ -DUSE_SYSTEM_ENET=ON
+ -DUSE_SYSTEM_XXHASH=ON
+ -DUSE_SYSTEM_BZIP2=ON
+ -DUSE_SYSTEM_LIBLZMA=ON
+ -DUSE_SYSTEM_ZSTD=ON
+ -DUSE_SYSTEM_ZLIB=OFF
+ -DUSE_SYSTEM_MINIZIP=OFF
+ -DUSE_SYSTEM_LZO=ON
+ -DUSE_SYSTEM_LZ4=ON
+ -DUSE_SYSTEM_SPNG=ON
+ -DUSE_SYSTEM_CUBEB=ON
+ -DUSE_SYSTEM_LIBUSB=ON
+ -DUSE_SYSTEM_SFML=ON
+ -DUSE_SYSTEM_MBEDTLS=ON
+ -DUSE_SYSTEM_CURL=ON
+ -DUSE_SYSTEM_ICONV=ON
+ -DUSE_SYSTEM_HIDAPI=ON
+
+ # Use ccache only when user did set FEATURES=ccache (or similar)
+ # not when ccache binary is present in system (automagic).
+ -DCCACHE_BIN=CCACHE_BIN-NOTFOUND
+
# Undo cmake.eclass's defaults.
# All dolphin's libraries are private
# and rely on circular dependency resolution.
@@ -186,6 +267,14 @@ src_configure() {
-Wno-dev
)
+ # System installed git shouldnt affect non live builds
+ [[ ${PV} != *9999 ]] && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON )
+
+ use test && mycmakeargs+=( -DUSE_SYSTEM_GTEST=ON )
+ use mgba && mycmakeargs+=( -DUSE_SYSTEM_LIBMGBA=OFF )
+ use sdl && mycmakeargs+=( -DUSE_SYSTEM_SDL2=ON )
+ use upnp && mycmakeargs+=( -DUSE_SYSTEM_MINIUPNPC=ON )
+
cmake_src_configure
}
@@ -201,17 +290,16 @@ src_install() {
dodoc -r docs/ActionReplay docs/DSP docs/WiiMote
fi
- doicon -s 48 Data/dolphin-emu.png
- doicon -s scalable Data/dolphin-emu.svg
- doicon Data/dolphin-emu.svg
+ # Add pax markings for hardened systems
+ pax-mark -m "${ED}"/usr/bin/"${PN}"{-emu{,-nogui},-tool}
}
pkg_postinst() {
- # Add pax markings for hardened systems
- pax-mark -m "${EPREFIX}"/usr/games/bin/"${PN}"-emu
+ xdg_desktop_database_update
xdg_icon_cache_update
}
pkg_postrm() {
+ xdg_desktop_database_update
xdg_icon_cache_update
}
diff --git a/games-emulation/dolphin/files/dolphin-2407-fix-llvm-build.patch b/games-emulation/dolphin/files/dolphin-2407-fix-llvm-build.patch
new file mode 100644
index 000000000000..2a678d176ae8
--- /dev/null
+++ b/games-emulation/dolphin/files/dolphin-2407-fix-llvm-build.patch
@@ -0,0 +1,27 @@
+https://github.com/dolphin-emu/dolphin/pull/12986
+https://github.com/dolphin-emu/dolphin/commit/9c5cd817e39b44ff2eb68c75d9405c582207b53b
+
+From 9c5cd817e39b44ff2eb68c75d9405c582207b53b Mon Sep 17 00:00:00 2001
+From: mitaclaw <140017135+mitaclaw@users.noreply.github.com>
+Date: Thu, 8 Aug 2024 09:42:14 -0700
+Subject: [PATCH] CMakeLists: Fix LLVM Usage In UICommon
+
+This compile definition was removed in 68cbd2640d4663fe29e21234dc068769cb9bc673 because it was complicated by changes in 50dc0ffbceebe0f633bd63cd4710a3e2f548d688. Thus, the LLVM disassembler would never be used in UICommon's Disassembler class.
+--- a/Source/Core/UICommon/CMakeLists.txt
++++ b/Source/Core/UICommon/CMakeLists.txt
+@@ -56,6 +56,7 @@ if(ENABLE_LLVM)
+ find_package(LLVM CONFIG)
+ if(LLVM_FOUND)
+ message(STATUS "LLVM found, enabling LLVM support in disassembler")
++ target_compile_definitions(uicommon PRIVATE HAVE_LLVM)
+ # Minimal documentation about LLVM's CMake functions is available here:
+ # https://releases.llvm.org/16.0.0/docs/CMake.html#embedding-llvm-in-your-project
+ # https://groups.google.com/g/llvm-dev/c/YeEVe7HTasQ?pli=1
+@@ -69,6 +70,7 @@ if(ENABLE_LLVM)
+ llvm_config(uicommon USE_SHARED
+ mcdisassembler target ${LLVM_EXPAND_COMPONENTS}
+ )
++ target_include_directories(uicommon PRIVATE ${LLVM_INCLUDE_DIRS})
+ endif()
+ endif()
+
diff --git a/games-emulation/dolphin/files/dolphin-2407-libfmt-11-fix.patch b/games-emulation/dolphin/files/dolphin-2407-libfmt-11-fix.patch
new file mode 100644
index 000000000000..bee165ac49fb
--- /dev/null
+++ b/games-emulation/dolphin/files/dolphin-2407-libfmt-11-fix.patch
@@ -0,0 +1,103 @@
+From f69c099c20afb5ae5262e93208f1a28e39d911f1 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Fri, 9 Aug 2024 08:54:08 +0300
+Subject: [PATCH 1/2] Add support for libfmt-11
+
+fmt::join was moved into fmt/ranges.h
+--- a/Source/Core/Common/StringUtil.cpp
++++ b/Source/Core/Common/StringUtil.cpp
+@@ -22,6 +22,7 @@
+ #include <vector>
+
+ #include <fmt/format.h>
++#include <fmt/ranges.h>
+
+ #include "Common/CommonFuncs.h"
+ #include "Common/CommonPaths.h"
+--- a/Source/Core/Core/HW/EXI/EXI_Device.h
++++ b/Source/Core/Core/HW/EXI/EXI_Device.h
+@@ -111,7 +111,7 @@ struct fmt::formatter<ExpansionInterface::EXIDeviceType>
+ constexpr formatter() : EnumFormatter(names) {}
+
+ template <typename FormatContext>
+- auto format(const ExpansionInterface::EXIDeviceType& e, FormatContext& ctx)
++ auto format(const ExpansionInterface::EXIDeviceType& e, FormatContext& ctx) const
+ {
+ if (e != ExpansionInterface::EXIDeviceType::None)
+ {
+--- a/Source/Core/Core/NetPlayClient.cpp
++++ b/Source/Core/Core/NetPlayClient.cpp
+@@ -17,6 +17,7 @@
+ #include <vector>
+
+ #include <fmt/format.h>
++#include <fmt/ranges.h>
+
+ #include "Common/Assert.h"
+ #include "Common/CommonPaths.h"
+--- a/Source/Core/Core/NetPlayServer.cpp
++++ b/Source/Core/Core/NetPlayServer.cpp
+@@ -18,6 +18,7 @@
+ #include <vector>
+
+ #include <fmt/format.h>
++#include <fmt/ranges.h>
+
+ #include "Common/CommonPaths.h"
+ #include "Common/ENet.h"
+--- a/Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp
++++ b/Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp
+@@ -7,6 +7,7 @@
+ #include <cmath>
+
+ #include <fmt/format.h>
++#include <fmt/ranges.h>
+
+ #include <QApplication>
+ #include <QClipboard>
+--- a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp
++++ b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp
+@@ -25,6 +25,8 @@
+ #include <algorithm>
+ #include <sstream>
+
++#include <fmt/ranges.h>
++
+ #include "Common/CommonPaths.h"
+ #include "Common/Config/Config.h"
+ #include "Common/HttpRequest.h"
+--- a/Source/Core/VideoBackends/OGL/OGLConfig.cpp
++++ b/Source/Core/VideoBackends/OGL/OGLConfig.cpp
+@@ -7,6 +7,8 @@
+ #include <string>
+ #include <string_view>
+
++#include <fmt/ranges.h>
++
+ #include "Common/Assert.h"
+ #include "Common/GL/GLContext.h"
+ #include "Common/GL/GLExtensions/GLExtensions.h"
+--- a/Source/Core/VideoCommon/VertexLoaderBase.cpp
++++ b/Source/Core/VideoCommon/VertexLoaderBase.cpp
+@@ -11,6 +11,7 @@
+ #include <vector>
+
+ #include <fmt/format.h>
++#include <fmt/ranges.h>
+
+ #include "Common/Assert.h"
+ #include "Common/BitUtils.h"
+--- a/Source/UnitTests/Common/BitFieldTest.cpp
++++ b/Source/UnitTests/Common/BitFieldTest.cpp
+@@ -1,6 +1,8 @@
+ // Copyright 2014 Dolphin Emulator Project
+ // SPDX-License-Identifier: GPL-2.0-or-later
+
++#include <fmt/ranges.h>
++
+ #include <gtest/gtest.h>
+
+ #include "Common/BitField.h"
+--
+2.45.2
+
diff --git a/games-emulation/dolphin/files/dolphin-2407-minizip.patch b/games-emulation/dolphin/files/dolphin-2407-minizip.patch
new file mode 100644
index 000000000000..90757f795657
--- /dev/null
+++ b/games-emulation/dolphin/files/dolphin-2407-minizip.patch
@@ -0,0 +1,18 @@
+From 18ba49ec1ece5af136a75cb63530f7d1131bf8a7 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Fri, 9 Aug 2024 09:11:21 +0300
+Subject: [PATCH 2/2] minizip
+
+--- a/Externals/minizip-ng/CMakeLists.txt
++++ b/Externals/minizip-ng/CMakeLists.txt
+@@ -1,5 +1,7 @@
+ project(minizip C)
+
++include(CheckFunctionExists)
++
+ add_library(minizip STATIC
+ minizip-ng/mz.h
+ minizip-ng/mz_compat.c
+--
+2.45.2
+
diff --git a/games-emulation/dolphin/metadata.xml b/games-emulation/dolphin/metadata.xml
index da1b3b2107be..7685ff38cd60 100644
--- a/games-emulation/dolphin/metadata.xml
+++ b/games-emulation/dolphin/metadata.xml
@@ -12,6 +12,7 @@
<use>
<flag name="discord-presence">Enables Discord Rich Presence, show the current game on Discord</flag>
<flag name="evdev">Enable evdev input support</flag>
+ <flag name="llvm">Enables LLVM support, for disassembly</flag>
<flag name="log">Increase logging output</flag>
<flag name="mgba">Enables GBA controllers emulation using libmgba.</flag>
</use>
diff --git a/games-emulation/melonds/Manifest b/games-emulation/melonds/Manifest
index 073093f6895f..65d1d9eed1c9 100644
--- a/games-emulation/melonds/Manifest
+++ b/games-emulation/melonds/Manifest
@@ -1,4 +1,6 @@
DIST melonDS-0.9.5_p20231231.tar.gz 3103695 BLAKE2B 36923cf1e7faf58a05eeac2152faf4ac6387a932fc7accf4be339c752171c6e2d6d7a61d5c9de40e02163a5552701c2f313da85515380e529188260b633445dc SHA512 fe99a37ba347eb6aed470d7b93e4ddbcb32ae81045d64509441ce0fa3b08da31d32b42fef7aca5f01556ae7321fb534ebc369f091e1a8852f4a45eaa7bd941a1
+DIST melonDS-0.9.5_p20240815.tar.gz 3400066 BLAKE2B c2e530ee12e1ba6cb9d7bc1ac233be984a00a9b182b4f8cab3082dad3b6e0449239455f422113ca8efcbcfafd8a4b8bca3b3dc84c79936e467f001b21b90f79d SHA512 7845be503f272aa2b7e070b19c46893274fc3d44ace3ae1ce11e33da8e58766127cb1c89dcb92bd8084f33a8cc7c0241b7416423ec93fe45858211cd69e1766e
EBUILD melonds-0.9.5_p20231231.ebuild 1855 BLAKE2B 8acb07748455903f21e5cff3750b4628dc7669a590ea9e7afbb3eee306cf6e61154482ef05e7e57b75fd58ae710f4223b64f3cbf1ee2e11eb6a66506142724f0 SHA512 3a8bba10a5ef274c60c9e79799113ab5949d496672a0dc88729cc252f2e323980499674e5424c7d3038ebefd22f3b2db889c554ec7913f8917f21757121a50f0
-EBUILD melonds-9999.ebuild 1760 BLAKE2B 702d5d42416ba7cfda674c6d27c6cb71b1239b801043f07155e5a32b966f3ad841ad4921c1fd89895b9b4e8f1ca0279469237b8e97c70a60059ad088fb70eb91 SHA512 1f04d14c494669b35e4b8a05a7d12fb5f46fec4e24cfd9f187a1b865bccbaeef83bd40bc0bf9c3b0b394b036ad82e402b5b0451ddaaf051326ce7f2c80e5a786
+EBUILD melonds-0.9.5_p20240815.ebuild 1908 BLAKE2B a963ffba7432f9c7233d6151425db0f23b08e60890ff79ecac9e0ec392e9fdecab6d6d18212f38184d6e2c826ce99e56290b72e017df8c5db9aa35ea5b98ef21 SHA512 893a32c3b167ed689df0bb1ddafed6266b3a3c7f12940d517b20f867732133c1b2fbafecbdc76390d56ea034b931e418b6ed85d1ae091225b93203551103b1ef
+EBUILD melonds-9999.ebuild 1811 BLAKE2B e16d80541b1f9c2009168421a216d2de4e3869324090bf84bd95b846c7b4872832a0c370993728dddce3c3495af2f278c54a856abfcd35c4ec2ab7a5a25ae56b SHA512 20926a1635d4891567f702461d934b056aa5d719a03589c8d4929b6e02613930f7b2d8d0462198cbc3d24ebf246a042a99e07e47aa9aecc13209761034f5cd92
MISC metadata.xml 404 BLAKE2B e9abe00b5ee8196030846be4e7a9e224c0fb7356f88a39949b219bb7355bcac50f6ca28b299a40f056e5a105903cb156aed77731fb3ed61d2ef88becf35d0dc3 SHA512 6e2926035441d9c93759ad92cb2c026a10d28b8354e90d56361b4afc1aa6e7f0e4bb49900ad9f6025f8f9b7070df5691583074f30620196f1305919bd7cfdbdb
diff --git a/games-emulation/melonds/melonds-0.9.5_p20240815.ebuild b/games-emulation/melonds/melonds-0.9.5_p20240815.ebuild
new file mode 100644
index 000000000000..954ab038e91d
--- /dev/null
+++ b/games-emulation/melonds/melonds-0.9.5_p20240815.ebuild
@@ -0,0 +1,99 @@
+# Copyright 2019-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+REAL_PN="melonDS"
+REAL_P="${REAL_PN}-${PV}"
+
+[[ "${PV}" == *p20240815 ]] && COMMIT="0e6235a7c4d3e69940a6deae158a5a91dfbfa612"
+
+inherit cmake flag-o-matic readme.gentoo-r1 toolchain-funcs xdg
+
+DESCRIPTION="Nintendo DS emulator, sorta"
+HOMEPAGE="http://melonds.kuribo64.net
+ https://github.com/Arisotura/melonDS"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/Arisotura/${REAL_PN}.git"
+else
+ SRC_URI="https://github.com/Arisotura/${REAL_PN}/archive/${COMMIT}.tar.gz
+ -> ${REAL_P}.tar.gz"
+ S="${WORKDIR}/${REAL_PN}-${COMMIT}"
+
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="BSD-2 GPL-2 GPL-3 Unlicense"
+SLOT="0"
+IUSE="+jit +opengl wayland"
+
+RDEPEND="
+ app-arch/libarchive
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtmultimedia:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtwidgets:5
+ media-libs/libsdl2[sound,video]
+ net-libs/enet:=
+ net-libs/libpcap
+ net-libs/libslirp
+ wayland? (
+ dev-libs/wayland
+ )
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ wayland? (
+ kde-frameworks/extra-cmake-modules:0
+ )
+"
+
+# used for JIT recompiler
+QA_EXECSTACK="usr/bin/melonDS"
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="You need the following files in order to run melonDS:
+- bios7.bin
+- bios9.bin
+- firmware.bin
+- romlist.bin
+Place them in ~/.config/melonDS
+Those files can be extracted from devices or found somewhere on the Internet ;-)"
+
+src_prepare() {
+ filter-lto
+ append-flags -fno-strict-aliasing
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local -a mycmakeargs=(
+ -DBUILD_SHARED_LIBS="OFF"
+ -DENABLE_JIT="$(usex jit)"
+ -DENABLE_OGLRENDERER="$(usex opengl)"
+ -DENABLE_WAYLAND="$(usex wayland)"
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ tc-export AR
+ cmake_src_compile
+}
+
+src_install() {
+ readme.gentoo_create_doc
+ cmake_src_install
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ readme.gentoo_print_elog
+}
diff --git a/games-emulation/melonds/melonds-9999.ebuild b/games-emulation/melonds/melonds-9999.ebuild
index ff839958a635..e20ccdc8096e 100644
--- a/games-emulation/melonds/melonds-9999.ebuild
+++ b/games-emulation/melonds/melonds-9999.ebuild
@@ -3,8 +3,8 @@
EAPI=8
-MY_PN="melonDS"
-MY_P="${MY_PN}-${PV}"
+REAL_PN="melonDS"
+REAL_P="${REAL_PN}-${PV}"
inherit cmake flag-o-matic readme.gentoo-r1 toolchain-funcs xdg
@@ -15,18 +15,18 @@ HOMEPAGE="http://melonds.kuribo64.net
if [[ "${PV}" == *9999* ]] ; then
inherit git-r3
- EGIT_REPO_URI="https://github.com/Arisotura/${MY_PN}.git"
+ EGIT_REPO_URI="https://github.com/Arisotura/${REAL_PN}.git"
else
- SRC_URI="https://github.com/Arisotura/${MY_PN}/archive/${PV}.tar.gz
- -> ${MY_P}.tar.gz"
- S="${WORKDIR}/${MY_P}"
+ SRC_URI="https://github.com/Arisotura/${REAL_PN}/archive/${PV}.tar.gz
+ -> ${REAL_P}.tar.gz"
+ S="${WORKDIR}/${REAL_P}"
KEYWORDS="~amd64"
fi
-IUSE="+jit +opengl wayland"
LICENSE="BSD-2 GPL-2 GPL-3 Unlicense"
SLOT="0"
+IUSE="+jit +opengl wayland"
RDEPEND="
app-arch/libarchive
@@ -36,12 +36,21 @@ RDEPEND="
dev-qt/qtnetwork:5
dev-qt/qtwidgets:5
media-libs/libsdl2[sound,video]
+ net-libs/enet:=
net-libs/libpcap
net-libs/libslirp
- wayland? ( dev-libs/wayland )
+ wayland? (
+ dev-libs/wayland
+ )
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ wayland? (
+ kde-frameworks/extra-cmake-modules:0
+ )
"
-DEPEND="${RDEPEND}"
-BDEPEND="wayland? ( kde-frameworks/extra-cmake-modules:0 )"
# used for JIT recompiler
QA_EXECSTACK="usr/bin/melonDS"
@@ -64,10 +73,10 @@ src_prepare() {
src_configure() {
local -a mycmakeargs=(
- -DBUILD_SHARED_LIBS=OFF
- -DENABLE_JIT=$(usex jit)
- -DENABLE_OGLRENDERER=$(usex opengl)
- -DENABLE_WAYLAND=$(usex wayland)
+ -DBUILD_SHARED_LIBS="OFF"
+ -DENABLE_JIT="$(usex jit)"
+ -DENABLE_OGLRENDERER="$(usex opengl)"
+ -DENABLE_WAYLAND="$(usex wayland)"
)
cmake_src_configure
}