blob: 6a3ab8fd86e4ef9f78c19fb3b857829a1a40cd35 (
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
|
# Maintainer: Zion Nimchuk <zionnimchuk@gmail.com>
# Submitter: Maxime Gauduin <alucryd@archlinux.org>
pkgname=rpcs3-git
pkgver=0.0.33.r16916.53c84577c0
pkgrel=1
pkgdesc='A Sony PlayStation 3 emulator'
arch=(x86_64 aarch64)
url=https://github.com/RPCS3/rpcs3
license=(GPL-2.0-only)
depends=(
alsa-lib
glew
glu
# Use bundled FFMPEG for now since we use FFMPEG 5.1.2
#libavcodec.so
#libavutil.so
#libswscale.so
libevdev
libgl
libice
libncursesw.so
libpng
libpulse
libsm
libx11
libxext
openal
qt6-base
qt6-declarative
qt6-multimedia
qt6-svg
sdl2
vulkan-icd-loader
zlib
curl
pugixml
flatbuffers
llvm
)
optdepends=(
vulkan-validation-layers
rpcs3-udev
)
makedepends=(
cmake
git
libglvnd
python
# clang is required because audio is broken with latest gcc
clang
)
provides=(rpcs3)
conflicts=(rpcs3)
options=(!emptydirs !lto !strip)
source=(
git+https://github.com/RPCS3/rpcs3.git
git+https://github.com/KhronosGroup/glslang.git
)
sha256sums=(
SKIP
SKIP
)
pkgver() {
cd rpcs3
COMM_TAG="$(grep 'version{.*}' rpcs3/rpcs3_version.cpp | awk -F[{,] '{printf "%d.%d.%d", $2, $3, $4}')"
COMM_COUNT="$(git rev-list --count HEAD)"
COMM_HASH="$(git rev-parse --short HEAD)"
echo "${COMM_TAG}.r${COMM_COUNT}.${COMM_HASH}"
}
prepare() {
cd rpcs3
git submodule init 3rdparty/glslang/glslang
git config submodule.3rdparty/glslang.url ../glslang
SUBMODULES=($(git config --file .gitmodules --get-regexp path | \
awk '!/libpng/ && !/zlib/ && !/curl/ && !/llvm/ && !/glslang/ && !/pugixml/ && !/SDL/ && !/flatbuffers/ '))
# We need to convert from a relative folder path to a https://github.com path
for ((i=0;i<${#SUBMODULES[@]};i+=2))
do
pathid=${SUBMODULES[$i]}
path=${SUBMODULES[$i+1]}
git submodule init $path
urlid=${pathid/%.path/.url}
# This gets the last two paths in the url, ie RPCS3/rpcs3.git
url=$(git config $urlid | awk -F/ '{print $(NF-1)"/"$(NF-0)}')
git config $urlid https://github.com/$url
git -c protocol.file.allow=always submodule update --init --filter=tree:0 $path
done
git -c protocol.file.allow=always submodule update 3rdparty/glslang/glslang
}
build() {
# GLIBCXX_ASSERTIONS is know to cause unwanted assertions and crash rpcs3
BAD_FLAG="-Wp,-D_GLIBCXX_ASSERTIONS"
CXXFLAGS="${CXXFLAGS//$BAD_FLAG/}"
CC=clang CXX=clang++ cmake -S rpcs3 -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_SKIP_RPATH=ON \
-DUSE_NATIVE_INSTRUCTIONS=OFF \
-DUSE_SYSTEM_FFMPEG=OFF \
-DUSE_SYSTEM_LIBPNG=ON \
-DUSE_SYSTEM_ZLIB=ON \
-DUSE_SYSTEM_CURL=ON \
-DUSE_SYSTEM_FLATBUFFERS=ON \
-DUSE_SYSTEM_PUGIXML=ON \
-DUSE_SDL=ON \
-DUSE_SYSTEM_SDL=ON \
-DBUILD_LLVM=OFF \
-DUSE_SYSTEM_WOLFSSL=OFF
cmake --build build
}
package() {
DESTDIR="${pkgdir}" cmake --install build
}
# vim: ts=2 sw=2 et:
|