commit: 245ba1910f5aa21176afac80e264ebe15db23a16 Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org> AuthorDate: Fri Oct 21 10:06:52 2022 +0000 Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org> CommitDate: Fri Oct 21 10:27:29 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=245ba191
games-emulation/pcsx2: sync live, fix USE=-vulkan Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org> games-emulation/pcsx2/pcsx2-9999.ebuild | 82 +++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 30 deletions(-) diff --git a/games-emulation/pcsx2/pcsx2-9999.ebuild b/games-emulation/pcsx2/pcsx2-9999.ebuild index e65ca9879371..25b97c43ac32 100644 --- a/games-emulation/pcsx2/pcsx2-9999.ebuild +++ b/games-emulation/pcsx2/pcsx2-9999.ebuild @@ -10,10 +10,14 @@ if [[ ${PV} == 9999 ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/PCSX2/pcsx2.git" else + HASH_FASTFLOAT=32d21dcecb404514f94fb58660b8029a4673c2c1 + HASH_RCHEEVOS=31f8788fe0e694e99db7ce138d45a655c556fa96 HASH_GLSLANG=c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5 HASH_VULKAN=9f4c61a31435a7a90a314fc68aeb386c92a09c0f SRC_URI=" https://github.com/PCSX2/pcsx2/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/fastfloat/fast_float/archive/${HASH_FASTFLOAT}.tar.gz -> ${PN}-fast_float-${HASH_FASTFLOAT::10}.tar.gz + https://github.com/RetroAchievements/rcheevos/archive/${HASH_RCHEEVOS}.tar.gz -> ${PN}-rcheevos-${HASH_RCHEEVOS::10}.tar.gz vulkan? ( https://github.com/KhronosGroup/glslang/archive/${HASH_GLSLANG}.tar.gz -> ${PN}-glslang-${HASH_GLSLANG::10}.tar.gz https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz -> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz @@ -25,11 +29,10 @@ DESCRIPTION="PlayStation 2 emulator" HOMEPAGE="https://pcsx2.net/" LICENSE=" - GPL-3+ Apache-2.0 BSD BSD-2 BSD-4 Boost-1.0 GPL-2+ ISC LGPL-2.1+ - LGPL-3+ MIT OFL-1.1 ZLIB public-domain" + GPL-3+ Apache-2.0 BSD BSD-2 BSD-4 Boost-1.0 CC0-1.0 GPL-2+ + ISC LGPL-2.1+ LGPL-3+ MIT OFL-1.1 ZLIB public-domain" SLOT="0" -# TODO: proper IUSE to handle cubeb backends with the now-required bundled copy -IUSE="cpu_flags_x86_sse4_1 pulseaudio qt6 test vulkan wayland" +IUSE="alsa cpu_flags_x86_sse4_1 jack pulseaudio qt6 sndio test vulkan wayland" REQUIRED_USE="cpu_flags_x86_sse4_1" # dies at runtime if no support RESTRICT="!test? ( test )" @@ -44,7 +47,6 @@ RDEPEND=" media-libs/harfbuzz media-libs/libglvnd media-libs/libpng:= - media-libs/libsamplerate >=media-libs/libsdl2-2.0.22[haptic,joystick] media-libs/libsoundtouch:= net-libs/libpcap @@ -52,6 +54,9 @@ RDEPEND=" virtual/libudev:= x11-libs/libX11 x11-libs/libXrandr + alsa? ( media-libs/alsa-lib ) + jack? ( virtual/jack ) + pulseaudio? ( media-libs/libpulse ) qt6? ( dev-qt/qtbase:6[gui,network,widgets] dev-qt/qtsvg:6 @@ -59,11 +64,12 @@ RDEPEND=" ) !qt6? ( dev-libs/glib:2 + media-libs/libsamplerate x11-libs/gdk-pixbuf:2 x11-libs/gtk+:3[wayland?] x11-libs/wxGTK:${WX_GTK_VER}[X] - pulseaudio? ( media-libs/libpulse ) ) + sndio? ( media-sound/sndio:= ) vulkan? ( media-libs/vulkan-loader ) wayland? ( dev-libs/wayland )" DEPEND=" @@ -85,31 +91,40 @@ PATCHES=( "${FILESDIR}"/${PN}-1.7.3329-musl.patch "${FILESDIR}"/${PN}-1.7.3329-qt6.patch "${FILESDIR}"/${PN}-1.7.3351-unbundle.patch + "${FILESDIR}"/${PN}-1.7.3468-cubeb-automagic.patch ) src_unpack() { if [[ ${PV} == 9999 ]]; then - local EGIT_SUBMODULES=() - if use vulkan; then - EGIT_SUBMODULES+=( - 3rdparty/glslang/glslang # needs StandAlone/ResourceLimits.h - 3rdparty/vulkan-headers # to keep in sync with glslang - - # system rapidyaml is still used, but this uses another part - # of the source and so allow submodule for now - # https://github.com/PCSX2/pcsx2/commit/af646e449 - 3rdparty/rapidyaml/rapidyaml - 3rdparty/rapidyaml/rapidyaml/extern/c4core - 3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float - - # TODO?: check if easy to unbundle when look at next nightly bump - # (there is a -DUSE_ACHIVEMENTS to be optional too) - 3rdparty/rcheevos/rcheevos - ) - fi + local EGIT_SUBMODULES=( + # has no build system and is not really setup for unbundling + 3rdparty/rcheevos/rcheevos + + # system rapidyaml is still used, but this uses another part + # of the source directly (fast_float) and so allow the submodule + # https://github.com/PCSX2/pcsx2/commit/af646e449 + 3rdparty/rapidyaml/rapidyaml + 3rdparty/rapidyaml/rapidyaml/extern/c4core + 3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float + + # uses glslang's StandAlone/ResourceLimits.h unavailable with + # system's (also keep bundled vulkan-headers to be in sync) + $(usev vulkan ' + 3rdparty/glslang/glslang + 3rdparty/vulkan-headers') + ) + git-r3_src_unpack else default + + mkdir -p "${S}"/3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext || die + mv fast_float-${HASH_FASTFLOAT} \ + "${S}"/3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float || die + + rmdir "${S}"/3rdparty/rcheevos/rcheevos || die + mv rcheevos-${HASH_RCHEEVOS} "${S}"/3rdparty/rcheevos/rcheevos || die + if use vulkan; then rmdir "${S}"/3rdparty/{glslang/glslang,vulkan-headers} || die mv glslang-${HASH_GLSLANG} "${S}"/3rdparty/glslang/glslang || die @@ -125,11 +140,8 @@ src_prepare() { sed -e "/EmuFolders::AppRoot =/s|=.*|= \"${EPREFIX}/usr/share/PCSX2\";|" \ -i pcsx2/Frontend/CommonHost.cpp || die - # pulseaudio is only used for usb-mic and without qt6, not for audio output - { use pulseaudio && use !qt6; } || :> cmake/FindPulseAudio.cmake || die - - # GS tests currently fail to build with qt6 - use !qt6 || sed -i '/add_subdirectory(GS)/d' tests/ctest/CMakeLists.txt || die + # non-cubeb pulseaudio is only used for usb-mic without qt6, not output + use pulseaudio || :> cmake/FindPulseAudio.cmake || die if [[ ${PV} != 9999 ]]; then sed -e '/set(PCSX2_GIT_TAG "")/s/""/"v'${PV}'"/' \ @@ -137,7 +149,10 @@ src_prepare() { # delete all 3rdparty/* except known-used ones in non-live local keep=( - cpuinfo glad imgui include jpgd lzma simpleini xbyak + # TODO?: rapidjson and xbyak are packaged and could be unbundlable + # w/ patch, and discord-rpc be optional w/ dependency on rapidjson + cpuinfo cubeb discord-rpc glad imgui include jpgd lzma + rapidjson rapidyaml rcheevos simpleini xbyak $(usev vulkan 'glslang vulkan-headers') ) find 3rdparty -mindepth 1 -maxdepth 1 -type d \ @@ -169,6 +184,13 @@ src_configure() { # (see PCSX2Base.h) and it dies if no support at runtime (AppInit.cpp) # https://github.com/PCSX2/pcsx2/pull/4329 -DARCH_FLAG=-msse4.1 + + # bundled cubeb flags, see media-libs/cubeb and cubeb-automagic.patch + -DCHECK_ALSA=$(usex alsa) + -DCHECK_JACK=$(usex jack) + -DCHECK_PULSE=$(usex pulseaudio) + -DCHECK_SNDIO=$(usex sndio) + -DLAZY_LOAD_LIBS=no ) cmake_src_configure