Files
eden/.ci/linux/build.sh
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

66 lines
1.8 KiB
Bash
Raw Normal View History

2025-04-01 18:49:53 +02:00
#!/bin/bash -ex
# SPDX-FileCopyrightText: 2025 eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later
2025-04-13 19:35:59 -04:00
export ARCH="$(uname -m)"
if [ "$ARCH" = 'x86_64' ]; then
if [ "$1" = 'v3' ]; then
echo "Making x86-64-v3 optimized build of eden"
ARCH="${ARCH}_v3"
ARCH_FLAGS="-march=x86-64-v3 -O3"
else
echo "Making x86-64 generic build of eden"
ARCH_FLAGS="-march=x86-64 -mtune=generic -O3"
fi
else
echo "Making aarch64 build of eden"
ARCH_FLAGS="-march=armv8-a -mtune=generic -O3"
fi
NPROC="$2"
if [ -z "$NPROC" ]; then
NPROC="$(nproc)"
fi
2025-04-01 18:49:53 +02:00
if [ "$TARGET" = "appimage" ]; then
2025-05-31 02:33:02 -04:00
export EXTRA_CMAKE_FLAGS=(-DCMAKE_INSTALL_PREFIX=/usr -DYUZU_ROOM=ON -DYUZU_ROOM_STANDALONE=OFF -DYUZU_CMD=OFF)
2025-04-01 18:49:53 +02:00
# Bundle required QT wayland libraries
export EXTRA_QT_PLUGINS="waylandcompositor"
export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so"
else
# For the linux-fresh verification target, verify compilation without PCH as well.
2025-05-19 21:30:10 +00:00
export EXTRA_CMAKE_FLAGS=(-DYUZU_USE_PRECOMPILED_HEADERS=OFF)
2025-04-01 18:49:53 +02:00
fi
2025-05-28 02:23:51 +00:00
if [ "$RELEASE" == "1" ]; then
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DENABLE_QT_UPDATE_CHECKER=ON)
fi
2025-04-01 18:49:53 +02:00
mkdir -p build && cd build
cmake .. -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DENABLE_QT_TRANSLATION=ON \
2025-04-01 18:49:53 +02:00
-DUSE_DISCORD_PRESENCE=ON \
2025-04-13 19:35:59 -04:00
-DCMAKE_CXX_FLAGS="$ARCH_FLAGS" \
-DCMAKE_C_FLAGS="$ARCH_FLAGS" \
-DYUZU_USE_BUNDLED_VCPKG=OFF \
-DYUZU_USE_BUNDLED_QT=OFF \
2025-04-20 22:09:44 +00:00
-DYUZU_USE_BUNDLED_SDL2=OFF \
-DYUZU_USE_EXTERNAL_SDL2=ON \
2025-04-13 19:35:59 -04:00
-DYUZU_TESTS=OFF \
-DYUZU_USE_QT_MULTIMEDIA=ON \
-DYUZU_USE_QT_WEB_ENGINE=ON \
-DYUZU_USE_FASTER_LD=ON \
2025-04-13 19:35:59 -04:00
-DYUZU_ENABLE_LTO=ON \
2025-04-01 18:49:53 +02:00
"${EXTRA_CMAKE_FLAGS[@]}"
2025-04-12 23:33:35 -04:00
2025-04-13 19:35:59 -04:00
ninja -j${NPROC}
2025-04-01 18:49:53 +02:00
if [ -d "bin/Release" ]; then
strip -s bin/Release/*
else
strip -s bin/*
fi