mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-10 15:45:15 -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