mirror of
https://github.com/thejerf/baijiSteamVR.git
synced 2026-10-17 22:01:47 +02:00
61 lines
1.6 KiB
Bash
Executable File
61 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Usage: compile.sh [native|aarch64] [target...]
|
|
set -euo pipefail
|
|
|
|
cd "$(dirname "$0")/.."
|
|
ENGINE="${ENGINE:-podman}"
|
|
ARCH="${1:-native}"
|
|
shift || true
|
|
|
|
if [[ "$ARCH" == "native" ]]; then
|
|
PLATFORM="linux/amd64"
|
|
BUILD_DIR="state/build-x86_64"
|
|
IMAGE="baijisteamvr-build:amd64"
|
|
ARCH_FLAGS="-O3 -march=x86-64-v3"
|
|
elif [[ "$ARCH" == "aarch64" ]]; then
|
|
PLATFORM="linux/arm64"
|
|
BUILD_DIR="state/build-aarch64"
|
|
IMAGE="baijisteamvr-build:arm64"
|
|
ARCH_FLAGS="-O3 -mcpu=cortex-x4"
|
|
else
|
|
echo "usage: $0 [native|aarch64] [cmake targets...]" >&2
|
|
exit 1
|
|
fi
|
|
|
|
TARGETS=("$@")
|
|
if [[ ${#TARGETS[@]} -eq 0 ]]; then
|
|
TARGETS=(dolphin-emu)
|
|
fi
|
|
|
|
mkdir -p "$BUILD_DIR" state/ccache
|
|
|
|
$ENGINE run --rm --platform="$PLATFORM" \
|
|
-v "$PWD:/src:Z" \
|
|
-v "$PWD/$BUILD_DIR:/build:Z" \
|
|
-v "$PWD/state/ccache:/ccache:Z" \
|
|
-e CCACHE_DIR=/ccache \
|
|
"$IMAGE" \
|
|
bash -c "
|
|
export PATH=\"/usr/lib/ccache:\$PATH\"
|
|
cmake -S /src -B /build -G Ninja \
|
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
-DCMAKE_C_FLAGS='$ARCH_FLAGS' \
|
|
-DCMAKE_CXX_FLAGS='$ARCH_FLAGS' \
|
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
|
-DENABLE_VR=ON \
|
|
-DENABLE_VULKAN=ON \
|
|
-DENABLE_LTO=OFF \
|
|
-DUSE_SYSTEM_MBEDTLS=OFF \
|
|
-DUSE_SYSTEM_LIBMGBA=OFF \
|
|
-DENABLE_ALSA=OFF \
|
|
-DENABLE_SDL=ON \
|
|
-DENABLE_EVDEV=ON \
|
|
-DDISTRIBUTOR=BaijiSteamVR \
|
|
-DDOLPHIN_DEFAULT_UPDATE_TRACK= \
|
|
-DENABLE_ANALYTICS=OFF \
|
|
-DUSE_DISCORD_PRESENCE=OFF \
|
|
-DENABLE_AUTOUPDATE=OFF &&
|
|
cmake --build /build --target ${TARGETS[*]} -j\$(nproc)
|
|
"
|