mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-19 20:13:01 -04:00
games-emulation/eden: new package, add 0.0.3_rc2
Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
This commit is contained in:
1
games-emulation/eden/Manifest
Normal file
1
games-emulation/eden/Manifest
Normal file
@@ -0,0 +1 @@
|
|||||||
|
DIST eden-0.0.3_rc2.tar.gz 33625981 BLAKE2B c570dcf78e2cfd00e43ef55f0586c95313b66a8f8026c770060f103dfbc8b995232f2fd6077654ad0b5e48546d63bfed90b2021992a26f38816cafde82f8627e SHA512 c69f9693888251d2d9e23fcd38519a33a0ea350cae913b31ff67342fab4e83c404547753fb62004d01bade4f2c132c448298bbfe30311977aa67ef8bb982abf5
|
||||||
166
games-emulation/eden/eden-0.0.3_rc2.ebuild
Normal file
166
games-emulation/eden/eden-0.0.3_rc2.ebuild
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit cmake xdg
|
||||||
|
|
||||||
|
DESCRIPTION="Nintendo Switch Emulator"
|
||||||
|
HOMEPAGE="https://eden-emu.dev"
|
||||||
|
SRC_URI="https://git.eden-emu.dev/eden-emu/eden/archive/v${PV/_/-}.tar.gz -> ${P}.tar.gz"
|
||||||
|
|
||||||
|
S="${WORKDIR}/${PN}"
|
||||||
|
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64"
|
||||||
|
IUSE="camera cubeb discord gui lto sdl ssl test web-applet wifi"
|
||||||
|
REQUIRED_USE="!gui? ( !camera !discord !web-applet )"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-arch/lz4
|
||||||
|
app-arch/zstd
|
||||||
|
dev-cpp/cpp-httplib:=[ssl]
|
||||||
|
dev-libs/libfmt:=
|
||||||
|
dev-libs/libusb
|
||||||
|
dev-libs/sirit
|
||||||
|
dev-util/spirv-tools
|
||||||
|
llvm-core/llvm
|
||||||
|
media-libs/libva
|
||||||
|
media-libs/opus
|
||||||
|
media-video/ffmpeg
|
||||||
|
net-libs/enet
|
||||||
|
net-libs/mbedtls:0[cmac]
|
||||||
|
sys-libs/zlib
|
||||||
|
|
||||||
|
amd64? ( dev-libs/dynarmic )
|
||||||
|
arm64? ( dev-libs/dynarmic )
|
||||||
|
|
||||||
|
camera? ( dev-qt/qtmultimedia:6 )
|
||||||
|
cubeb? ( media-libs/cubeb )
|
||||||
|
discord? (
|
||||||
|
dev-libs/discord-rpc
|
||||||
|
dev-qt/qtbase:6[network]
|
||||||
|
)
|
||||||
|
gui? (
|
||||||
|
dev-libs/quazip[qt6]
|
||||||
|
dev-qt/qtbase:6[concurrent,dbus,widgets]
|
||||||
|
)
|
||||||
|
sdl? ( media-libs/libsdl2 )
|
||||||
|
ssl? ( dev-libs/openssl:= )
|
||||||
|
web-applet? ( dev-qt/qtwebengine:6[widgets] )
|
||||||
|
wifi? ( net-wireless/wireless-tools )
|
||||||
|
"
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
dev-cpp/cpp-jwt
|
||||||
|
dev-cpp/nlohmann_json
|
||||||
|
dev-cpp/simpleini
|
||||||
|
dev-libs/boost:=[context]
|
||||||
|
dev-util/vulkan-headers
|
||||||
|
dev-util/vulkan-utility-libraries
|
||||||
|
games-util/gamemode
|
||||||
|
media-gfx/renderdoc
|
||||||
|
media-libs/VulkanMemoryAllocator
|
||||||
|
sys-libs/timezone-data
|
||||||
|
|
||||||
|
amd64? ( dev-libs/xbyak )
|
||||||
|
arm64? ( dev-libs/oaknut )
|
||||||
|
x86? ( dev-libs/xbyak )
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
dev-build/make
|
||||||
|
dev-vcs/git
|
||||||
|
sys-apps/coreutils
|
||||||
|
virtual/pkgconfig
|
||||||
|
test? ( dev-cpp/catch )
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${PN}-0.0.3_rc2-add-a-missing-include-for-the-log-header.patch"
|
||||||
|
"${FILESDIR}/${PN}-0.0.3_rc2-move-the-definition-of-create_target_directory_group.patch"
|
||||||
|
"${FILESDIR}/${PN}-0.0.3_rc2-relax-the-dependency-on-httplib.patch"
|
||||||
|
"${FILESDIR}/${PN}-0.0.3_rc2-use-the-system-Boost-library.patch"
|
||||||
|
"${FILESDIR}/${PN}-0.0.3_rc2-use-the-system-mbedtls-library.patch"
|
||||||
|
"${FILESDIR}/${PN}-0.0.3_rc2-use-the-system-QuaZip-library.patch"
|
||||||
|
"${FILESDIR}/${PN}-0.0.3_rc2-use-the-system-sirit-library.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
# [directory]=license
|
||||||
|
declare -A KEEP_BUNDLED=(
|
||||||
|
# Generated or copied files for internal usage
|
||||||
|
[bc_decoder]=MPL-2.0
|
||||||
|
[cmake-modules]=Boost-1.0
|
||||||
|
[FidelityFX-FSR]=MIT
|
||||||
|
[glad]=GPL-2+
|
||||||
|
[microprofile]=public-domain
|
||||||
|
[nx_tzdb]="GPL-2+ MIT"
|
||||||
|
[stb]="MIT public-domain"
|
||||||
|
[tz]=BSD-2
|
||||||
|
)
|
||||||
|
|
||||||
|
add_bundled_licenses() {
|
||||||
|
for license in "${KEEP_BUNDLED[@]}"; do
|
||||||
|
if [[ -n "$license" ]]; then
|
||||||
|
LICENSE+=" ${license}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
add_bundled_licenses
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
cmake_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DYUZU_CHECK_SUBMODULES=no
|
||||||
|
-DYUZU_ENABLE_PORTABLE=no
|
||||||
|
-DYUZU_USE_BUNDLED_FFMPEG=no
|
||||||
|
-DYUZU_USE_BUNDLED_SDL2=no
|
||||||
|
-DYUZU_USE_EXTERNAL_SDL2=no
|
||||||
|
-DYUZU_USE_EXTERNAL_VULKAN_HEADERS=no
|
||||||
|
-DYUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS=no
|
||||||
|
-DYUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES=no
|
||||||
|
-DYUZU_USE_PRECOMPILED_HEADERS=no
|
||||||
|
-DTZDB2NX_VERSION=gentoo
|
||||||
|
-DTZDB2NX_ZONEINFO_DIR=/usr/share/zoneinfo
|
||||||
|
|
||||||
|
-DENABLE_CUBEB=$(usex cubeb)
|
||||||
|
-DENABLE_OPENSSL=$(usex ssl)
|
||||||
|
-DENABLE_QT=$(usex gui)
|
||||||
|
-DENABLE_SDL2=$(usex sdl)
|
||||||
|
-DENABLE_WIFI_SCAN=$(usex wifi)
|
||||||
|
-DUSE_DISCORD_PRESENCE=$(usex discord)
|
||||||
|
-DYUZU_ENABLE_LTO=$(usex lto)
|
||||||
|
-DYUZU_TESTS=$(usex test)
|
||||||
|
-DYUZU_USE_QT_MULTIMEDIA=$(usex camera)
|
||||||
|
-DYUZU_USE_QT_WEB_ENGINE=$(usex web-applet)
|
||||||
|
|
||||||
|
# Support for this flag is broken by upstream
|
||||||
|
-DENABLE_WEB_SERVICE=yes
|
||||||
|
|
||||||
|
-Wno-dev
|
||||||
|
)
|
||||||
|
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${BUILD_DIR}" || die
|
||||||
|
|
||||||
|
# See https://git.eden-emu.dev/eden-emu/eden/issues/126
|
||||||
|
./bin/tests "~Fibers::InterExchange" "~RingBuffer: Threaded Test"
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
From: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
Subject: [PATCH] Add a missing `include` for the log header.
|
||||||
|
|
||||||
|
Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
|
||||||
|
--- a/src/core/hle/service/nvnflinger/hos_binder_driver_server.cpp
|
||||||
|
+++ b/src/core/hle/service/nvnflinger/hos_binder_driver_server.cpp
|
||||||
|
@@ -4,6 +4,7 @@
|
||||||
|
#include <mutex>
|
||||||
|
|
||||||
|
#include "common/common_types.h"
|
||||||
|
+#include "common/logging/log.h"
|
||||||
|
#include "core/hle/service/nvnflinger/hos_binder_driver_server.h"
|
||||||
|
|
||||||
|
namespace Service::Nvnflinger {
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
From: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
Subject: [PATCH] Move the definition of `create_target_directory_groups`.
|
||||||
|
|
||||||
|
This way, the function can be used by the external projects.
|
||||||
|
|
||||||
|
Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -455,6 +455,24 @@ set(FFmpeg_COMPONENTS
|
||||||
|
avutil
|
||||||
|
swscale)
|
||||||
|
|
||||||
|
+# This function should be passed a list of all files in a target. It will automatically generate
|
||||||
|
+# file groups following the directory hierarchy, so that the layout of the files in IDEs matches the
|
||||||
|
+# one in the filesystem.
|
||||||
|
+function(create_target_directory_groups target_name)
|
||||||
|
+ # Place any files that aren't in the source list in a separate group so that they don't get in
|
||||||
|
+ # the way.
|
||||||
|
+ source_group("Other Files" REGULAR_EXPRESSION ".")
|
||||||
|
+
|
||||||
|
+ get_target_property(target_sources "${target_name}" SOURCES)
|
||||||
|
+
|
||||||
|
+ foreach(file_name IN LISTS target_sources)
|
||||||
|
+ get_filename_component(dir_name "${file_name}" PATH)
|
||||||
|
+ # Group names use '\' as a separator even though the entire rest of CMake uses '/'...
|
||||||
|
+ string(REPLACE "/" "\\" group_name "${dir_name}")
|
||||||
|
+ source_group("${group_name}" FILES "${file_name}")
|
||||||
|
+ endforeach()
|
||||||
|
+endfunction()
|
||||||
|
+
|
||||||
|
add_subdirectory(externals)
|
||||||
|
|
||||||
|
if (ENABLE_QT)
|
||||||
|
@@ -628,24 +646,6 @@ endif()
|
||||||
|
# Include source code
|
||||||
|
# ===================
|
||||||
|
|
||||||
|
-# This function should be passed a list of all files in a target. It will automatically generate
|
||||||
|
-# file groups following the directory hierarchy, so that the layout of the files in IDEs matches the
|
||||||
|
-# one in the filesystem.
|
||||||
|
-function(create_target_directory_groups target_name)
|
||||||
|
- # Place any files that aren't in the source list in a separate group so that they don't get in
|
||||||
|
- # the way.
|
||||||
|
- source_group("Other Files" REGULAR_EXPRESSION ".")
|
||||||
|
-
|
||||||
|
- get_target_property(target_sources "${target_name}" SOURCES)
|
||||||
|
-
|
||||||
|
- foreach(file_name IN LISTS target_sources)
|
||||||
|
- get_filename_component(dir_name "${file_name}" PATH)
|
||||||
|
- # Group names use '\' as a separator even though the entire rest of CMake uses '/'...
|
||||||
|
- string(REPLACE "/" "\\" group_name "${dir_name}")
|
||||||
|
- source_group("${group_name}" FILES "${file_name}")
|
||||||
|
- endforeach()
|
||||||
|
-endfunction()
|
||||||
|
-
|
||||||
|
# Adjustments for MSVC + Ninja
|
||||||
|
if (MSVC AND CMAKE_GENERATOR STREQUAL "Ninja")
|
||||||
|
add_compile_options(
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
From: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
Subject: [PATCH] Relax the dependency on `httplib`.
|
||||||
|
|
||||||
|
Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -404,7 +404,7 @@ if (ENABLE_WEB_SERVICE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (ENABLE_WEB_SERVICE OR ENABLE_QT_UPDATE_CHECKER)
|
||||||
|
- find_package(httplib 0.12 MODULE COMPONENTS OpenSSL)
|
||||||
|
+ find_package(httplib MODULE COMPONENTS OpenSSL REQUIRED)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (YUZU_TESTS)
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
From: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
Subject: [PATCH] Use the system `Boost` library.
|
||||||
|
|
||||||
|
Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
|
||||||
|
--- a/externals/CMakeLists.txt
|
||||||
|
+++ b/externals/CMakeLists.txt
|
||||||
|
@@ -161,7 +161,7 @@ if (YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Boost headers
|
||||||
|
-add_subdirectory(boost-headers)
|
||||||
|
+find_package(Boost COMPONENTS context REQUIRED GLOBAL)
|
||||||
|
|
||||||
|
# TZDB (Time Zone Database)
|
||||||
|
add_subdirectory(nx_tzdb)
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
From: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
Subject: [PATCH] Use the system `QuaZip` library.
|
||||||
|
|
||||||
|
Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
|
||||||
|
--- a/src/yuzu/externals/CMakeLists.txt
|
||||||
|
+++ b/src/yuzu/externals/CMakeLists.txt
|
||||||
|
@@ -5,13 +5,4 @@ set(BUILD_TESTING OFF)
|
||||||
|
set(BUILD_SHARED_LIBS OFF)
|
||||||
|
|
||||||
|
# QuaZip
|
||||||
|
-include(CPM)
|
||||||
|
-set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm)
|
||||||
|
-set(CPM_USE_LOCAL_PACKAGES ON)
|
||||||
|
-
|
||||||
|
-CPMAddPackage(
|
||||||
|
- NAME QuaZip-Qt6
|
||||||
|
- VERSION 1.3
|
||||||
|
- GIT_REPOSITORY "https://github.com/crueter/quazip-qt6.git"
|
||||||
|
- GIT_TAG v1.5-qt6
|
||||||
|
-)
|
||||||
|
+find_package(QuaZip-Qt6 REQUIRED)
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
From: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
Subject: [PATCH] Use the system `mbedtls` library.
|
||||||
|
|
||||||
|
Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
|
||||||
|
--- a/externals/CMakeLists.txt
|
||||||
|
+++ b/externals/CMakeLists.txt
|
||||||
|
@@ -40,13 +40,7 @@ endif()
|
||||||
|
add_subdirectory(glad)
|
||||||
|
|
||||||
|
# mbedtls
|
||||||
|
-add_subdirectory(mbedtls)
|
||||||
|
-target_include_directories(mbedtls PUBLIC ./mbedtls/include)
|
||||||
|
-if (NOT MSVC)
|
||||||
|
- target_compile_options(mbedcrypto PRIVATE
|
||||||
|
- -Wno-unused-but-set-variable
|
||||||
|
- -Wno-string-concatenation)
|
||||||
|
-endif()
|
||||||
|
+add_library(mbedtls SHARED IMPORTED)
|
||||||
|
|
||||||
|
# MicroProfile
|
||||||
|
add_library(microprofile INTERFACE)
|
||||||
|
--- a/src/core/CMakeLists.txt
|
||||||
|
+++ b/src/core/CMakeLists.txt
|
||||||
|
@@ -1185,7 +1185,7 @@ else()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
target_link_libraries(core PUBLIC common PRIVATE audio_core hid_core network video_core nx_tzdb tz)
|
||||||
|
-target_link_libraries(core PUBLIC Boost::headers PRIVATE fmt::fmt nlohmann_json::nlohmann_json mbedtls RenderDoc::API)
|
||||||
|
+target_link_libraries(core PUBLIC Boost::headers PRIVATE fmt::fmt nlohmann_json::nlohmann_json mbedtls mbedcrypto RenderDoc::API)
|
||||||
|
if (MINGW)
|
||||||
|
target_link_libraries(core PRIVATE ${MSWSOCK_LIBRARY})
|
||||||
|
endif()
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
From: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
Subject: [PATCH] Use the system `sirit` library.
|
||||||
|
|
||||||
|
Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
|
||||||
|
|
||||||
|
--- a/externals/CMakeLists.txt
|
||||||
|
+++ b/externals/CMakeLists.txt
|
||||||
|
@@ -110,7 +110,7 @@ if (USE_DISCORD_PRESENCE AND NOT TARGET DiscordRPC::discord-rpc)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Sirit
|
||||||
|
-add_subdirectory(sirit)
|
||||||
|
+add_library(sirit SHARED IMPORTED)
|
||||||
|
|
||||||
|
# httplib
|
||||||
|
if ((ENABLE_WEB_SERVICE OR ENABLE_QT_UPDATE_CHECKER) AND NOT TARGET httplib::httplib)
|
||||||
20
games-emulation/eden/metadata.xml
Normal file
20
games-emulation/eden/metadata.xml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>contact@paveloom.dev</email>
|
||||||
|
<name>Pavel Sobolev</name>
|
||||||
|
</maintainer>
|
||||||
|
<use>
|
||||||
|
<flag name="camera">Enable camera support</flag>
|
||||||
|
<flag name="cubeb">Enable the cubeb audio backend</flag>
|
||||||
|
<flag name="discord">Enable Discord Rich Presence</flag>
|
||||||
|
<flag name="sdl">Enable the SDL2 frontend</flag>
|
||||||
|
<flag name="ssl">Enable OpenSSL backend for ISslConnection</flag>
|
||||||
|
<flag name="web-applet">Enable web applet support</flag>
|
||||||
|
<flag name="wifi">Enable Wi-Fi scanning</flag>
|
||||||
|
</use>
|
||||||
|
<upstream>
|
||||||
|
<bugs-to>https://git.eden-emu.dev/eden-emu/eden/issues</bugs-to>
|
||||||
|
</upstream>
|
||||||
|
</pkgmetadata>
|
||||||
Reference in New Issue
Block a user