-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathget-dependencies.sh
More file actions
116 lines (103 loc) · 3.17 KB
/
Copy pathget-dependencies.sh
File metadata and controls
116 lines (103 loc) · 3.17 KB
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
#!/bin/sh
set -eu
ARCH=$(uname -m)
echo "Installing package dependencies..."
echo "---------------------------------------------------------------"
pacman -Syu --noconfirm \
boost \
boost-libs \
catch2 \
ccache \
clang \
cmake \
crypto++ \
doxygen \
fmt \
gamemode \
glslang \
glu \
graphviz \
hidapi \
kvantum \
libinih \
libvpx \
libxi \
libxss \
libzip \
lld \
llvm \
meson \
ninja \
nlohmann-json \
lxqt-qtplugin \
pipewire-audio \
pipewire-jack \
pulseaudio \
pulseaudio-alsa \
qt6ct \
qt6-multimedia \
qt6-tools \
rapidjson \
sdl2 \
spirv-headers \
unzip \
vulkan-headers \
vulkan-mesa-layers \
wget \
xcb-util-cursor \
xcb-util-image \
xcb-util-renderutil \
xcb-util-wm \
zip
echo "Installing debloated packages..."
echo "---------------------------------------------------------------"
get-debloated-pkgs --add-common ffmpeg-mini
echo "Building Azahar..."
echo "---------------------------------------------------------------"
REPO="https://github.com/azahar-emu/azahar.git"
case "$ARCH" in
x86_64) set -- -march=x86-64-v3 -O3 -flto=thin -fuse-ld=lld -DNDEBUG;;
aarch64) set -- -march=armv8-a -mtune=generic -O3 -flto=thin -fuse-ld=lld -DNDEBUG;;
*) >&2 echo "ERROR: Unknown arch: $ARCH"; exit 1;;
esac
git clone --recursive "$REPO" ./azahar
cd ./azahar
if [ "${DEVEL_RELEASE-}" = 1 ]; then
git rev-parse --short HEAD > ~/version
else
git fetch --tags origin
TAG=$(git tag --sort=-v:refname | grep -vi 'rc\|alpha' | head -1)
git checkout "$TAG"
echo "$TAG" > ~/version
fi
git submodule update --init --recursive -j$(nproc)
# HACK
sed -i '10a #include <memory>' ./src/video_core/shader/shader_jit_a64_compiler.*
# HACK2
sed -i '1i find_package(SPIRV-Headers)' ./externals/sirit/sirit/src/CMakeLists.txt
# HACK3
qpaheader=$(find /usr/include -type f -name 'qplatformnativeinterface.h' -print -quit)
sed -i "s|#include <qpa/qplatformnativeinterface.h>|#include <$qpaheader>|" ./src/citra_qt/bootmanager.cpp
mkdir -p ./build
cd ./build
cmake ../ \
-G Ninja \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_QT_TRANSLATION=ON \
-DUSE_SYSTEM_BOOST=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DUSE_SYSTEM_VULKAN_HEADERS=ON \
-DENABLE_LTO=OFF \
-DENABLE_TESTS=OFF \
-DENABLE_ROOM_STANDALONE=OFF \
-DUSE_SYSTEM_GLSLANG=ON \
-DCITRA_USE_PRECOMPILED_HEADERS=OFF \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_C_FLAGS="$*" \
-DCMAKE_CXX_FLAGS="$*" \
-Wno-dev
ninja
sudo ninja install