aboutsummaryrefslogtreecommitdiff
path: root/.ci
diff options
context:
space:
mode:
authorcrueter <crueter@eden-emu.dev>2025-07-27 06:36:33 +0200
committercrueter <crueter@eden-emu.dev>2025-07-27 06:36:33 +0200
commitb2914247c3f6bff2b2aa0f17d46f7b197ab1821d (patch)
treeac1eaae03f7d123f1c7b7155ea800c77435412ab /.ci
parentb5bbe6d865232c841454513c461391c7cd46e156 (diff)
[cmake] Build presets and System profiles (#135)
- Build Preset (Linux only): enables arch optimizations, e.g. generic, v3, zen2/4, armv8, armv9 - System Profiles: currently only steamdeck, uses an older sdl commit to fix virtual gamepad bug Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/135
Diffstat (limited to '.ci')
-rwxr-xr-x.ci/linux/build.sh98
-rwxr-xr-x.ci/linux/package.sh1
2 files changed, 52 insertions, 47 deletions
diff --git a/.ci/linux/build.sh b/.ci/linux/build.sh
index a92cb3fd91..114df7051b 100755
--- a/.ci/linux/build.sh
+++ b/.ci/linux/build.sh
@@ -3,47 +3,53 @@
# SPDX-FileCopyrightText: 2025 eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later
-
case "$1" in
- amd64|"")
- echo "Making amd64-v3 optimized build of Eden"
- ARCH="amd64_v3"
- ARCH_FLAGS="-march=x86-64-v3"
- ;;
- steamdeck|zen2)
- echo "Making Steam Deck (Zen 2) optimized build of Eden"
- ARCH="steamdeck"
- ARCH_FLAGS="-march=znver2 -mtune=znver2"
- ;;
- rog-ally|allyx|zen4)
- echo "Making ROG Ally X (Zen 4) optimized build of Eden"
- ARCH="rog-ally-x"
- ARCH_FLAGS="-march=znver4 -mtune=znver4"
- ;;
- legacy)
- echo "Making amd64 generic build of Eden"
- ARCH=amd64
- ARCH_FLAGS="-march=x86-64 -mtune=generic"
- ;;
- aarch64)
- echo "Making armv8-a build of Eden"
- ARCH=aarch64
- ARCH_FLAGS="-march=armv8-a -mtune=generic -w"
- ;;
- armv9)
- echo "Making armv9-a build of Eden"
- ARCH=armv9
- ARCH_FLAGS="-march=armv9-a -mtune=generic -w"
- ;;
- native)
- echo "Making native build of Eden"
- ARCH="$(uname -m)"
- ARCH_FLAGS="-march=native -mtune=native"
- ;;
- *)
- echo "Invalid target $1 specified, must be one of native, amd64, steamdeck, zen2, allyx, rog-ally, zen4, legacy, aarch64, armv9"
- exit 1
- ;;
+amd64 | "")
+ echo "Making amd64-v3 optimized build of Eden"
+ ARCH="amd64_v3"
+ ARCH_FLAGS="-march=x86-64-v3"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=v3)
+ ;;
+steamdeck | zen2)
+ echo "Making Steam Deck (Zen 2) optimized build of Eden"
+ ARCH="steamdeck"
+ ARCH_FLAGS="-march=znver2 -mtune=znver2"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=zen2 -DYUZU_SYSTEM_PROFILE=steamdeck)
+ ;;
+rog-ally | allyx | zen4)
+ echo "Making ROG Ally X (Zen 4) optimized build of Eden"
+ ARCH="rog-ally-x"
+ ARCH_FLAGS="-march=znver4 -mtune=znver4"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=zen2 -DYUZU_SYSTEM_PROFILE=steamdeck)
+ ;;
+legacy)
+ echo "Making amd64 generic build of Eden"
+ ARCH=amd64
+ ARCH_FLAGS="-march=x86-64 -mtune=generic"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=generic)
+ ;;
+aarch64)
+ echo "Making armv8-a build of Eden"
+ ARCH=aarch64
+ ARCH_FLAGS="-march=armv8-a -mtune=generic -w"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=generic)
+ ;;
+armv9)
+ echo "Making armv9-a build of Eden"
+ ARCH=armv9
+ ARCH_FLAGS="-march=armv9-a -mtune=generic -w"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=armv9)
+ ;;
+native)
+ echo "Making native build of Eden"
+ ARCH="$(uname -m)"
+ ARCH_FLAGS="-march=native -mtune=native"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=native)
+ ;;
+*)
+ echo "Invalid target $1 specified, must be one of native, amd64, steamdeck, zen2, allyx, rog-ally, zen4, legacy, aarch64, armv9"
+ exit 1
+ ;;
esac
export ARCH_FLAGS="$ARCH_FLAGS -O3"
@@ -55,10 +61,10 @@ fi
if [ "$1" != "" ]; then shift; fi
if [ "$TARGET" = "appimage" ]; then
- export EXTRA_CMAKE_FLAGS=(-DCMAKE_INSTALL_PREFIX=/usr -DYUZU_ROOM=ON -DYUZU_ROOM_STANDALONE=OFF -DYUZU_CMD=OFF)
+ export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DCMAKE_INSTALL_PREFIX=/usr -DYUZU_ROOM=ON -DYUZU_ROOM_STANDALONE=OFF -DYUZU_CMD=OFF)
else
# For the linux-fresh verification target, verify compilation without PCH as well.
- export EXTRA_CMAKE_FLAGS=(-DYUZU_USE_PRECOMPILED_HEADERS=OFF)
+ export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DYUZU_USE_PRECOMPILED_HEADERS=OFF)
fi
if [ "$DEVEL" != "true" ]; then
@@ -86,7 +92,7 @@ export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" $@)
mkdir -p build && cd build
cmake .. -G Ninja \
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
- -DENABLE_QT_TRANSLATION=ON \
+ -DENABLE_QT_TRANSLATION=ON \
-DUSE_DISCORD_PRESENCE=ON \
-DCMAKE_CXX_FLAGS="$ARCH_FLAGS" \
-DCMAKE_C_FLAGS="$ARCH_FLAGS" \
@@ -99,12 +105,12 @@ cmake .. -G Ninja \
-DYUZU_USE_QT_WEB_ENGINE=$WEBENGINE \
-DYUZU_USE_FASTER_LD=ON \
-DYUZU_ENABLE_LTO=ON \
- "${EXTRA_CMAKE_FLAGS[@]}"
+ "${EXTRA_CMAKE_FLAGS[@]}"
ninja -j${NPROC}
if [ -d "bin/Release" ]; then
- strip -s bin/Release/*
+ strip -s bin/Release/*
else
- strip -s bin/*
+ strip -s bin/*
fi
diff --git a/.ci/linux/package.sh b/.ci/linux/package.sh
index 41e07ea207..911fea2f7b 100755
--- a/.ci/linux/package.sh
+++ b/.ci/linux/package.sh
@@ -92,7 +92,6 @@ chmod +x ./sharun-aio
xvfb-run -a ./sharun-aio l -p -v -e -s -k \
../$BUILDDIR/bin/eden* \
$LIBDIR/lib*GL*.so* \
- $LIBDIR/libSDL2*.so* \
$LIBDIR/dri/* \
$LIBDIR/vdpau/* \
$LIBDIR/libvulkan* \