# Copyright 2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit cmake xdg-utils DESCRIPTION="Experimental PlayStation Vita emulator." HOMEPAGE=" https://vita3k.org https://github.com/Vita3K/Vita3K " SHA="9abe85f90ff04f397a817beef03f3fafd5e6900f" LIBATRAC9_SHA="82767fe38823c32536726ea798f392b0b49e66b9" SPIRV_CROSS_SHA="d8e3e2b141b8c8a167b2e3984736a6baacff316c" VULKANMEMORYALLOCATOR_HPP_SHA="2059f0fdd73492b03d60a90c73e5038224b99093" VULKANMEMORYALLOCATOR_HPP_VULKAN_HEADERS_SHA="952f776f6573aafbb62ea717d871cd1d6816c387" VULKANMEMORYALLOCATOR_HPP_VULKANMEMORYALLOCATOR_SHA="c788c52156f3ef7bc7ab769cb03c110a53ac8fcb" BETTER_ENUMS_SHA="c35576bed0295689540b39873126129adfa0b4c8" CONCURRENTQUEUE_SHA="6dd38b8a1dbaa7863aa907045f32308a56a6ff5d" DIRENT_SHA="39c1f1bc98ef3326237d03006f35d7dd44620e43" DLMALLOC_SHA="e98f4ee160380d7c39dc1f04e7488bcf0770d391" _DYNARMIC_SHA="86458a0bd369d63ba4c2ef812cacbb6c9080c065" GLSLANG_SHA="fc9889c889561c5882e83819dcaffef5ed45529b" GOOGLETEST_SHA="6910c9d9165801d8827d628cb72eb7ea9dd538c5" IMGUI_SHA="cb16568fca5297512ff6a8f3b877f461c4323fbe" IMGUI_CLUB_SHA="53a2df3dd1b19dd321beb0897a0d1b9f87e5429c" LIBADRENOTOOLS_SHA="8fae8ce254dfc1344527e05301e43f37dea2df80" LIBADRENOTOOLS_LIB_LINKERNSBYPASS_SHA="aa3975893d83ef1bc84c321ec60c65fbf1287887" LIBFAT16_SHA="d9a890b712dcdb46d3d33230997efc59f5ad8d62" PRINTF_SHA="c75def6db38f9978c55e8d27227858df911cd727" PSVPFSTOOLS_SHA="ab1aa9b36388843f6a9f8dc86b1746f1f2a7e557" PSVPFSTOOLS_LIBB64_SHA="3896b7a74c70baed0e2f6039a1dbd723e5d5cc8f" PSVPFSTOOLS_LIBZRIF_SHA="7d1e69bee7d2f08ea5754eff4463c041aacd49af" PSVPFSTOOLS_PSVPFSPARSER_SHA="4094450bcaac2256236d61ae3a730425ae47bd39" PSVPFSTOOLS_ZLIB_SHA="cb210089eb06453199578993566012493f6f7d21" SUBSTITUTE_SHA="319da6b563d8da689f3b9df2fbb839edd41a1943" VITA_TOOLCHAIN_SHA="77f17b979678e7af0acfe708dc97a45ca6fd55e2" VITA_TOOLCHAIN_PSP2RELA_SHA="9e0f4913866431aef48967cfb7667b085e79428b" SRC_URI="https://github.com/Vita3K/Vita3K/archive/${SHA}.tar.gz -> ${P}-${SHA:0:7}.tar.gz https://github.com/Vita3K/LibAtrac9/archive/${LIBATRAC9_SHA}.tar.gz -> ${PN}-LibAtrac9-82767fe.tar.gz https://github.com/KhronosGroup/SPIRV-Cross/archive/${SPIRV_CROSS_SHA}.tar.gz -> ${PN}-SPIRV-Cross-d8e3e2b.tar.gz https://github.com/YaaZ/VulkanMemoryAllocator-Hpp/archive/${VULKANMEMORYALLOCATOR_HPP_SHA}.tar.gz -> ${PN}-VulkanMemoryAllocator-Hpp-2059f0f.tar.gz https://github.com/KhronosGroup/Vulkan-Headers/archive/${VULKANMEMORYALLOCATOR_HPP_VULKAN_HEADERS_SHA}.tar.gz -> ${PN}-VulkanMemoryAllocator-Hpp-Vulkan-Headers-952f776.tar.gz https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/archive/${VULKANMEMORYALLOCATOR_HPP_VULKANMEMORYALLOCATOR_SHA}.tar.gz -> ${PN}-VulkanMemoryAllocator-Hpp-VulkanMemoryAllocator-c788c52.tar.gz https://github.com/aantron/better-enums/archive/${BETTER_ENUMS_SHA}.tar.gz -> ${PN}-better-enums-c35576b.tar.gz https://github.com/cameron314/concurrentqueue/archive/${CONCURRENTQUEUE_SHA}.tar.gz -> ${PN}-concurrentqueue-6dd38b8.tar.gz https://github.com/tronkko/dirent/archive/${DIRENT_SHA}.tar.gz -> ${PN}-dirent-39c1f1b.tar.gz https://github.com/Vita3K/dlmalloc/archive/${DLMALLOC_SHA}.tar.gz -> ${PN}-dlmalloc-e98f4ee.tar.gz https://github.com/Vita3K/dynarmic/archive/${_DYNARMIC_SHA}.tar.gz -> ${PN}-dynarmic-86458a0.tar.gz https://github.com/KhronosGroup/glslang/archive/${GLSLANG_SHA}.tar.gz -> ${PN}-glslang-fc9889c.tar.gz https://github.com/google/googletest/archive/${GOOGLETEST_SHA}.tar.gz -> ${PN}-googletest-6910c9d.tar.gz https://github.com/ocornut/imgui/archive/${IMGUI_SHA}.tar.gz -> ${PN}-imgui-cb16568.tar.gz https://github.com/ocornut/imgui_club/archive/${IMGUI_CLUB_SHA}.tar.gz -> ${PN}-imgui_club-53a2df3.tar.gz https://github.com/bylaws/libadrenotools/archive/${LIBADRENOTOOLS_SHA}.tar.gz -> ${PN}-libadrenotools-8fae8ce.tar.gz https://github.com/bylaws/liblinkernsbypass/archive/${LIBADRENOTOOLS_LIB_LINKERNSBYPASS_SHA}.tar.gz -> ${PN}-libadrenotools-lib-linkernsbypass-aa39758.tar.gz https://github.com/Vita3K/libfat16/archive/${LIBFAT16_SHA}.tar.gz -> ${PN}-libfat16-d9a890b.tar.gz https://github.com/Vita3K/printf/archive/${PRINTF_SHA}.tar.gz -> ${PN}-printf-c75def6.tar.gz https://github.com/Vita3K/psvpfstools/archive/${PSVPFSTOOLS_SHA}.tar.gz -> ${PN}-psvpfstools-ab1aa9b.tar.gz https://github.com/korewawatchful/libb64/archive/${PSVPFSTOOLS_LIBB64_SHA}.tar.gz -> ${PN}-psvpfstools-libb64-3896b7a.tar.gz https://github.com/KorewaWatchful/libzrif/archive/${PSVPFSTOOLS_LIBZRIF_SHA}.tar.gz -> ${PN}-psvpfstools-libzrif-7d1e69b.tar.gz https://github.com/Vita3K/psvpfsparser/archive/${PSVPFSTOOLS_PSVPFSPARSER_SHA}.tar.gz -> ${PN}-psvpfstools-psvpfsparser-4094450.tar.gz https://github.com/korewawatchful/zlib/archive/${PSVPFSTOOLS_ZLIB_SHA}.tar.gz -> ${PN}-psvpfstools-zlib-cb21008.tar.gz https://github.com/Vita3K/substitute/archive/${SUBSTITUTE_SHA}.tar.gz -> ${PN}-substitute-319da6b.tar.gz https://github.com/vitasdk/vita-toolchain/archive/${VITA_TOOLCHAIN_SHA}.tar.gz -> ${PN}-vita-toolchain-77f17b9.tar.gz https://github.com/Princess-of-Sleeping/psp2rela/archive/${VITA_TOOLCHAIN_PSP2RELA_SHA}.tar.gz -> ${PN}-vita-toolchain-psp2rela-9e0f491.tar.gz " S="${WORKDIR}/Vita3K-${SHA}" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64" DEPEND=">=dev-libs/boost-1.81:= dev-cpp/tracy dev-cpp/yaml-cpp dev-libs/capstone:= dev-libs/libfmt:= dev-libs/nativefiledialog-extended dev-libs/openssl dev-libs/pugixml dev-libs/spdlog dev-libs/stb dev-libs/xxhash media-libs/cubeb media-libs/libsdl3 media-video/ffmpeg:= sys-apps/dbus virtual/zlib" RDEPEND="${DEPEND}" PATCHES=( "${FILESDIR}/${PN}-0001-allow-shared-system-boost-on.patch" "${FILESDIR}/${PN}-0002-honor-xdg-base-directory-spe.patch" "${FILESDIR}/${PN}-0003-add-cmake-install-rules-for-.patch" "${FILESDIR}/${PN}-0004-skip-empty-boost-submodule-c.patch" "${FILESDIR}/${PN}-0005-add-use_system_ffmpeg-opt-in.patch" "${FILESDIR}/${PN}-0006-codec-use-public-ffmpeg-api-.patch" "${FILESDIR}/${PN}-0007-add-use_system_stb-opt-in-fo.patch" "${FILESDIR}/${PN}-0008-add-use_system_fmt-opt-in-fo.patch" "${FILESDIR}/${PN}-0009-add-use_system_sdl3-opt-in-f.patch" "${FILESDIR}/${PN}-0010-add-use_system_capstone-opt-.patch" "${FILESDIR}/${PN}-0011-add-use_system_tracy-opt-in-.patch" "${FILESDIR}/${PN}-0012-add-use_system_pugixml-opt-i.patch" "${FILESDIR}/${PN}-0013-add-use_system_yaml_cpp-opt-.patch" "${FILESDIR}/${PN}-0014-add-use_system_spdlog-opt-in.patch" "${FILESDIR}/${PN}-0015-add-use_system_xxhash-opt-in.patch" "${FILESDIR}/${PN}-0016-fall-back-to-xxhash.h-inline.patch" "${FILESDIR}/${PN}-0017-add-use_system_nfde-opt-in-f.patch" "${FILESDIR}/${PN}-0018-add-use_system_cubeb-opt-in-.patch" "${FILESDIR}/${PN}-0019-force-the-bundled-xbyak-syst.patch" "${FILESDIR}/${PN}-0020-build-ensure-ndebug-for-relw.patch" ) src_prepare() { rm -rf "${S}/external/LibAtrac9" || die mv "${WORKDIR}/LibAtrac9-${LIBATRAC9_SHA}" "${S}/external/LibAtrac9" || die rm -rf "${S}/external/SPIRV-Cross" || die mv "${WORKDIR}/SPIRV-Cross-${SPIRV_CROSS_SHA}" "${S}/external/SPIRV-Cross" || die rm -rf "${S}/external/VulkanMemoryAllocator-Hpp" || die mv "${WORKDIR}/VulkanMemoryAllocator-Hpp-${VULKANMEMORYALLOCATOR_HPP_SHA}" "${S}/external/VulkanMemoryAllocator-Hpp" || die rm -rf "${S}/external/better-enums" || die mv "${WORKDIR}/better-enums-${BETTER_ENUMS_SHA}" "${S}/external/better-enums" || die rm -rf "${S}/external/concurrentqueue" || die mv "${WORKDIR}/concurrentqueue-${CONCURRENTQUEUE_SHA}" "${S}/external/concurrentqueue" || die rm -rf "${S}/external/dirent" || die mv "${WORKDIR}/dirent-${DIRENT_SHA}" "${S}/external/dirent" || die rm -rf "${S}/external/dlmalloc" || die mv "${WORKDIR}/dlmalloc-${DLMALLOC_SHA}" "${S}/external/dlmalloc" || die rm -rf "${S}/external/dynarmic" || die mv "${WORKDIR}/dynarmic-${_DYNARMIC_SHA}" "${S}/external/dynarmic" || die rm -rf "${S}/external/glslang" || die mv "${WORKDIR}/glslang-${GLSLANG_SHA}" "${S}/external/glslang" || die rm -rf "${S}/external/googletest" || die mv "${WORKDIR}/googletest-${GOOGLETEST_SHA}" "${S}/external/googletest" || die rm -rf "${S}/external/imgui" || die mv "${WORKDIR}/imgui-${IMGUI_SHA}" "${S}/external/imgui" || die rm -rf "${S}/external/imgui_club" || die mv "${WORKDIR}/imgui_club-${IMGUI_CLUB_SHA}" "${S}/external/imgui_club" || die rm -rf "${S}/external/libadrenotools" || die mv "${WORKDIR}/libadrenotools-${LIBADRENOTOOLS_SHA}" "${S}/external/libadrenotools" || die rm -rf "${S}/external/libfat16" || die mv "${WORKDIR}/libfat16-${LIBFAT16_SHA}" "${S}/external/libfat16" || die rm -rf "${S}/external/printf" || die mv "${WORKDIR}/printf-${PRINTF_SHA}" "${S}/external/printf" || die rm -rf "${S}/external/psvpfstools" || die mv "${WORKDIR}/psvpfstools-${PSVPFSTOOLS_SHA}" "${S}/external/psvpfstools" || die rm -rf "${S}/external/substitute" || die mv "${WORKDIR}/substitute-${SUBSTITUTE_SHA}" "${S}/external/substitute" || die rm -rf "${S}/external/vita-toolchain" || die mv "${WORKDIR}/vita-toolchain-${VITA_TOOLCHAIN_SHA}" "${S}/external/vita-toolchain" || die rm -rf "${S}/external/VulkanMemoryAllocator-Hpp/Vulkan-Headers" || die mv "${WORKDIR}/Vulkan-Headers-${VULKANMEMORYALLOCATOR_HPP_VULKAN_HEADERS_SHA}" "${S}/external/VulkanMemoryAllocator-Hpp/Vulkan-Headers" || die rm -rf "${S}/external/VulkanMemoryAllocator-Hpp/VulkanMemoryAllocator" || die mv "${WORKDIR}/VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_HPP_VULKANMEMORYALLOCATOR_SHA}" "${S}/external/VulkanMemoryAllocator-Hpp/VulkanMemoryAllocator" || die rm -rf "${S}/external/psvpfstools/libb64" || die mv "${WORKDIR}/libb64-${PSVPFSTOOLS_LIBB64_SHA}" "${S}/external/psvpfstools/libb64" || die rm -rf "${S}/external/psvpfstools/libzrif" || die mv "${WORKDIR}/libzRIF-${PSVPFSTOOLS_LIBZRIF_SHA}" "${S}/external/psvpfstools/libzrif" || die rm -rf "${S}/external/psvpfstools/psvpfsparser" || die mv "${WORKDIR}/psvpfsparser-${PSVPFSTOOLS_PSVPFSPARSER_SHA}" "${S}/external/psvpfstools/psvpfsparser" || die rm -rf "${S}/external/psvpfstools/zlib" || die mv "${WORKDIR}/zlib-${PSVPFSTOOLS_ZLIB_SHA}" "${S}/external/psvpfstools/zlib" || die rm -rf "${S}/external/vita-toolchain/psp2rela" || die mv "${WORKDIR}/psp2rela-${VITA_TOOLCHAIN_PSP2RELA_SHA}" "${S}/external/vita-toolchain/psp2rela" || die rm -rf "${S}/external/libadrenotools/lib/linkernsbypass" || die mv "${WORKDIR}/liblinkernsbypass-${LIBADRENOTOOLS_LIB_LINKERNSBYPASS_SHA}" "${S}/external/libadrenotools/lib/linkernsbypass" || die cmake_src_prepare } src_configure() { local mycmakeargs=( -DBUILD_SHARED_LIBS=OFF -DUSE_DISCORD_RICH_PRESENCE=OFF -DUSE_VITA3K_UPDATE=OFF -DVITA3K_FORCE_SYSTEM_BOOST=ON -DUSE_SYSTEM_CAPSTONE=ON -DUSE_SYSTEM_CUBEB=ON -DUSE_SYSTEM_FFMPEG=ON -DUSE_SYSTEM_FMT=ON -DUSE_SYSTEM_NFDE=ON -DUSE_SYSTEM_SDL3=ON -DUSE_SYSTEM_SPDLOG=ON -DUSE_SYSTEM_STB=ON -DUSE_SYSTEM_PUGIXML=ON -DUSE_SYSTEM_TRACY=ON -DUSE_SYSTEM_XXHASH=ON -DUSE_SYSTEM_YAML_CPP=ON -Wno-dev ) cmake_src_configure } src_install() { DESTDIR="${D}" cmake --install "${BUILD_DIR}" --component vita3k || die einstalldocs } pkg_postinst() { xdg_desktop_database_update xdg_icon_cache_update } pkg_postrm() { xdg_desktop_database_update xdg_icon_cache_update }