Skip to content

add eden-git #4298

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions archlinuxcn/eden-git/0001-fix-package-version.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
From 9a84bad31cbd3c6fdb37536c62ea5b437218cbdb Mon Sep 17 00:00:00 2001
From: sukanka <[email protected]>
Date: Wed, 4 Jun 2025 20:17:28 +0800
Subject: [PATCH 1/4] fix package version

no need to pin versions of these packages

2 2 CMakeLists.txt

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5144dc028a..edc56a16d5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -310,7 +310,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
# Enforce the search mode of non-required packages for better and shorter failure messages
find_package(enet 1.3 MODULE)
find_package(fmt 8 REQUIRED)
-find_package(LLVM 17.0.2 MODULE COMPONENTS Demangle)
+find_package(LLVM MODULE COMPONENTS Demangle)
find_package(lz4 REQUIRED)
find_package(nlohmann_json 3.8 REQUIRED)
find_package(Opus 1.3 MODULE)
@@ -358,7 +358,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)
endif()

if (YUZU_TESTS)
--
2.49.0

32 changes: 32 additions & 0 deletions archlinuxcn/eden-git/0002-fix-function-definition.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
From d9162376eb8cdbb5aa77d82d32f217caffa73c36 Mon Sep 17 00:00:00 2001
From: sukanka <[email protected]>
Date: Wed, 4 Jun 2025 20:17:43 +0800
Subject: [PATCH 2/4] fix function definition

we need a function `create_target_directory_groups` which is defined in `src/`

1 1 CMakeLists.txt

diff --git a/CMakeLists.txt b/CMakeLists.txt
index edc56a16d5..b328c3f41e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -409,7 +409,6 @@ set(FFmpeg_COMPONENTS
avutil
swscale)

-add_subdirectory(externals)

if (ENABLE_QT)
if (YUZU_USE_BUNDLED_QT)
@@ -637,6 +636,7 @@ if(MSVC)
endif()

add_subdirectory(src)
+add_subdirectory(externals)

# Set yuzu project or yuzu-cmd project as default StartUp Project in Visual Studio depending on whether QT is enabled or not
if(ENABLE_QT)
--
2.49.0

40 changes: 40 additions & 0 deletions archlinuxcn/eden-git/0003-use-system-boost-headers.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
From 57d74097a6a09d16809b3e26a19f0e36eafd4a7b Mon Sep 17 00:00:00 2001
From: sukanka <[email protected]>
Date: Wed, 4 Jun 2025 20:18:22 +0800
Subject: [PATCH 3/4] use system boost headers

add option to allow system-wide boost headers.

1 0 CMakeLists.txt
3 1 externals/CMakeLists.txt

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b328c3f41e..957ef7b907 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -308,6 +308,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
# =======================================================================

# Enforce the search mode of non-required packages for better and shorter failure messages
+find_package(Boost REQUIRED context)
find_package(enet 1.3 MODULE)
find_package(fmt 8 REQUIRED)
find_package(LLVM MODULE COMPONENTS Demangle)
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index fd3f54ae4f..754800ed16 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -161,7 +161,9 @@ if (YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES)
endif()

# Boost headers
-add_subdirectory(boost-headers)
+if (YUZU_USE_EXTERNAL_BOOST_HEADERS)
+ add_subdirectory(boost-headers)
+endif()

# TZDB (Time Zone Database)
add_subdirectory(nx_tzdb)
--
2.49.0

74 changes: 74 additions & 0 deletions archlinuxcn/eden-git/0004-system-mbedtls.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
From bf8cbea392ba73b09476d8f4fac27802eef37846 Mon Sep 17 00:00:00 2001
From: sukanka <[email protected]>
Date: Wed, 4 Jun 2025 20:19:19 +0800
Subject: [PATCH 4/4] system mbedtls

we use system mbedtls here, it works.

4 0 CMakeLists.txt
0 7 externals/CMakeLists.txt
1 1 src/yuzu/CMakeLists.txt
1 1 src/yuzu_cmd/CMakeLists.txt

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 957ef7b907..669965695b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -321,6 +321,10 @@ find_package(stb MODULE)
find_package(VulkanMemoryAllocator CONFIG)
find_package(ZLIB 1.2 REQUIRED)
find_package(zstd 1.5 REQUIRED)
+set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/lib/mbedtls2/pkgconfig")
+pkg_check_modules(MbedTLS REQUIRED IMPORTED_TARGET GLOBAL mbedtls mbedcrypto)
+include_directories(${MbedTLS_INCLUDE_DIRS})
+link_directories(${MbedTLS_LIBRARY_DIRS})

