diff options
Diffstat (limited to '.ci/scripts/linux')
-rwxr-xr-x | .ci/scripts/linux/docker.sh | 15 | ||||
-rw-r--r-- | .ci/scripts/linux/exec.sh | 10 | ||||
-rwxr-xr-x[-rw-r--r--] | .ci/scripts/linux/upload.sh | 8 |
3 files changed, 27 insertions, 6 deletions
diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh index 5070b92d1..b9862d1c2 100755 --- a/.ci/scripts/linux/docker.sh +++ b/.ci/scripts/linux/docker.sh @@ -1,10 +1,11 @@ #!/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 -cd /yuzu - ccache -s mkdir build || true && cd build @@ -19,15 +20,16 @@ cmake .. \ -DENABLE_QT_TRANSLATION=ON \ -DUSE_DISCORD_PRESENCE=ON \ -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \ - -DYUZU_USE_BUNDLED_FFMPEG=ON + -DYUZU_USE_BUNDLED_FFMPEG=ON \ + -GNinja -make -j$(nproc) +ninja ccache -s ctest -VV -C Release -make install DESTDIR=AppDir +DESTDIR="$PWD/AppDir" ninja install rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester # Download tools needed to build an AppImage @@ -52,6 +54,9 @@ mkdir -p AppDir/usr/optional/libgcc_s # Deploy yuzu's needed dependencies ./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt +# 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 diff --git a/.ci/scripts/linux/exec.sh b/.ci/scripts/linux/exec.sh index a7deddeb3..fa3d78cc2 100644 --- a/.ci/scripts/linux/exec.sh +++ b/.ci/scripts/linux/exec.sh @@ -1,8 +1,16 @@ #!/bin/bash -ex +# SPDX-FileCopyrightText: 2019 yuzu Emulator Project +# SPDX-License-Identifier: GPL-2.0-or-later + mkdir -p "ccache" || true chmod a+x ./.ci/scripts/linux/docker.sh # the UID for the container yuzu user is 1027 sudo chown -R 1027 ./ -docker run -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/yuzu/ccache -v $(pwd):/yuzu yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/linux/docker.sh $1 + +# The environment variables listed below: +# AZURECIREPO TITLEBARFORMATIDLE TITLEBARFORMATRUNNING DISPLAYVERSION +# are requested in src/common/CMakeLists.txt and appear to be provided somewhere in Azure DevOps + +docker run -e AZURECIREPO -e TITLEBARFORMATIDLE -e TITLEBARFORMATRUNNING -e DISPLAYVERSION -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/yuzu/ccache -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/linux/docker.sh "$1" sudo chown -R $UID ./ diff --git a/.ci/scripts/linux/upload.sh b/.ci/scripts/linux/upload.sh index 208cd0d04..8173c5728 100644..100755 --- a/.ci/scripts/linux/upload.sh +++ b/.ci/scripts/linux/upload.sh @@ -1,5 +1,8 @@ #!/bin/bash -ex +# SPDX-FileCopyrightText: 2019 yuzu Emulator Project +# SPDX-License-Identifier: GPL-2.0-or-later + . .ci/scripts/common/pre-upload.sh APPIMAGE_NAME="yuzu-${GITDATE}-${GITREV}.AppImage" @@ -24,6 +27,11 @@ cd build wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/appimagetool-x86_64.AppImage chmod 755 appimagetool-x86_64.AppImage +# if FUSE is not available, then fallback to extract and run +if ! ./appimagetool-x86_64.AppImage --version; then + export APPIMAGE_EXTRACT_AND_RUN=1 +fi + if [ "${RELEASE_NAME}" = "mainline" ]; then # Generate update information if releasing to mainline ./appimagetool-x86_64.AppImage -u "gh-releases-zsync|yuzu-emu|yuzu-${RELEASE_NAME}|latest|yuzu-*.AppImage.zsync" AppDir "${APPIMAGE_NAME}" |