diff options
| author | crueter <crueter@eden-emu.dev> | 2025-07-27 06:36:33 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-07-27 06:36:33 +0200 |
| commit | b2914247c3f6bff2b2aa0f17d46f7b197ab1821d (patch) | |
| tree | ac1eaae03f7d123f1c7b7155ea800c77435412ab /.ci | |
| parent | b5bbe6d865232c841454513c461391c7cd46e156 (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.sh | 98 | ||||
| -rwxr-xr-x | .ci/linux/package.sh | 1 |
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* \ |