if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS)
find_package(VulkanHeaders 1.3.274 REQUIRED)
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index 754800ed16..bdc1e8e163 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -40,13 +40,6 @@ 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()

# MicroProfile
add_library(microprofile INTERFACE)
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt
index 440ef3c46d..0562c9a818 100644
--- a/src/yuzu/CMakeLists.txt
+++ b/src/yuzu/CMakeLists.txt
@@ -397,7 +397,7 @@ endif()
target_link_libraries(yuzu PRIVATE common core input_common frontend_common network video_core)
target_link_libraries(yuzu PRIVATE Boost::headers glad Qt6::Widgets)
target_link_libraries(yuzu PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads)
-
+target_link_libraries(yuzu PRIVATE mbedtls mbedcrypto)
target_link_libraries(yuzu PRIVATE Vulkan::Headers)
if (NOT WIN32)
target_include_directories(yuzu PRIVATE ${Qt6Gui_PRIVATE_INCLUDE_DIRS})
diff --git a/src/yuzu_cmd/CMakeLists.txt b/src/yuzu_cmd/CMakeLists.txt
index ebd8fd7387..20c2c285d9 100644
--- a/src/yuzu_cmd/CMakeLists.txt
+++ b/src/yuzu_cmd/CMakeLists.txt
@@ -29,7 +29,7 @@ add_executable(yuzu-cmd
)

target_link_libraries(yuzu-cmd PRIVATE common core input_common frontend_common)
-target_link_libraries(yuzu-cmd PRIVATE glad)
+target_link_libraries(yuzu-cmd PRIVATE glad mbedtls mbedcrypto)
if (MSVC)
target_link_libraries(yuzu-cmd PRIVATE getopt)
endif()
--
2.49.0

121 changes: 121 additions & 0 deletions archlinuxcn/eden-git/PKGBUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# Maintainer: sukanka <su975853527 [at] gmail [dot] com>
_pkgname=eden
pkgname=${_pkgname,,}-git
_cmd=yuzu
pkgver=0.0.2.pre.alpha.r48
pkgrel=1
pkgdesc="Nintendo Switch emulator forked from yuzu"
arch=(x86_64)
url=https://git.eden-emu.dev/eden-emu/eden
license=(GPL-3.0-or-later)
provides=('eden')
depends=('boost-libs' 'hicolor-icon-theme' 'sdl2' 'qt6-base' 'qt6-webengine' 'fmt' 'opus' 'lz4'
'openssl' 'zstd' 'cubeb' 'enet' 'discord-rpc' 'cpp-httplib' 'dynarmic' 'mbedtls2' 'ffmpeg'
)
makedepends=('llvm' 'git' 'glslang' 'cmake' 'ninja' 'perl' 'clang' 'patch'
'qt6-tools' 'qt6-multimedia' 'libxkbcommon-x11' 'libzip' 'libfdk-aac' 'libinih'
'vulkan-memory-allocator' 'vulkan-utility-libraries' 'vulkan-headers' 'spirv-headers'
'boost' 'nlohmann-json' 'robin-map' 'cpp-jwt' 'gamemode' 'python' 'renderdoc'

'xbyak'

# for documentation
# 'doxygen' 'python-jinja' 'python-jsonschema' 'graphviz'

# for testing
# 'catch2'
)
optdepends=('qt6-wayland: for Wayland support')
source=(
eden::git+${url}.git
git+https://github.com/yuzu-mirror/sirit.git#commit=ab75463
git+https://github.com/brofield/simpleini.git#commit=6048871ea9
"https://github.com/lat9nq/tzdb_to_nx/releases/download/221202/221202.zip"
0001-fix-package-version.patch
0002-fix-function-definition.patch
0003-use-system-boost-headers.patch
0004-system-mbedtls.patch
)
noextract=('221202.zip')
b2sums=('SKIP'
'91e4cd03d67c930b6d751ca19cf6fbaaba86084412bd13b172186387ea27b461457a3e19bc0af315c807839e64f91c865298678af748e2d6e07df2abc85430ed'
'fae42bb13f180ab991f6bfc8a45ea3df08ced1d77db77f54cf5a222f93ea468bd6fc0d36d65f9f3739e9813d77dbae31931948dc9afa28e884c53b8128c13c94'
'7bd0ff5ca80cf560344ae7edbfeb7c9466c096dc499a7348276cff5d30aa07464f7e2ea391ca9cedac0e21ba6f563169a8b38f2df729a230a0acfb1125ea1b66'
'734d64131c2e65e78477da569ffcc3a85a5adad437df2d4071d875f9795e97c9b334d51b6528fecf4adbd18f51f2e2d3d3b3ac7fe7e22024fdcc674268c3f2dc'
'ce00d4eb2746f65582ebdf942c449343f5ac2cd28bf063e0de0c29762c7251db2e569841d02e71cbb0cc016bc383fc4e18762c4a9c7168baa357210600dc01de'
'da6e2a0e03f94e83e2143be2d19a3a2842e02a3294d8ad1004810ca2e9b538d909c03aa34f965b0c51140b96b1c05c3264288cfb448e8ca14efffb0be3d93512'
'19bf117b20387be3a92f90dec03979aa38315f9bd04ea6df4726b19c541c8d9d48e9edf22e27c449d66884e6f54eedfe9aabe4ff842bc18a91841e7abc6a3854')
pkgver() {
cd "$srcdir/$_pkgname"
git describe --long --abbrev=7 --tags | sed 's/\([^-]*\)-g.*/r\1/;s/-/./g;s/^v//g'
}

