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
|
# Maintainer: username227 <gfrank227 [at] gmail [dot] com>
_pkgname=torzu
_branch=main
pkgname=torzu-git
pkgver=r27184.5de1cb53b
pkgrel=2
pkgdesc="Torzu is a fork of yuzu, the world's most popular, open-source, Nintendo Switch emulator. It is written in C++ with portability in mind."
arch=(x86_64)
url=https://notabug.org/litucks/torzu
license=(GPL-3.0-or-later)
provides=('torzu')
depends=('alsa-lib' 'brotli' 'catch2' 'enet' 'llvm-libs' 'freetype2' 'gcc-libs' 'glibc' 'glu' 'hicolor-icon-theme' 'gamemode' 'libass' 'libpulse' 'libtool' 'libvdpau' 'lz4' 'sdl2' 'zlib')
makedepends=('curl' 'autoconf' 'cmake' 'gcc' 'git' 'glslang' 'alsa-lib' 'glu' 'hidapi' 'libpulse' 'systemd-libs' 'xcb-util-wm' 'xcb-util-image' 'xcb-util-keysyms' 'xcb-util-renderutil' 'libxcb' 'libxext' 'libxkbcommon-x11' 'nasm' 'qt5-base' 'qt5-webengine' 'qt5-multimedia' 'mbedtls2' 'fmt' 'nlohmann-json' 'zstd' 'openssl' 'libunistring' 'aom' 'automake' 'base-devel' 'libass' 'freetype2' 'haskell-gnutls' 'lame' 'sdl2' 'libva' 'libvorbis' 'libxcb' 'meson' 'ninja' 'pkgconf' 'texinfo' 'wget' 'vasm' 'x264' 'x265' 'numactl' 'libvpx' 'libfdk-aac' 'libopusenc' 'ffmpeg' 'svt-av1' 'dav1d' 'boost' 'clang' 'vulkan-headers' 'ffmpeg4.4' 'zip' 'unzip' 'tar' 'boost-libs')
conflicts=('torzu')
options=(!debug lto strip)
source=(
git+https://notabug.org/litucks/torzu
git+https://github.com/lsalzman/enet.git
cubeb::git+http://github.com/mozilla/cubeb.git
git+https://github.com/libusb/libusb.git
git+https://github.com/herumi/xbyak.git
git+https://github.com/xiph/opus.git
git+https://github.com/libsdl-org/SDL.git
git+https://github.com/yhirose/cpp-httplib.git
ffmpeg::git+https://github.com/FFmpeg/FFmpeg.git
git+https://github.com/microsoft/vcpkg.git
git+https://github.com/bylaws/libadrenotools.git
git+https://github.com/lat9nq/tzdb_to_nx.git
git+https://github.com/brofield/simpleini.git
git+https://github.com/merryhime/oaknut.git
git+https://github.com/KhronosGroup/SPIRV-Headers.git
git+https://github.com/KhronosGroup/SPIRV-Tools.git
git+https://github.com/fmtlib/fmt.git
git+https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git
git+https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
git+https://github.com/KhronosGroup/Vulkan-Headers.git
git+https://github.com/arun11299/cpp-jwt.git
# Submodule Submodules
git+https://github.com/eggert/tz.git #submodule_of_tzdb_to_nx
git+https://github.com/bylaws/liblinkernsbypass.git #submodule_of_libadrenogtools
git+https://github.com/google/googletest.git #submodule_of_cubeb
git+https://github.com/arsenm/sanitizers-cmake.git #submodule_of_cubeb
)
b2sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP')
pkgver() {
cd "$srcdir/$_pkgname"
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
prepare() {
cd "$srcdir/$_pkgname"
for submodule in {enet,cubeb,libusb,xbyak,opus,SDL,cpp-httplib,ffmpeg,vcpkg,libadrenotools,tzdb_to_nx,simpleini,cpp-jwt,oaknut,SPIRV-Headers,SPIRV-Tools,fmt,Vulkan-Utility-Libraries,VulkanMemoryAllocator,Vulkan-Headers};
do
git config --file=.gitmodules submodule.$submodule.url "${srcdir}"/$submodule
done
git -c protocol.file.allow=always submodule update --init
pushd externals/cubeb
for submodule in {sanitiers-cmake,googletest};
do
git config --file=.gitmodules submodule.$submodule.url "${srcdir}"/$submodule
done
git -c protocol.file.allow=always submodule update --init
popd
pushd externals/libadrenotools
git config submodule.lib/linkersbypass.url "${srcdir}"/linkernsbypass
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
}
build() {
cd "$srcdir/torzu"
# Fix to help cmake find libusb
CXXFLAGS+=" -I/usr/include/libusb-1.0"
cmake -B build -G Ninja \
-DYUZU_USE_BUNDLED_VCPKG=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="-march=x86-64-v2" \
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
-DENABLE_QT_TRANSLATION=OFF \
-DENABLE_QT6=ON \
-DYUZU_USE_FASTER_LD=OFF \
-DYUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS=OFF \
-DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
-DYUZU_USE_BUNDLED_FFMPEG=OFF \
-DYUZU_ENABLE_LTO=ON \
-DYUZU_CRASH_DUMPS=OFF \
-DCMAKE_INSTALL_PREFIX="/usr" \
-DYUZU_ROOM=OFF \
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
-DFFmpeg_COMPONENTS="swscale;avutil;avfilter;avcodec" \
-DFFmpeg_PREFIX=$srcdir/externals/ffmpeg/ffmpeg \
-GNinja \
-Wno-dev
ninja -C build
}
package() {
DESTDIR="$pkgdir/" ninja -C $srcdir/torzu/build install
}
|