All checks were successful
eden-license / license-header (pull_request) Successful in 39s
* need further investigation to try to make consistent build options since we are building for Release, we shouldn't have to set so many options Signed-off-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
100 lines
3 KiB
Bash
Executable file
100 lines
3 KiB
Bash
Executable file
#!/bin/bash -e
|
|
|
|
# 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"
|
|
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
|
|
|
|
if [ -z "$NPROC" ]; then
|
|
NPROC="$(nproc)"
|
|
fi
|
|
|
|
if [ "$1" != "" ]; then shift; fi
|
|
|
|
if [ "$TARGET" = "appimage" ]; then
|
|
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DCMAKE_INSTALL_PREFIX=/usr -DYUZU_ROOM=ON)
|
|
else
|
|
# For the linux-fresh verification target, verify compilation without PCH as well.
|
|
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DYUZU_USE_PRECOMPILED_HEADERS=OFF)
|
|
fi
|
|
|
|
echo "${EXTRA_CMAKE_FLAGS[@]}"
|
|
|
|
mkdir -p build && cd build
|
|
cmake .. -G Ninja \
|
|
-DCMAKE_BUILD_TYPE="${BUILD_TYPE:-Release}" \
|
|
-DENABLE_QT_TRANSLATION=ON \
|
|
-DUSE_DISCORD_PRESENCE=ON \
|
|
-DYUZU_USE_BUNDLED_SDL2=OFF \
|
|
-DYUZU_USE_EXTERNAL_SDL2=ON \
|
|
-DBUILD_TESTING=OFF \
|
|
-DYUZU_TESTS=OFF \
|
|
-DDYNARMIC_TESTS=OFF \
|
|
-DYUZU_CMD=OFF \
|
|
-DYUZU_ROOM_STANDALONE=OFF \
|
|
-DYUZU_USE_QT_MULTIMEDIA="${USE_MULTIMEDIA:-false}" \
|
|
-DYUZU_USE_QT_WEB_ENGINE="${USE_WEBENGINE:-false}" \
|
|
-DYUZU_ENABLE_LTO=ON \
|
|
-DDYNARMIC_ENABLE_LTO=ON \
|
|
-DYUZU_USE_BUNDLED_QT="${BUNDLE_QT:-false}" \
|
|
-DUSE_CCACHE="${CCACHE:-false}" \
|
|
-DENABLE_QT_UPDATE_CHECKER="${DEVEL:-true}" \
|
|
-DYUZU_USE_FASTER_LD=ON \
|
|
-DCMAKE_CXX_FLAGS="$ARCH_FLAGS" \
|
|
-DCMAKE_C_FLAGS="$ARCH_FLAGS" \
|
|
"${EXTRA_CMAKE_FLAGS[@]}"
|
|
|
|
ninja -j"${NPROC}"
|
|
|
|
if [ -d "bin/Release" ]; then
|
|
strip -s bin/Release/*
|
|
else
|
|
strip -s bin/*
|
|
fi
|