commit:     665fb2524880373d2f278b2dd6767cab68c53b6f
Author:     Thibaud CANALE <thican <AT> thican <DOT> net>
AuthorDate: Wed Mar 12 15:42:46 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Mar 13 09:17:53 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=665fb252

games-emulation/dolphin: add 2503

Closes: https://bugs.gentoo.org/951209
Signed-off-by: Thibaud CANALE <thican <AT> thican.net>
Closes: https://github.com/gentoo/gentoo/pull/41038
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 games-emulation/dolphin/Manifest            |   5 +
 games-emulation/dolphin/dolphin-2503.ebuild | 299 ++++++++++++++++++++++++++++
 2 files changed, 304 insertions(+)

diff --git a/games-emulation/dolphin/Manifest b/games-emulation/dolphin/Manifest
index 95a91365476c..a609939dc0a5 100644
--- a/games-emulation/dolphin/Manifest
+++ b/games-emulation/dolphin/Manifest
@@ -1,9 +1,14 @@
 DIST Vulkan-Headers-05fe2cc910a68c9ba5dac07db46ef78573acee72.tar.gz 2288519 
BLAKE2B 
bd11ba3ecac3bf0f6df255a4b87556092b9630c85b97cbcc2c0901d5293882da6f996e326cce8f410f8503f9e29454f0a2994c4adceb4565490d435b307d4495
 SHA512 
3679a087ea024a15b2d30730834345d2af3869ae012bcc5a996eed90558516d16b762010d887b9c762b5177bfc0a21b3bd29dbc4e236e067132623482068b058
+DIST Vulkan-Headers-39f924b810e561fd86b2558b6711ca68d4363f68.tar.gz 2497345 
BLAKE2B 
66c276e4ecb6f648fb0ba7f211edda51d6ef8c439b88abdafd0bb33a7aa255e9189e88ef2a40179e9ab8433c82f98cbb40a8aaadbbd6a6e72c7a838ad68d07ae
 SHA512 
2d722e32e3c5a217a62d0583fd1597fcf5e05c7092f0c629f54025ae8fdb22b12dba375d1aeeeb90e4a69507e254f33aebe435bf8f058f55a5ed3f5e6d351d6f
 DIST VulkanMemoryAllocator-009ecd192c1289c7529bff248a16cfe896254816.tar.gz 
904841 BLAKE2B 
64966d40b86197a18f86c9715acb2ea649ea6b69d3de38d9385a8130e35519036eca49b7503886123284be58d5c248dd9d7c5cb16a489c64d385439c382dcd30
 SHA512 
3a47a4bc81562b96f598f357b803d2219fa167e6eb87779837efa6e85fc6eaff8e1cfbdea0935117a7b3c630cc99944b94e91823eafa8a94d80b2c459f33c317
+DIST VulkanMemoryAllocator-3bab6924988e5f19bf36586a496156cf72f70d9f.tar.gz 
937902 BLAKE2B 
d4c9d002ab787045e4d117237c3f7d031ec4dae514e958881529c6dc11cc6105dd57a26f214791f8e0943e2cfa105f90e99ee958b97c1c386ef44fcaad6b7d33
 SHA512 
6e2935ce6fbafc2cc8c5a34bf3eaa5dc2e8f65c97c886cfa57da0b45ca83bc8ade4429a7556ce6292af9aeb947d69231b50ae64a55a281c304176e8ea1cd2098
 DIST dolphin-2407.tar.gz 19773792 BLAKE2B 
a6de162479d45e6b1cba5444df5abdeafd92773d1e49cc837dfc6c1ab45ed11d7a3f72a582ddb56d0ecc6b550d03c1a02a9389852ba438d8a9235d5ea3285d4b
 SHA512 
8bb8459d8b653708e34d5df184d96ba9705e8c50b00d066862d4012f78b7e71938207979b3bd900dd14c35c3b6c0258bb5c8fad9ba73267188e98d8a2edfb73f
 DIST dolphin-2412.tar.gz 19926717 BLAKE2B 
89036561987283067a1f116aa38a94c92d0c8e3114d28a0545787f63b389cb204b265bdd4c2452ec02ca3fe90fccf5fc0fd55be3acb9b8bd346e3738f3f96767
 SHA512 
3025e24b4cdc8cf3493e23a7968064cb9090d622a3a830b0a964fc87af840227125de8c0f69243c7d3975fc5ea2dd0c485d870301c25e8fa078abe83ae88bca9
+DIST dolphin-2503.tar.gz 20148047 BLAKE2B 
3b41fd126f3b61d2bb6e6232b3009901a6ec1b8a21e2df6932205aa1a4dc63441aff0fd60ecba1683350bb6b49c42d97e33d22c96ac150ce518eb8d79355693b
 SHA512 
dd61676b2200d4f3a6b053b563f9687740bddc043733240ae0bf44f037b782ba292465c55a63930c8119f2e515476947f90b9e0348208881ecbd88c5def52e0c
+DIST implot-18c72431f8265e2b0b5378a3a73d8a883b2175ff.tar.gz 138121 BLAKE2B 
481fe2b4ebd1ab3554465aff07b2c2e85f2db033de1ac69b95bcf56d269fcf01d8a0f951ad45ddcc0e192f1cc6cac3478633f006f403b8e930350891945ae87f
 SHA512 
