blob: 61a6841a0846a9cfc87105fc90fdcd984fecd7a1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
# Maintainer: Sébastien TERRIER <ouinouin at ouinouin dot eu>
pkgname=sudachi
pkgver=1.0.15
pkgrel=2
pkgdesc="Nintendo Switch emulator forked from yuzu."
arch=(x86_64)
url=https://sudachi.emuplace.app
license=(GPL-3.0-or-later)
provides=('sudachi')
depends=('qt6-base' 'qt6-wayland' 'qt6-tools' 'sdl3' 'ffmpeg' 'gamemode' 'hicolor-icon-theme' 'brotli')
makedepends=('git' 'cmake' 'nasm' 'doxygen' 'ninja' 'zip' 'unzip' 'rapidjson')
conflicts=('sudachi')
options=(!debug)
source=(sudachi::https://github.com/emuplace/sudachi.emuplace.app/releases/download/v${pkgver}/latest.zip
enet::git+https://github.com/lsalzman/enet#tag=v1.3.18
dynarmic::git+https://github.com/sudachi-emu/dynarmic#commit=efa2ebefe1f502fc886cbbcebabed2506121eb24
libusb::git+https://github.com/libusb/libusb#tag=v1.0.24
discord-rpc::git+https://github.com/sudachi-emu/discord-rpc
vulkan-headers::git+https://github.com/KhronosGroup/Vulkan-Headers#tag=v1.4.310
sirit::git+https://github.com/sudachi-emu/sirit#commit=795ef4d8318c7d344da99c076dd60e5580d3d5ac
mbedtls::git+https://github.com/sudachi-emu/mbedtls#commit=86ed7bfaa80079a97c763a651d0b2cd8d9d59100
xbyak::git+https://github.com/herumi/xbyak#tag=v6.73
opus::git+https://github.com/xiph/opus#tag=v1.3.1
cpp-httplib::git+https://github.com/yhirose/cpp-httplib#commit=65ce51aed7f15e40e8fb6d2c0a8efb10bcb40126
ffmpeg::git+https://github.com/FFmpeg/FFmpeg#tag=n7.1
cpp-jwt::git+https://github.com/arun11299/cpp-jwt
libadrenotools::git+https://github.com/bylaws/libadrenotools
VulkanMemoryAllocator::git+https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator#tag=v3.2.1
breakpad::git+https://github.com/sudachi-emu/breakpad#commit=bf1260ddb8d405e95cd5c4507ddaca45d10dd842
simpleini::git+https://github.com/brofield/simpleini
oaknut::git+https://github.com/sudachi-emu/oaknut#commit=a3135650b39a9595d3852c4784d432c95a3b1af2
Vulkan-Utility-Libraries::git+https://github.com/KhronosGroup/Vulkan-Utility-Libraries#tag=v1.4.310
vcpkg::git+https://github.com/microsoft/vcpkg#tag=2025.02.14
tzdb_to_nx::git+https://github.com/lat9nq/tzdb_to_nx
cubeb::git+https://github.com/mozilla/cubeb
SDL3::git+https://github.com/libsdl-org/sdl#tag=release-3.2.8
googletest::git+https://github.com/google/googletest
sanitizers-cmake::git+https://github.com/arsenm/sanitizers-cmake
cubeb-coreaudio-rs::git+https://github.com/mozilla/cubeb-coreaudio-rs#branch=trailblazer
cubeb-pulse-rs::git+https://github.com/mozilla/cubeb-pulse-rs#branch=dev
linkernsbypass::git+https://github.com/bylaws/liblinkernsbypass#branch=master
SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers#commit=c214f6f2d1a7253bb0e9f195c2dc5b0659dc99ef
tz::git+https://github.com/eggert/tz
zycore::git+https://github.com/zyantific/zycore-c)
b2sums=('deacfbf286580efea76745c973b497eaa83a27b8157cb3af978e8911ad94f2d428c98c1160fd56d99762670a6fd8a618f562c49c6b69661c6ff7cce5a912feda'
'2a447d114b091b51a2bb1d20ab885a8ea02c19c2b4f24ae9e8af60275aedce9e652b05401a54002c7c5fc8790012fc7cd6c55006656fff21af558d3e79ccd877'
'93a2d62c7c1371c48725ccd03f1c2b4b0d491bb58081238d73fe2d8592c4362a21560fa03f2507c0ef340fc61a06562e2789782a7694a506f62aaa792c987b73'
'4274bb7227e90f3652bd7a5048ac0ff5b24d0c6a86cbaed1b02c18a84ee6ae5ade6a861bb9f4833166197d939f3745994cce15baed815098254e4ab2d3ea76af'
'SKIP'
'1c5899b459bf936250eed654e61bc108b3853e1847764a5a74176444ccebbb6e7a383ddac42ee3b2dc27f74e3a375f7c0360ab70585d3a2bf0602fee324b8db7'
'4592c7d25bb118ffbe50307cfdea37c310a21da326fcf6132b563d892ea3cc4abef9a41c2e63dc015904c000829f4af6d1dfc475e97620f67a1fcb876d80c59e'
'2dfddbebb1ae11e8e1a435f1e17721143e411f57af147667139983d5be5fdf5d633ebcfb70c94868b1cdd3c417b915020b2cd0c1398efcdfdb2ff19bf1ede37c'
'0d89124eec3ac2acadfd91f8d34eebc75619b805eb9dbec52d99068e0ed4e57fa3b681e1ce9aaa11c3dcef18677d5ff56fae230f2af42ec1e4cb1118412c1483'
'f262820a87d3840f9560430b05e70c9621580301b3f156fd187d82b567e95a9476c75cf5fbe888271097f95f428f45a11cd84e1ec00dd4dd8c2744d1f324b922'
'8b19e4063fdfb623aa83c715ce499da17bea6159287eb60e8e11faa2e574b90eb1c6bc9ab3331231e15c03bc503bde542701494802dc7d9c5afa34d98ec2f086'
'c7ec6b1db61608195117b79f3f0c8f6323c3abeb39721359da0f10e7d739da8301e04ff5fa83c022f86fc760f66e00066f9a50d97b771f797ccc679f9d912c40'
'SKIP'
'SKIP'
'aca4f69aed630852f3aec4bdd4b6fd35935cc896c682e1b1d660bce0da54b40617889fa4a9ae788d49472be5bd12f9bf609f7a7a74ce5139ce904b8c8bd39976'
'8938523994f0fd698c95fc196ae85114b3e5d38c76f33bc593e76e433a45a3350c0d8cf7f1c95fe3d0d59c43d69017bdcbe7f668ca563b6155ee8cce87fbf0c9'
'SKIP'
'f44c8b6d5b929999ddaeec5ea99fc02787056a0b0e7b68653b9b620dd714e0fe6334deb47ffc3774f03787cd1a147bc1b8c63dfb248c20de26247cd2e6b0a590'
'a608b1aecd793e3c9d21badb9dc0e44067aab5084723698b880f946e0af61843bf808f45dcb017f5206e53f3cc2be57816fdf59950750a15865e20b7cc5fe54e'
'53a96ba10063d90b6750896374847e5e5cafd47b9fc65bb71a6e0597362aa28806b834252d934d92da645a839b17234339b1b53f7d99eb3630bac75ff9a9d30a'
'SKIP'
'SKIP'
'690393dc7f099d9f45a9727a41ed072c90c514853fdb401519886c034ca8ed7280a1e32c1dffd6971472638565f5f72eb2ffcde828ddd072a34eea790273df46'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'686239a1a777acde8e9ac22bf338dec5d553e6846919cfd8f907693774f335a44632c13dbbb5d1cdaba968c67edd88f20ec6dc4ee2d289a5f5149bf04bf4dad6'
'SKIP'
'SKIP')
prepare() {
git init
for _submodule in enet dynarmic discord-rpc vulkan-headers sirit mbedtls xbyak opus cpp-httplib cpp-jwt libadrenotools VulkanMemoryAllocator breakpad simpleini oaknut Vulkan-Utility-Libraries vcpkg cubeb SDL3;
do
rm -rf externals/$_submodule
git -c protocol.file.allow=always submodule add "${srcdir}/$_submodule" externals/$_submodule
done
rm -rf externals/libusb/libusb
git -c protocol.file.allow=always submodule add ${srcdir}/libusb externals/libusb/libusb
rm -rf externals/ffmpeg/ffmpeg
git -c protocol.file.allow=always submodule add ${srcdir}/ffmpeg externals/ffmpeg/ffmpeg
rm -rf externals/nx_tzdb/tzdb_to_nx
git -c protocol.file.allow=always submodule add ${srcdir}/tzdb_to_nx externals/nx_tzdb/tzdb_to_nx
pushd externals/cubeb
git config submodule.googletest.url ${srcdir}/googletest
git config submodule.cmake/sanitizers-cmake.url ${srcdir}/sanitizers-cmake
git config submodule.src/cubeb-coreaudio-rs.url ${srcdir}/cubeb-coreaudio-rs
git config submodule.src/cubeb-pulse-rs.url ${srcdir}/cubeb-pulse-rs
git -c protocol.file.allow=always submodule update
popd
pushd externals/libadrenotools
git config submodule.lib/linkernsbypass.url ${srcdir}/linkernsbypass
git -c protocol.file.allow=always submodule update
popd
pushd externals/sirit
git config submodule.externals/SPIRV-Headers.url ${srcdir}/SPIRV-Headers
git -c protocol.file.allow=always submodule update
popd
pushd externals/nx_tzdb/tzdb_to_nx
git config submodule.externals/tz/tz.url ${srcdir}/tz
git -c protocol.file.allow=always submodule update
popd
pushd externals/dynarmic/externals/zydis
git config submodule.dependencies/zycore.url ${srcdir}/zycore
git -c protocol.file.allow=always submodule update
popd
sed -i 's/\bwindow\b/render_window/g' "${srcdir}/src/sudachi_cmd/emu_window/emu_window_sdl3_vk.cpp"
sed -i '/namespace {/d' src/core/guest_memory.h
sed -i '/} \/\/ namespace Core::Memory/d' src/core/guest_memory.h
# make some corrections for cmake 4.0
sed -i '/"overrides": \[/a \ {\n "name": "lz4",\n "version": "1.10.0"\n },' vcpkg.json
sed -i 's/cmake_minimum_required(VERSION 2.6...3.0.2)/cmake_minimum_required(VERSION 3.5)/' externals/xbyak/CMakeLists.txt
sed -i 's/cmake_minimum_required(VERSION 3.1)/cmake_minimum_required(VERSION 3.5)/' externals/dynarmic/externals/robin-map/CMakeLists.txt
sed -i 's/cmake_minimum_required(VERSION 2.6)/cmake_minimum_required(VERSION 3.5)/' externals/mbedtls/CMakeLists.txt
sed -i 's/cmake_minimum_required(VERSION 3.0)/cmake_minimum_required(VERSION 3.5)/' externals/sirit/externals/SPIRV-Headers/CMakeLists.txt
sed -i 's/cmake_minimum_required(VERSION 3.1)/cmake_minimum_required(VERSION 3.5)/' externals/opus/CMakeLists.txt
sed -i 's/cmake_minimum_required(VERSION 3.1)/cmake_minimum_required(VERSION 3.5)/' externals/opus/opus_functions.cmake
}
build() {
export VCPKG_DISABLE_METRICS=1
cd "$srcdir"
cmake -B build -GNinja \
-DSUDACHI_TESTS=OFF \
-DENABLE_QT6=ON \
-DENABLE_QT_TRANSLATION=ON \
-DSUDACHI_USE_BUNDLED_VCPKG=ON \
-DSUDACHI_USE_BUNDLED_FFMPEG=ON \
-DSUDACHI_USE_BUNDLED_QT=OFF \
-DSUDACHI_USE_BUNDLED_SDL3=ON \
-DSUDACHI_ENABLE_LTO=ON \
-DSUDACHI_USE_FASTER_LD=OFF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_CXX_FLAGS="-march=native -mtune=native -Wno-unused-variable" \
-DCMAKE_C_FLAGS="-march=native -mtune=native"
ninja -C build
}
package() {
DESTDIR="$pkgdir/" ninja -C build install
}
|