_apply_patch() {
cd $srcdir/$_pkgname
for p in $srcdir/*.patch; do
patch -Np1 <${p}
done
# download tzdata from our zip file
sed -i externals/nx_tzdb/CMakeLists.txt \
-e "s|https://github.com/lat9nq/tzdb_to_nx/releases/download/\${NX_TZDB_VERSION}|file://${srcdir}|g"

}
prepare() {
local submods=(
sirit
simpleini
)

for pro in ${submods[@]}; do
cp -rf ${srcdir}/${pro}/* $srcdir/$_pkgname/externals/${pro}
done

(
_apply_patch
)

}

build() {
export CC=clang
export CXX=clang++
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/lib/mbedtls2/pkgconfig

local cmake_args=(
-GNinja
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
-DTITLE_BAR_FORMAT_IDLE="$_pkgname $pkgver"
-DTITLE_BAR_FORMAT_RUNNING="$_pkgname $pkgver | {3}"
-DCMAKE_INSTALL_PREFIX=/usr
-DCMAKE_BUILD_TYPE=Release
-DYUZU_ENABLE_COMPATIBILITY_REPORTING=OFF
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF
-DYUZU_USE_QT_WEB_ENGINE=ON
-DUSE_DISCORD_PRESENCE=ON
-DENABLE_QT_TRANSLATION=ON
-DYUZU_USE_BUNDLED_FFMPEG=OFF
-DYUZU_USE_BUNDLED_QT=OFF
-DYUZU_USE_EXTERNAL_SDL2=OFF
-DYUZU_CHECK_SUBMODULES=OFF
-DYUZU_USE_EXTERNAL_VULKAN_HEADERS=OFF
-DYUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES=OFF
-DYUZU_USE_FASTER_LD=OFF
-DYUZU_USE_PRECOMPILED_HEADERS=OFF
-DYUZU_USE_QT_MULTIMEDIA=ON
# download timezone data from our zip file.
-DYUZU_DOWNLOAD_TIME_ZONE_DATA=ON
-DYUZU_TESTS=OFF
-DSIRIT_USE_SYSTEM_SPIRV_HEADERS=ON
-DUSE_SYSTEM_QT=ON
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
)
install -d build
cmake -S ${_pkgname} -B build "${cmake_args[@]}"
ninja -C build

}

package() {
install -Dm644 $srcdir/${_pkgname}/dist/72-${_cmd}-input.rules -t ${pkgdir}/usr/lib/udev/rules.d/
DESTDIR="$pkgdir/" ninja -C $srcdir/build install
}
26 changes: 26 additions & 0 deletions archlinuxcn/eden-git/lilac.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
maintainers:
- github: sukanka
email: [email protected]

build_prefix: extra-x86_64

pre_build: vcs_update
post_build: git_pkgbuild_commit

repo_depends:
- discord-rpc-git
- cubeb-git
- cpp-httplib
- cpp-jwt
- vulkan-memory-allocator-git
- xbyak
- dynarmic

update_on:
- source: alpm
alpm: fmt
repo: extra
- source: alpm
alpm: openssl
- alias: boost
- source: vcs