suyu/.ci/scripts/linux/docker.sh

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

80 lines
2.7 KiB
Bash
Raw Normal View History

try three of importing hidden files from legacy On branch master Your branch is up to date with 'origin/master'. Changes to be committed: new file: .ci/.DS_Store new file: .ci/scripts/android/build.sh new file: .ci/scripts/android/eabuild.sh new file: .ci/scripts/android/mainlinebuild.sh new file: .ci/scripts/android/upload.sh new file: .ci/scripts/clang/docker.sh new file: .ci/scripts/clang/exec.sh new file: .ci/scripts/clang/upload.sh new file: .ci/scripts/common/post-upload.sh new file: .ci/scripts/common/pre-upload.sh new file: .ci/scripts/format/docker.sh new file: .ci/scripts/format/exec.sh new file: .ci/scripts/format/script.sh new file: .ci/scripts/linux/docker.sh new file: .ci/scripts/linux/exec.sh new file: .ci/scripts/linux/upload.sh new file: .ci/scripts/merge/apply-patches-by-label-private.py new file: .ci/scripts/merge/apply-patches-by-label.py new file: .ci/scripts/merge/check-label-presence.py new file: .ci/scripts/merge/yuzubot-git-config.sh new file: .ci/scripts/transifex/docker.sh new file: .ci/scripts/windows/docker.sh new file: .ci/scripts/windows/exec.sh new file: .ci/scripts/windows/install-vulkan-sdk.ps1 new file: .ci/scripts/windows/scan_dll.py new file: .ci/scripts/windows/upload.ps1 new file: .ci/scripts/windows/upload.sh new file: .ci/templates/build-mock.yml new file: .ci/templates/build-msvc.yml new file: .ci/templates/build-single.yml new file: .ci/templates/build-standard.yml new file: .ci/templates/build-testing.yml new file: .ci/templates/format-check.yml new file: .ci/templates/merge-private.yml new file: .ci/templates/merge.yml new file: .ci/templates/mergebot-private.yml new file: .ci/templates/mergebot.yml new file: .ci/templates/release-download.yml new file: .ci/templates/release-github.yml new file: .ci/templates/release-private-tag.yml new file: .ci/templates/release-universal.yml new file: .ci/templates/retrieve-artifact-source.yml new file: .ci/templates/retrieve-master-source.yml new file: .ci/templates/sync-source.yml new file: .ci/yuzu-mainline-step1.yml new file: .ci/yuzu-mainline-step2.yml new file: .ci/yuzu-patreon-step1.yml new file: .ci/yuzu-patreon-step2.yml new file: .ci/yuzu-repo-sync.yml new file: .ci/yuzu-verify.yml new file: .codespellrc new file: .git-blame-ignore-revs new file: .gitattributes new file: .gitignore new file: .gitmodules new file: .reuse/dep5
2024-03-05 06:20:29 -06:00
#!/bin/bash -ex
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
# Exit on error, rather than continuing with the rest of the script.
set -e
ccache -s
mkdir build || true && cd build
cmake .. \
-DBoost_USE_STATIC_LIBS=ON \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_CXX_FLAGS="-march=x86-64-v2" \
-DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \
-DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \
-DCMAKE_INSTALL_PREFIX="/usr" \
-DDISPLAY_VERSION=$1 \
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
-DENABLE_QT_TRANSLATION=ON \
-DUSE_DISCORD_PRESENCE=ON \
-DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
-DYUZU_USE_BUNDLED_FFMPEG=ON \
-DYUZU_ENABLE_LTO=ON \
-DYUZU_CRASH_DUMPS=ON \
-GNinja
ninja
ccache -s
ctest -VV -C Release
# Separate debug symbols from specified executables
for EXE in yuzu; do
EXE_PATH="bin/$EXE"
# Copy debug symbols out
objcopy --only-keep-debug $EXE_PATH $EXE_PATH.debug
# Add debug link and strip debug symbols
objcopy -g --add-gnu-debuglink=$EXE_PATH.debug $EXE_PATH $EXE_PATH.out
# Overwrite original with stripped copy
mv $EXE_PATH.out $EXE_PATH
done
# Strip debug symbols from all executables
find bin/ -type f -not -regex '.*.debug' -exec strip -g {} ';'
DESTDIR="$PWD/AppDir" ninja install
rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester
# Download tools needed to build an AppImage
wget -nc https://raw.githubusercontent.com/yuzu-emu/ext-linux-bin/main/appimage/deploy-linux.sh
wget -nc https://raw.githubusercontent.com/yuzu-emu/AppImageKit-checkrt/old/AppRun.sh
wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/exec-x86_64.so
# Set executable bit
chmod 755 \
deploy-linux.sh \
AppRun.sh \
exec-x86_64.so \
# Workaround for https://github.com/AppImage/AppImageKit/issues/828
export APPIMAGE_EXTRACT_AND_RUN=1
mkdir -p AppDir/usr/optional
mkdir -p AppDir/usr/optional/libstdc++
mkdir -p AppDir/usr/optional/libgcc_s
# Deploy yuzu's needed dependencies
DEPLOY_QT=1 ./deploy-linux.sh AppDir/usr/bin/yuzu AppDir
# Workaround for libQt5MultimediaGstTools indirectly requiring libwayland-client and breaking Vulkan usage on end-user systems
find AppDir -type f -regex '.*libwayland-client\.so.*' -delete -print
# Workaround for building yuzu with GCC 10 but also trying to distribute it to Ubuntu 18.04 et al.
# See https://github.com/darealshinji/AppImageKit-checkrt
cp exec-x86_64.so AppDir/usr/optional/exec.so
cp AppRun.sh AppDir/AppRun
cp --dereference /usr/lib/x86_64-linux-gnu/libstdc++.so.6 AppDir/usr/optional/libstdc++/libstdc++.so.6
cp --dereference /lib/x86_64-linux-gnu/libgcc_s.so.1 AppDir/usr/optional/libgcc_s/libgcc_s.so.1