79 lines
2.2 KiB
Bash
Executable file
79 lines
2.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
JOBS="${JOBS:-$(nproc)}"
|
|
SKIP_BUILD=0
|
|
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
--skip-build)
|
|
SKIP_BUILD=1
|
|
;;
|
|
--jobs=*)
|
|
JOBS="${arg#*=}"
|
|
;;
|
|
*)
|
|
echo "Unknown argument: $arg"
|
|
echo "Usage: $0 [--skip-build] [--jobs=N]"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ ! -f /run/.containerenv ]]; then
|
|
echo "Run this script inside your toolbox container."
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v dnf >/dev/null 2>&1; then
|
|
echo "This script expects a Fedora/RHEL-like toolbox with dnf."
|
|
exit 1
|
|
fi
|
|
|
|
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "$REPO_ROOT"
|
|
|
|
FEDORA_VER="$(rpm -E %fedora)"
|
|
|
|
if ! rpm -q rpmfusion-free-release >/dev/null 2>&1; then
|
|
sudo dnf -y install "https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-${FEDORA_VER}.noarch.rpm"
|
|
fi
|
|
|
|
if ! rpm -q rpmfusion-nonfree-release >/dev/null 2>&1; then
|
|
sudo dnf -y install "https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-${FEDORA_VER}.noarch.rpm"
|
|
fi
|
|
|
|
sudo dnf -y install \
|
|
ffmpeg ffmpeg-devel \
|
|
git make gcc gcc-c++ pkgconf-pkg-config \
|
|
qt6-qtbase-devel qt6-qtdeclarative-devel qt6-qtquickcontrols2-devel qt6-qtsvg-devel qt6-qtwayland-devel \
|
|
SDL2-devel SDL2_ttf-devel \
|
|
opus-devel openssl-devel \
|
|
libva-utils libva-devel libdrm-devel mesa-libEGL-devel mesa-libGL-devel \
|
|
libX11-devel libXext-devel libXrandr-devel libXfixes-devel libXi-devel libXcursor-devel
|
|
|
|
if rpm -q libva-intel-media-driver >/dev/null 2>&1; then
|
|
sudo dnf -y swap libva-intel-media-driver intel-media-driver --allowerasing
|
|
elif ! rpm -q intel-media-driver >/dev/null 2>&1; then
|
|
sudo dnf -y install intel-media-driver
|
|
fi
|
|
|
|
git submodule update --init --recursive
|
|
|
|
if command -v vainfo >/dev/null 2>&1; then
|
|
if ! vainfo 2>/dev/null | grep -q 'VAProfileHEVCMain'; then
|
|
echo "Warning: HEVC decode profile not detected in VAAPI."
|
|
fi
|
|
if ! vainfo 2>/dev/null | grep -q 'VAProfileH264High'; then
|
|
echo "Warning: H264 decode profile not detected in VAAPI."
|
|
fi
|
|
fi
|
|
|
|
rm -rf Makefile */Makefile */Makefile.* app/release app/debug
|
|
qmake6 moonlight-qt.pro
|
|
|
|
if [[ "$SKIP_BUILD" -eq 0 ]]; then
|
|
make release -j"$JOBS"
|
|
fi
|
|
|
|
echo "Done."
|