9cb2581a4e8d844914606f55a667afcfb31374973b0035b4d81488253e350df67439e97b46b236324c2a1e01146e6a191ad94d70823a3888c97e9380715272fa
 DIST implot-cc5e1daa5c7f2335a9460ae79c829011dc5cef2d.tar.gz 137924 BLAKE2B 
c830275b05a74e8a60a7164f22c01dd9a5a35f9219736785c9cc17830dae809eb8cba65604b0388c3966d7658c9fe71cb9a8468c23d3ed17b7890581a2222cb8
 SHA512 
ab9935e759f38d19e6f60ed195c22018929ba46fccf783f4486346d7ffb7040b6097bc4c3d3b3577cc91f0c413684e07449a24bebf3db9c937638092c181de92
 DIST mgba-8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51.tar.gz 14488880 BLAKE2B 
5beec2de9a0999a93a4ad704f45246b551824a9ddd576a5b77e731b269fb8f7d311d1c4e2cfb217f34e22a49050498c70e52d714d9c0bb7b4e4d178f49f15c3d
 SHA512 
782d456b7bf827591c774f146a88821b41b3b936faefddb5aee82bb0dd16ca7ad7228a1c331e1e517eac40a71cc4c94cc44bee12560946328c8433e1c6327225
 DIST minizip-ng-3eed562ef0ea3516db30d1c8ecb0e1b486d8cb70.tar.gz 770054 BLAKE2B 
7d5b24a5be7134ac17178869883625b28fa80a55f878231ca4156901057db72b20b4d342f8d0bb04a436fcd72d7ccbb0f79adc8503a16e1197a84f3a476da730
 SHA512 
f76a2cefd7d9ad47f8c3c73b3483b657fab0507605e0b29895eaec759718a65f0d2915ea7022831f3f98493891a1ab4f5035971bf09d4860abbf4cde0b091869
+DIST minizip-ng-55db144e03027b43263e5ebcb599bf0878ba58de.tar.gz 772757 BLAKE2B 
853a252d2a8f8c0668804cf961626413aaf89a7eb85b27142860e379e933a54c0d847d976b007071636461b29dd85d6b910d44a6c140581b983b59b14bc4fd9c
 SHA512 
88d1222886a3b5cd3ca1aff7b12902d1d19462c446ef39a092a56bb91b5889956afcce047b4227c79a50a95d9275bd0a23f5cd6cbef76478b6e21bbf86dd486b
 DIST tinygltf-c5641f2c22d117da7971504591a8f6a41ece488b.tar.gz 5903179 BLAKE2B 
0ef4b36cf26f3a5a544d0c739317b8cce041121b1dec58d1d9dbc3bbc892df284d80aa4c45ec1ebc332ba96b151230a5b0dbf95b95aefcf86ee7878c393eda5d
 SHA512 
486bcf32be137dea5746117074dc51bc978290698de7831e1c4bbaa4acb56ed99fc34c38e69878a955b3e5f10f43eab07b0637164f822beae0fddd099aa0c56d
 DIST zlib-ng-ce01b1e41da298334f8214389cc9369540a7560f.tar.gz 2223118 BLAKE2B 
c79a138c31c74c291ae38a6c4d8983e0884169ced4147d7242d1a766f70777de0368ceba815ac2261bd2543dba55a6106b70f7e040fae4f200863da217f88978
 SHA512 
73f4e56410ae298ef211ebab52b1a0d3d5bfae91c2de3cd294b56cd0a78ab50e1203b396c7df462f360c1aaaa9392ec5625473d1e9eb084cc64bc813e28d12a1

diff --git a/games-emulation/dolphin/dolphin-2503.ebuild 
b/games-emulation/dolphin/dolphin-2503.ebuild
new file mode 100644
index 000000000000..c1a08ea5606a
--- /dev/null
+++ b/games-emulation/dolphin/dolphin-2503.ebuild
@@ -0,0 +1,299 @@
+# Copyright 1999-2025 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=18c72431f8265e2b0b5378a3a73d8a883b2175ff
+       TINYGLTF_COMMIT=c5641f2c22d117da7971504591a8f6a41ece488b
+       VULKAN_HEADERS_COMMIT=39f924b810e561fd86b2558b6711ca68d4363f68
+       VULKANMEMORYALLOCATOR_COMMIT=3bab6924988e5f19bf36586a496156cf72f70d9f
+       ZLIB_NG_COMMIT=ce01b1e41da298334f8214389cc9369540a7560f
+       MINIZIP_NG_COMMIT=55db144e03027b43263e5ebcb599bf0878ba58de
+       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 ~arm64"
+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:0=
+       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 'llvm-core/llvm:${LLVM_SLOT}=') )
+       profile? ( dev-util/oprofile )
+       pulseaudio? ( media-libs/libpulse )
+       sdl? ( >=media-libs/libsdl2-2.30.9 )
+       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
+       # bug #873952
+       # https://github.com/dolphin-emu/dolphin/pull/13089
+       [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-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 [[ ${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
+
+       # 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)
+               -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_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
+}

Reply via email to