commit: 6e71565f07fb13a78aa20a386c100af3ebd48e3d Author: Alfred Wingate <parona <AT> protonmail <DOT> com> AuthorDate: Fri Mar 13 23:05:57 2026 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Sat Mar 14 06:14:34 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6e71565f
games-emulation/dolphin: add 2603 * Migrate to llvm-r2 and enable llvm21 support. * Unbundle mgba. * Hook up retro-achievements support conditionally, bug #965016. * Rename discord-presence flag to discord to match with the rest of the tree. Bug: https://bugs.gentoo.org/965016 Signed-off-by: Alfred Wingate <parona <AT> protonmail.com> Part-of: https://codeberg.org/gentoo/gentoo/pulls/315 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> games-emulation/dolphin/Manifest | 5 ++ .../{dolphin-9999.ebuild => dolphin-2603.ebuild} | 69 ++++++++++------------ games-emulation/dolphin/dolphin-9999.ebuild | 65 ++++++++------------ .../files/dolphin-2603-mbgba-definitions.patch | 20 +++++++ games-emulation/dolphin/metadata.xml | 4 +- 5 files changed, 84 insertions(+), 79 deletions(-) diff --git a/games-emulation/dolphin/Manifest b/games-emulation/dolphin/Manifest index ac0bcc4436a9..602aa13187f4 100644 --- a/games-emulation/dolphin/Manifest +++ b/games-emulation/dolphin/Manifest @@ -1,11 +1,16 @@ DIST Vulkan-Headers-39f924b810e561fd86b2558b6711ca68d4363f68.tar.gz 2497345 BLAKE2B 66c276e4ecb6f648fb0ba7f211edda51d6ef8c439b88abdafd0bb33a7aa255e9189e88ef2a40179e9ab8433c82f98cbb40a8aaadbbd6a6e72c7a838ad68d07ae SHA512 2d722e32e3c5a217a62d0583fd1597fcf5e05c7092f0c629f54025ae8fdb22b12dba375d1aeeeb90e4a69507e254f33aebe435bf8f058f55a5ed3f5e6d351d6f DIST VulkanMemoryAllocator-3bab6924988e5f19bf36586a496156cf72f70d9f.tar.gz 937902 BLAKE2B d4c9d002ab787045e4d117237c3f7d031ec4dae514e958881529c6dc11cc6105dd57a26f214791f8e0943e2cfa105f90e99ee958b97c1c386ef44fcaad6b7d33 SHA512 6e2935ce6fbafc2cc8c5a34bf3eaa5dc2e8f65c97c886cfa57da0b45ca83bc8ade4429a7556ce6292af9aeb947d69231b50ae64a55a281c304176e8ea1cd2098 +DIST cpp-ipc-ce0773b3e6d5abaa8d104100c5704321113853ca.tar.gz 663617 BLAKE2B 33db214000a1bf4bd0d6597680bebd72b54d88a78ff4e30ebf819fcd228e3e5d9dd1ce162d008f4d26722a03b1f13e08afcd3baed49bdd5438342814803741d9 SHA512 3cfbb566d153106e2b148d89d79ffcd0a7f73a24455ecb2c346c4b30cb302d7cfc4a8aec196cfab804fe6fb8bebad6afadf6d23a7b25b95d4b2c8d92dda3bfab +DIST cpp-optparse-2265d647232249a53a03b411099863ceca35f0d3.tar.gz 13010 BLAKE2B 5a23625b98bb45c6e32174de47eb793ab9627e97df4935cdf0d3bfe43fe328488d2db0fa7987030778e03f17b9220a7990a5193e3728f1df4e9923173025979c SHA512 6b99478738980df3186b8487a33c96ee80107ed35fdd36cf615a53f58e9b1e72ab6099c2081e3622fa374f338609e747a1aa0c6c1295f2f71dea1ed17dbc6cf2 DIST dolphin-2506.tar.gz 19891520 BLAKE2B ffff679899d70322b5b02f2b045cd063123a9c94fa65641af9597d41cd88849c971179f0131d4db8d4ce8090e70052cf6bbd2b19e720794adb1977b8ed48037e SHA512 7f2a053e18f53c535c9de6e67a098d92e8ffaa240f8cc44ce5b0db19e506373f31eefecfe7d215d69e054ed0254f92ce96f73f2cb737df86d2b55cdc4fdc4ac3 DIST dolphin-2509.tar.gz 19735915 BLAKE2B cc52b0e1eca0f8b874852b7914415a8f58d3d12dd0d0c26ec03ac9e1ad7a1834e78f325107e08b2447ee76f03dea5d63995f03012f6892889383379dab0dabd0 SHA512 26f28c4d851ca4b8c1dd2d084a2e744b4df3bc83d479389ccd5bca81f2b804936d7d6df5f5100de3dcbedda9851a84f6daf96b408a306ccc29ebb6b3f4211003 +DIST dolphin-2603.tar.gz 17523891 BLAKE2B c88fa6b3e0a98127cfeb2daf23a5357c3052651fb0fa109b5f56c9df72e62ac9e03ecdcc1702a93c989f8031dff13918e1a85f082a14b8ed000eec8bf9c0d880 SHA512 b6398da1c8e469bed3bc8aa784f6b8fd7cacce639ac97f827f3bd6cd037160f581a2eb126fc2e7af5f5b0c8c6c287721c7bb87bdc2c0b6a04484b0ce89018521 +DIST imgui-45acd5e0e82f4c954432533ae9985ff0e1aad6d5.tar.gz 1934859 BLAKE2B bbd1824f98716ef7ae09811817e014882a194cbf3cdf5e9efe924c8b722920493ca9776771880310e73740ab88b1498e10ca84bdfad6fc3e47e3fd7041ed01ac SHA512 76fd04305cb48cf6bfa5c5dc884738137bd5c08f2ce12dfd77c1fc9b9294e6c592739d3ec4ceab7d65226775c3be5076710b58bcc40b8abed7da3620db3be511 DIST implot-18c72431f8265e2b0b5378a3a73d8a883b2175ff.tar.gz 138121 BLAKE2B 481fe2b4ebd1ab3554465aff07b2c2e85f2db033de1ac69b95bcf56d269fcf01d8a0f951ad45ddcc0e192f1cc6cac3478633f006f403b8e930350891945ae87f SHA512 9cb2581a4e8d844914606f55a667afcfb31374973b0035b4d81488253e350df67439e97b46b236324c2a1e01146e6a191ad94d70823a3888c97e9380715272fa DIST implot-3da8bd34299965d3b0ab124df743fe3e076fa222.tar.gz 141430 BLAKE2B 5fde32ccb24a8ceaa125e188fce9faf087fa5d2294379fc6bb31071878c4b63adb998aa0100dc48ed7a379d2b1cd49e109a150bec5ebf521f70d661673b4e4a8 SHA512 8a95f76ae4a14adf6f3bcd798d2334d8282ff7b50fc7def6308c0556adcc1dbd151c0a36aa676a82e10e1ae80d1ecc1ac54e705180650eed46d0a609611c73c5 DIST mgba-8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51.tar.gz 14488880 BLAKE2B 5beec2de9a0999a93a4ad704f45246b551824a9ddd576a5b77e731b269fb8f7d311d1c4e2cfb217f34e22a49050498c70e52d714d9c0bb7b4e4d178f49f15c3d SHA512 782d456b7bf827591c774f146a88821b41b3b936faefddb5aee82bb0dd16ca7ad7228a1c331e1e517eac40a71cc4c94cc44bee12560946328c8433e1c6327225 DIST minizip-ng-55db144e03027b43263e5ebcb599bf0878ba58de.tar.gz 772757 BLAKE2B 853a252d2a8f8c0668804cf961626413aaf89a7eb85b27142860e379e933a54c0d847d976b007071636461b29dd85d6b910d44a6c140581b983b59b14bc4fd9c SHA512 88d1222886a3b5cd3ca1aff7b12902d1d19462c446ef39a092a56bb91b5889956afcce047b4227c79a50a95d9275bd0a23f5cd6cbef76478b6e21bbf86dd486b +DIST rcheevos-926e4608f8dca7989267c787bbefb3ab1c835ac5.tar.gz 434643 BLAKE2B f54caf0b0506eb4c4d0e2c12c0ab4389fb4b25b1b920dc84eabdf0ecec33e4015ea47309adbee746aec41f752c64dc0a71153479f837ae1ffeeea737a52644df SHA512 a60ca1e5b02230fee20a3cd46f71f121a9cb24d2b6434644e8cc1c922e156dec572a56b46b36724a506735375959c34b1588ef44b7c6deae5fa30e9f35ed07b8 DIST tinygltf-c5641f2c22d117da7971504591a8f6a41ece488b.tar.gz 5903179 BLAKE2B 0ef4b36cf26f3a5a544d0c739317b8cce041121b1dec58d1d9dbc3bbc892df284d80aa4c45ec1ebc332ba96b151230a5b0dbf95b95aefcf86ee7878c393eda5d SHA512 486bcf32be137dea5746117074dc51bc978290698de7831e1c4bbaa4acb56ed99fc34c38e69878a955b3e5f10f43eab07b0637164f822beae0fddd099aa0c56d DIST watcher-b03bdcfc11549df595b77239cefe2643943a3e2f.tar.gz 165510 BLAKE2B 63df0dac02af6da4c736953145c959973e452d22fc30b4170adbcb5ed950bdf0ef33d2304fda58efdd5a99ad8a0b229429f93cd17eedf0310c345252e8222e88 SHA512 b1e4bad6564b5036f4bf66ea269b148c9818d5e6fa4626a0f7d04e65b81be737a0fbcd995c103681297240e78e54d8152825c1b6674a45e8bbe0c35b9bf900d0 DIST zlib-ng-ce01b1e41da298334f8214389cc9369540a7560f.tar.gz 2223118 BLAKE2B c79a138c31c74c291ae38a6c4d8983e0884169ced4147d7242d1a766f70777de0368ceba815ac2261bd2543dba55a6106b70f7e040fae4f200863da217f88978 SHA512 73f4e56410ae298ef211ebab52b1a0d3d5bfae91c2de3cd294b56cd0a78ab50e1203b396c7df462f360c1aaaa9392ec5625473d1e9eb084cc64bc813e28d12a1 diff --git a/games-emulation/dolphin/dolphin-9999.ebuild b/games-emulation/dolphin/dolphin-2603.ebuild similarity index 84% copy from games-emulation/dolphin/dolphin-9999.ebuild copy to games-emulation/dolphin/dolphin-2603.ebuild index 609b7932ee12..17dfb796a648 100644 --- a/games-emulation/dolphin/dolphin-9999.ebuild +++ b/games-emulation/dolphin/dolphin-2603.ebuild @@ -1,12 +1,12 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -LLVM_COMPAT=( {18..20} ) +LLVM_COMPAT=( {18..21} ) LLVM_OPTIONAL=1 -inherit cmake llvm-r1 pax-utils xdg-utils +inherit cmake llvm-r2 pax-utils xdg if [[ ${PV} == *9999 ]]; then inherit git-r3 @@ -14,20 +14,20 @@ if [[ ${PV} == *9999 ]]; then EGIT_SUBMODULES=( Externals/cpp-ipc/cpp-ipc Externals/cpp-optparse/cpp-optparse - Externals/mGBA/mgba Externals/imgui/imgui Externals/implot/implot + Externals/rcheevos/rcheevos Externals/tinygltf/tinygltf Externals/Vulkan-Headers Externals/VulkanMemoryAllocator Externals/watcher/watcher ) else - CPPIPC_COMMIT=a0c7725a1441d18bc768d748a93e512a0fa7ab52 + CPPIPC_COMMIT=ce0773b3e6d5abaa8d104100c5704321113853ca CPPOPTPARSE_COMMIT=2265d647232249a53a03b411099863ceca35f0d3 - MGBA_COMMIT=8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51 IMGUI_COMMIT=45acd5e0e82f4c954432533ae9985ff0e1aad6d5 IMPLOT_COMMIT=3da8bd34299965d3b0ab124df743fe3e076fa222 + RCHEEVOS_COMMIT=926e4608f8dca7989267c787bbefb3ab1c835ac5 TINYGLTF_COMMIT=c5641f2c22d117da7971504591a8f6a41ece488b VULKAN_HEADERS_COMMIT=39f924b810e561fd86b2558b6711ca68d4363f68 VULKANMEMORYALLOCATOR_COMMIT=3bab6924988e5f19bf36586a496156cf72f70d9f @@ -35,7 +35,7 @@ else SRC_URI=" https://github.com/dolphin-emu/dolphin/archive/${PV}.tar.gz -> ${P}.tar.gz - https://github.com/mutouyun/cpp-ipc/tree/${CPPIPC_COMMIT}.tar.gz + https://github.com/mutouyun/cpp-ipc/archive/${CPPIPC_COMMIT}.tar.gz -> cpp-ipc-${CPPIPC_COMMIT}.tar.gz https://github.com/weisslj/cpp-optparse/archive/${CPPOPTPARSE_COMMIT}.tar.gz -> cpp-optparse-${CPPOPTPARSE_COMMIT}.tar.gz @@ -51,9 +51,9 @@ else -> VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}.tar.gz https://github.com/e-dant/watcher/archive/${WATCHER_COMMIT}.tar.gz -> watcher-${WATCHER_COMMIT}.tar.gz - mgba? ( - https://github.com/mgba-emu/mgba/archive/${MGBA_COMMIT}.tar.gz - -> mgba-${MGBA_COMMIT}.tar.gz + retro-achievements? ( + https://github.com/RetroAchievements/rcheevos/archive/${RCHEEVOS_COMMIT}.tar.gz + -> rcheevos-${RCHEEVOS_COMMIT}.tar.gz ) " KEYWORDS="~amd64 ~arm64" @@ -65,8 +65,8 @@ 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 - pulseaudio sdl systemd telemetry test upnp vulkan + alsa bluetooth discord doc egl +evdev ffmpeg +gui llvm log mgba + pulseaudio retro-achievements sdl systemd telemetry test upnp vulkan " REQUIRED_USE=" mgba? ( gui ) @@ -74,6 +74,7 @@ REQUIRED_USE=" " RESTRICT="!test? ( test )" +# slot op: Uses Qt::GuiPrivate for qplatformnativeinterface.h RDEPEND=" app-arch/bzip2:= >=app-arch/lz4-1.8:= @@ -106,10 +107,11 @@ RDEPEND=" ) ffmpeg? ( media-video/ffmpeg:= ) gui? ( - dev-qt/qtbase:6[X,gui,widgets] + dev-qt/qtbase:6=[X,gui,widgets] dev-qt/qtsvg:6 ) llvm? ( $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}=') ) + mgba? ( >=games-emulation/mgba-0.11:= ) pulseaudio? ( media-libs/libpulse ) sdl? ( >=media-libs/libsdl3-3.2.20 ) systemd? ( sys-apps/systemd:0= ) @@ -148,22 +150,17 @@ declare -A KEEP_BUNDLED=( # FIXME: discord-rpc not packaged [discord-rpc]=MIT - [mGBA]=MPL-2.0 - [picojson]=BSD-2 [expr]=MIT [rangeset]=ZLIB [FatFs]=FatFs + [rcheevos]=MIT [Vulkan-Headers]="|| ( Apache-2.0 MIT )" [VulkanMemoryAllocator]=MIT [watcher]=MIT [cpp-ipc]=MIT ) -PATCHES=( - "${FILESDIR}"/dolphin-2509-retroachievents-test.patch -) - add_bundled_licenses() { for license in ${KEEP_BUNDLED[@]}; do LICENSE+=" ${license}" @@ -171,8 +168,12 @@ add_bundled_licenses() { } add_bundled_licenses +PATCHES=( + "${FILESDIR}"/dolphin-2603-mbgba-definitions.patch +) + pkg_setup() { - use llvm && llvm-r1_pkg_setup + use llvm && llvm-r2_pkg_setup } src_prepare() { @@ -185,8 +186,8 @@ src_prepare() { mv -T "${WORKDIR}/Vulkan-Headers-${VULKAN_HEADERS_COMMIT}" Externals/Vulkan-Headers || die mv -T "${WORKDIR}/VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}" Externals/VulkanMemoryAllocator || die mv -T "${WORKDIR}/watcher-${WATCHER_COMMIT}" Externals/watcher/watcher || die - if use mgba; then - mv -T "${WORKDIR}/mgba-${MGBA_COMMIT}" Externals/mGBA/mgba || die + if use retro-achievements; then + mv -T "${WORKDIR}/rcheevos-${RCHEEVOS_COMMIT}" Externals/rcheevos/rcheevos || die fi fi @@ -203,6 +204,10 @@ src_prepare() { einfo "removing sources: ${remove[*]}" rm -r "${remove[@]}" || die + # Use ccache only when user did set FEATURES=ccache (or similar) + # # not when ccache binary is present in system (automagic). + sed -e '/include(CCache)/d' -i CMakeLists.txt || die + # Remove dirty suffix: needed for netplay sed -i -e 's/--dirty/&=""/' CMake/ScmRevGen.cmake || die } @@ -229,9 +234,9 @@ src_configure() { -DENABLE_VULKAN=$(usex vulkan) -DENCODE_FRAMEDUMPS=$(usex ffmpeg) -DFASTLOG=$(usex log) - -DUSE_DISCORD_PRESENCE=$(usex discord-presence) + -DUSE_DISCORD_PRESENCE=$(usex discord) -DUSE_MGBA=$(usex mgba) - -DUSE_RETRO_ACHIEVEMENTS=OFF + -DUSE_RETRO_ACHIEVEMENTS=$(usex retro-achievements) -DUSE_UPNP=$(usex upnp) -DCMAKE_DISABLE_FIND_PACKAGE_SYSTEMD=$(usex !systemd) @@ -258,10 +263,6 @@ src_configure() { -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. @@ -275,7 +276,7 @@ src_configure() { [[ ${PV} != *9999 ]] && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON ) use test && mycmakeargs+=( -DUSE_SYSTEM_GTEST=ON ) - use mgba && mycmakeargs+=( -DUSE_SYSTEM_LIBMGBA=OFF ) + use mgba && mycmakeargs+=( -DUSE_SYSTEM_LIBMGBA=ON ) use sdl && mycmakeargs+=( -DUSE_SYSTEM_SDL3=ON ) use upnp && mycmakeargs+=( -DUSE_SYSTEM_MINIUPNPC=ON ) @@ -297,13 +298,3 @@ src_install() { # 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 609b7932ee12..a66b4f92f13e 100644 --- a/games-emulation/dolphin/dolphin-9999.ebuild +++ b/games-emulation/dolphin/dolphin-9999.ebuild @@ -1,12 +1,12 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -LLVM_COMPAT=( {18..20} ) +LLVM_COMPAT=( {18..21} ) LLVM_OPTIONAL=1 -inherit cmake llvm-r1 pax-utils xdg-utils +inherit cmake llvm-r2 pax-utils xdg if [[ ${PV} == *9999 ]]; then inherit git-r3 @@ -14,20 +14,20 @@ if [[ ${PV} == *9999 ]]; then EGIT_SUBMODULES=( Externals/cpp-ipc/cpp-ipc Externals/cpp-optparse/cpp-optparse - Externals/mGBA/mgba Externals/imgui/imgui Externals/implot/implot + Externals/rcheevos/rcheevos Externals/tinygltf/tinygltf Externals/Vulkan-Headers Externals/VulkanMemoryAllocator Externals/watcher/watcher ) else - CPPIPC_COMMIT=a0c7725a1441d18bc768d748a93e512a0fa7ab52 + CPPIPC_COMMIT=ce0773b3e6d5abaa8d104100c5704321113853ca CPPOPTPARSE_COMMIT=2265d647232249a53a03b411099863ceca35f0d3 - MGBA_COMMIT=8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51 IMGUI_COMMIT=45acd5e0e82f4c954432533ae9985ff0e1aad6d5 IMPLOT_COMMIT=3da8bd34299965d3b0ab124df743fe3e076fa222 + RCHEEVOS_COMMIT=926e4608f8dca7989267c787bbefb3ab1c835ac5 TINYGLTF_COMMIT=c5641f2c22d117da7971504591a8f6a41ece488b VULKAN_HEADERS_COMMIT=39f924b810e561fd86b2558b6711ca68d4363f68 VULKANMEMORYALLOCATOR_COMMIT=3bab6924988e5f19bf36586a496156cf72f70d9f @@ -35,7 +35,7 @@ else SRC_URI=" https://github.com/dolphin-emu/dolphin/archive/${PV}.tar.gz -> ${P}.tar.gz - https://github.com/mutouyun/cpp-ipc/tree/${CPPIPC_COMMIT}.tar.gz + https://github.com/mutouyun/cpp-ipc/archive/${CPPIPC_COMMIT}.tar.gz -> cpp-ipc-${CPPIPC_COMMIT}.tar.gz https://github.com/weisslj/cpp-optparse/archive/${CPPOPTPARSE_COMMIT}.tar.gz -> cpp-optparse-${CPPOPTPARSE_COMMIT}.tar.gz @@ -51,9 +51,9 @@ else -> VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}.tar.gz https://github.com/e-dant/watcher/archive/${WATCHER_COMMIT}.tar.gz -> watcher-${WATCHER_COMMIT}.tar.gz - mgba? ( - https://github.com/mgba-emu/mgba/archive/${MGBA_COMMIT}.tar.gz - -> mgba-${MGBA_COMMIT}.tar.gz + retro-achievements? ( + https://github.com/RetroAchievements/rcheevos/archive/${RCHEEVOS_COMMIT}.tar.gz + -> rcheevos-${RCHEEVOS_COMMIT}.tar.gz ) " KEYWORDS="~amd64 ~arm64" @@ -65,8 +65,8 @@ 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 - pulseaudio sdl systemd telemetry test upnp vulkan + alsa bluetooth discord doc egl +evdev ffmpeg +gui llvm log mgba + pulseaudio retro-achievements sdl systemd telemetry test upnp vulkan " REQUIRED_USE=" mgba? ( gui ) @@ -74,6 +74,7 @@ REQUIRED_USE=" " RESTRICT="!test? ( test )" +# slot op: Uses Qt::GuiPrivate for qplatformnativeinterface.h RDEPEND=" app-arch/bzip2:= >=app-arch/lz4-1.8:= @@ -106,10 +107,11 @@ RDEPEND=" ) ffmpeg? ( media-video/ffmpeg:= ) gui? ( - dev-qt/qtbase:6[X,gui,widgets] + dev-qt/qtbase:6=[X,gui,widgets] dev-qt/qtsvg:6 ) llvm? ( $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}=') ) + mgba? ( >=games-emulation/mgba-0.11:= ) pulseaudio? ( media-libs/libpulse ) sdl? ( >=media-libs/libsdl3-3.2.20 ) systemd? ( sys-apps/systemd:0= ) @@ -148,22 +150,17 @@ declare -A KEEP_BUNDLED=( # FIXME: discord-rpc not packaged [discord-rpc]=MIT - [mGBA]=MPL-2.0 - [picojson]=BSD-2 [expr]=MIT [rangeset]=ZLIB [FatFs]=FatFs + [rcheevos]=MIT [Vulkan-Headers]="|| ( Apache-2.0 MIT )" [VulkanMemoryAllocator]=MIT [watcher]=MIT [cpp-ipc]=MIT ) -PATCHES=( - "${FILESDIR}"/dolphin-2509-retroachievents-test.patch -) - add_bundled_licenses() { for license in ${KEEP_BUNDLED[@]}; do LICENSE+=" ${license}" @@ -172,7 +169,7 @@ add_bundled_licenses() { add_bundled_licenses pkg_setup() { - use llvm && llvm-r1_pkg_setup + use llvm && llvm-r2_pkg_setup } src_prepare() { @@ -185,8 +182,8 @@ src_prepare() { mv -T "${WORKDIR}/Vulkan-Headers-${VULKAN_HEADERS_COMMIT}" Externals/Vulkan-Headers || die mv -T "${WORKDIR}/VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}" Externals/VulkanMemoryAllocator || die mv -T "${WORKDIR}/watcher-${WATCHER_COMMIT}" Externals/watcher/watcher || die - if use mgba; then - mv -T "${WORKDIR}/mgba-${MGBA_COMMIT}" Externals/mGBA/mgba || die + if use retro-achievements; then + mv -T "${WORKDIR}/rcheevos-${RCHEEVOS_COMMIT}" Externals/rcheevos/rcheevos || die fi fi @@ -203,6 +200,10 @@ src_prepare() { einfo "removing sources: ${remove[*]}" rm -r "${remove[@]}" || die + # Use ccache only when user did set FEATURES=ccache (or similar) + # # not when ccache binary is present in system (automagic). + sed -e '/include(CCache)/d' -i CMakeLists.txt || die + # Remove dirty suffix: needed for netplay sed -i -e 's/--dirty/&=""/' CMake/ScmRevGen.cmake || die } @@ -229,9 +230,9 @@ src_configure() { -DENABLE_VULKAN=$(usex vulkan) -DENCODE_FRAMEDUMPS=$(usex ffmpeg) -DFASTLOG=$(usex log) - -DUSE_DISCORD_PRESENCE=$(usex discord-presence) + -DUSE_DISCORD_PRESENCE=$(usex discord) -DUSE_MGBA=$(usex mgba) - -DUSE_RETRO_ACHIEVEMENTS=OFF + -DUSE_RETRO_ACHIEVEMENTS=$(usex retro-achievements) -DUSE_UPNP=$(usex upnp) -DCMAKE_DISABLE_FIND_PACKAGE_SYSTEMD=$(usex !systemd) @@ -258,10 +259,6 @@ src_configure() { -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. @@ -275,7 +272,7 @@ src_configure() { [[ ${PV} != *9999 ]] && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON ) use test && mycmakeargs+=( -DUSE_SYSTEM_GTEST=ON ) - use mgba && mycmakeargs+=( -DUSE_SYSTEM_LIBMGBA=OFF ) + use mgba && mycmakeargs+=( -DUSE_SYSTEM_LIBMGBA=ON ) use sdl && mycmakeargs+=( -DUSE_SYSTEM_SDL3=ON ) use upnp && mycmakeargs+=( -DUSE_SYSTEM_MINIUPNPC=ON ) @@ -297,13 +294,3 @@ src_install() { # 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/files/dolphin-2603-mbgba-definitions.patch b/games-emulation/dolphin/files/dolphin-2603-mbgba-definitions.patch new file mode 100644 index 000000000000..3693652befdc --- /dev/null +++ b/games-emulation/dolphin/files/dolphin-2603-mbgba-definitions.patch @@ -0,0 +1,20 @@ +https://github.com/dolphin-emu/dolphin/pull/14459 + +From 93cec810e8c5e2a82fb205a3f5286cbdf378efb8 Mon Sep 17 00:00:00 2001 +From: Alfred Wingate <[email protected]> +Date: Fri, 13 Mar 2026 18:46:24 +0200 +Subject: [PATCH] FindLIBMGBA: pass the same preprocessor arguments as the + bundled libmgba + +These are required if you build against a system libmgba as well. + +See-Also: 6d5e8b9ed8ced1ca180b4634fd2d36f35a34d240 +Signed-off-by: Alfred Wingate <[email protected]> +--- a/CMake/FindLIBMGBA.cmake ++++ b/CMake/FindLIBMGBA.cmake +@@ -12,4 +12,5 @@ if(LIBMGBA_FOUND AND NOT mGBA::mgba) + IMPORTED_LOCATION "${LIBMGBA_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${LIBMGBA_INCLUDE_DIR}" + ) ++ target_compile_definitions(mGBA::mgba INTERFACE HAVE_CRC32 ENABLE_VFS ENABLE_DIRECTORIES) + endif() diff --git a/games-emulation/dolphin/metadata.xml b/games-emulation/dolphin/metadata.xml index 7685ff38cd60..f97b214c9d55 100644 --- a/games-emulation/dolphin/metadata.xml +++ b/games-emulation/dolphin/metadata.xml @@ -10,11 +10,13 @@ <name>Gentoo Games Project</name> </maintainer> <use> + <flag name="discord">Enables Discord Rich Presence, show the current game on Discord</flag> <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> + <flag name="mgba">Enables GBA controllers emulation with <pkg>games-emulation/mgba</pkg></flag> + <flag name="retro-achievements">Enables integration with retroachievements.org</flag> </use> <longdescription lang="en"> Dolphin is a Gamecube and Wii emulator. Most games run perfectly or with
