blob: 4f16a261f28377ba11902a3410d0875555e881ea (
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
|
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Bart Ribbers <bribbers@disroot.org>
pkgname=dolphin-emu
pkgver=5.0_git20231117
pkgrel=0
_commit="dc0814ae4622313d513468bdc377ee9c031de199"
_commit_cubeb="27d2a102b0b75d9e49d43bc1ea516233fb87d778"
_commit_gtest="58d77fa8070e8cec2dc1ed015d66b454c8d78850"
_commit_implot="cc5e1daa5c7f2335a9460ae79c829011dc5cef2d"
_commit_mgba="8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51"
_commit_rcheevos="d9e990e6d13527532b7e2bb23164a1f3b7f33bb5"
_commit_spirv="50b4d5389b6a06f86fb63a2848e1a7da6d9755ca"
_commit_vulkan_memory="498e20dfd1343d99b9115201034bb0219801cdec"
_commit_zlib="ce01b1e41da298334f8214389cc9369540a7560f"
# Upstream doesn't actively support non 64-bit platforms and they're too slow
# to emulate any games anyway
arch="x86_64 aarch64 riscv64"
url="https://dolphin-emu.org"
pkgdesc="Gamecube / Wii emulator"
license="GPL-2.0-or-later"
makedepends="
bluez-dev
cmake
curl-dev
enet-dev
eudev-dev
ffmpeg-dev
fmt-dev
gtest-dev
hidapi-dev
libevdev-dev
libpng-dev
libspng-dev
libusb-dev
libx11-dev
libxi-dev
libxrandr-dev
lz4-dev
lzo-dev
mesa-dev
mbedtls-dev
miniupnpc-dev
ninja
pugixml-dev
pulseaudio-dev
qt6-qtbase-dev
qt6-qtsvg-dev
sfml-dev
vulkan-headers
vulkan-loader-dev
xz-dev
zlib-dev
zstd-dev
"
# The following dependencies are required, but atm not supported for using system wide libraries
# minizip-dev xxhash-dev soundtouch-dev gtest-dev
source="https://github.com/dolphin-emu/dolphin/archive/$_commit/dolphin-emu-$_commit.tar.gz
https://github.com/mozilla/cubeb/archive/$_commit_cubeb/cubeb-$_commit_cubeb.tar.gz
https://github.com/google/googletest/archive/$_commit_gtest/googletest-$_commit_gtest.tar.gz
https://github.com/epezent/implot/archive/$_commit_implot/implot-$_commit_implot.tar.gz
https://github.com/mgba-emu/mgba/archive/$_commit_mgba/mgba-$_commit_mgba.tar.gz
https://github.com/RetroAchievements/rcheevos/archive/$_commit_rcheevos/rcheevos-$_commit_rcheevos.tar.gz
https://github.com/KhronosGroup/SPIRV-Cross/archive/$_commit_spirv/spirv-cross-$_commit_spirv.tar.gz
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/archive/$_commit_vulkan_memory/VulkanMemoryAllocator-$_commit_vulkan_memory.tar.gz
https://github.com/zlib-ng/zlib-ng/archive/$_commit_zlib/zlib-ng-$_commit_zlib.tar.gz
gcc13.patch
"
subpackages="$pkgname-doc $pkgname-lang"
builddir="$srcdir/dolphin-$_commit"
prepare() {
default_prepare
git init -q
rmdir Externals/mGBA/mgba
mv "$srcdir"/mgba-$_commit_mgba Externals/mGBA/mgba
rmdir Externals/spirv_cross/SPIRV-Cross
mv "$srcdir"/SPIRV-Cross-$_commit_spirv Externals/spirv_cross/SPIRV-Cross
rmdir Externals/zlib-ng/zlib-ng
mv "$srcdir"/zlib-ng-$_commit_zlib Externals/zlib-ng/zlib-ng
rmdir Externals/cubeb/cubeb
mv "$srcdir"/cubeb-$_commit_cubeb Externals/cubeb/cubeb
rmdir Externals/gtest
mv "$srcdir"/googletest-$_commit_gtest Externals/gtest
rmdir Externals/rcheevos/rcheevos
mv "$srcdir"/rcheevos-$_commit_rcheevos Externals/rcheevos/rcheevos
rmdir Externals/implot/implot
mv "$srcdir"/implot-$_commit_implot Externals/implot/implot
rmdir Externals/VulkanMemoryAllocator
mv "$srcdir"/VulkanMemoryAllocator-$_commit_vulkan_memory Externals/VulkanMemoryAllocator
# Make sure we never use non-system libraries except the ones that are not
# supported being used system-wide by removing them from the Externals
# folder
KEEP_SOURCES="
Bochs_disasm
FatFs
FreeSurround
Vulkan
VulkanMemoryAllocator
cpp-optparse
cubeb
expr
glslang
gtest
imgui
implot
mGBA
minizip
picojson
rangeset
rcheevos
soundtouch
spirv_cross
xxhash
zlib-ng
"
# Move the libraries we want to keep out of the externals folder
for s in $KEEP_SOURCES; do
mv -v "Externals/$s" .
done
# Remove the rest
rm -r Externals/*
# Move them back
for s in $KEEP_SOURCES; do
mv -v "$s" "Externals/"
done
}
build() {
# Enable a generic build for riscv64
# This enables building for the architecture but disables JIT and is thus slow
# TODO: see if support for riscv64 has been enabled upstream and disable the generic build
case "$CARCH" in
riscv64) _generic=ON ;;
*) _generic=OFF ;;
esac
# analytics is opt-in, a pop up box at first launch, thus fine
CFLAGS="$CFLAGS -O2" \
CXXFLAGS="$CXXFLAGS -O2" \
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_LLVM=OFF \
-DENABLE_GENERIC=$_generic \
-DDISTRIBUTOR="alpinelinux.org" \
-DUSE_DISCORD_PRESENCE=OFF \
-DENABLE_AUTOUPDATE=OFF \
-DENABLE_ANALYTICS=ON \
-DUSE_SANITIZERS=OFF \
-DWITH_SANITIZER=OFF \
-DUSE_SYSTEM_FMT=ON
cmake --build build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
DESTDIR="$pkgdir" cmake --install build
install -Dm 644 Data/51-usb-device.rules -t "$pkgdir"/usr/lib/udev/rules.d/
}
sha512sums="
f494110493840bf339863e8550be331f129b4bdbc63ea22c791da8169af515f3eaaa460be412ce1a372b22164c2df6a7ea41b0f793cf69f4dc963edfe0b052e2 dolphin-emu-dc0814ae4622313d513468bdc377ee9c031de199.tar.gz
0844b56a949a23474b4f8b736bfc61bfe713f2ededd7148644a65883d963606dbde9bed6fc07f1b9181af4e4f8c411e0147352a8556e660907f74b0e617a25d0 cubeb-27d2a102b0b75d9e49d43bc1ea516233fb87d778.tar.gz
d8153c426e4f9c89a74721cc4a24dfcaf319810f4f10aa25fc972f99da2d96d66bc840cf2f51b756fef6b1ca47e8d2c8633f5862cc24e34d57309ad48802124a googletest-58d77fa8070e8cec2dc1ed015d66b454c8d78850.tar.gz
ab9935e759f38d19e6f60ed195c22018929ba46fccf783f4486346d7ffb7040b6097bc4c3d3b3577cc91f0c413684e07449a24bebf3db9c937638092c181de92 implot-cc5e1daa5c7f2335a9460ae79c829011dc5cef2d.tar.gz
782d456b7bf827591c774f146a88821b41b3b936faefddb5aee82bb0dd16ca7ad7228a1c331e1e517eac40a71cc4c94cc44bee12560946328c8433e1c6327225 mgba-8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51.tar.gz
2959002fc41225d7aedd0d69a5ca54b84a4e727814d5dca5b953a0075dd84fd2a2a3751e1840232ec6996868aa41874a00fdffabdf0d141ca53872849c5a8b40 rcheevos-d9e990e6d13527532b7e2bb23164a1f3b7f33bb5.tar.gz
237bf9c902c23721592bff44b493198bc6b732cbaf4712b1bf56bfe1df76e7290fadec7cccd1694fccd808a1f57b681f696c323ef616f547bb54ddc97c604cea spirv-cross-50b4d5389b6a06f86fb63a2848e1a7da6d9755ca.tar.gz
1a58832ba11b953f097e321e335e5884e7f08e08ef7e7dff43c6faf7a0b7ffaf268b4c50f29fdc5eb08b03d4957f4194b72c4f4c87ae8f060bedf6f965063272 VulkanMemoryAllocator-498e20dfd1343d99b9115201034bb0219801cdec.tar.gz
73f4e56410ae298ef211ebab52b1a0d3d5bfae91c2de3cd294b56cd0a78ab50e1203b396c7df462f360c1aaaa9392ec5625473d1e9eb084cc64bc813e28d12a1 zlib-ng-ce01b1e41da298334f8214389cc9369540a7560f.tar.gz
8cdd88c93c49325de4cae62af14a14576f679c5b4c1350fb835e7007916d228811ecf5ba9e526760bd2388c69c46990fa33d2dd8bbb1b673dc7e6896ea958b44 gcc13.patch
"
|