diff options
Diffstat (limited to 'games-emulation')
-rw-r--r-- | games-emulation/Manifest.gz | bin | 12061 -> 12063 bytes | |||
-rw-r--r-- | games-emulation/dolphin/Manifest | 16 | ||||
-rw-r--r-- | games-emulation/dolphin/dolphin-2407.ebuild | 306 | ||||
-rw-r--r-- | games-emulation/dolphin/dolphin-9999.ebuild | 220 | ||||
-rw-r--r-- | games-emulation/dolphin/files/dolphin-2407-fix-llvm-build.patch | 27 | ||||
-rw-r--r-- | games-emulation/dolphin/files/dolphin-2407-libfmt-11-fix.patch | 103 | ||||
-rw-r--r-- | games-emulation/dolphin/files/dolphin-2407-minizip.patch | 18 | ||||
-rw-r--r-- | games-emulation/dolphin/metadata.xml | 1 | ||||
-rw-r--r-- | games-emulation/melonds/Manifest | 4 | ||||
-rw-r--r-- | games-emulation/melonds/melonds-0.9.5_p20240815.ebuild | 99 | ||||
-rw-r--r-- | games-emulation/melonds/melonds-9999.ebuild | 37 |
11 files changed, 748 insertions, 83 deletions
diff --git a/games-emulation/Manifest.gz b/games-emulation/Manifest.gz Binary files differindex 24996939bbca..37c921ee0607 100644 --- a/games-emulation/Manifest.gz +++ b/games-emulation/Manifest.gz 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 } |