From 756225c8fff782f8e72cbd0e43224a8415ad59fe Mon Sep 17 00:00:00 2001 From: lat9nq Date: Mon, 30 Nov 2020 12:03:42 -0500 Subject: Disable web applet and warning when compiling for Linux on CI yuzu's web applet does not or barely reacts to user input while open in Linux. It can be closed via 'Exit Web Applet' on the menubar, however if yuzu is in fullscreen, this is effectively a softlock as the menubar cannot be accessed. This disables building yuzu with the web applet on the Linux CI target. In addition, this disables the QMessageBox warning about not having compiled yuzu with the web applet. --- .ci/scripts/linux/docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.ci/scripts/linux') diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh index 277775ef6..05f6ffe7d 100755 --- a/.ci/scripts/linux/docker.sh +++ b/.ci/scripts/linux/docker.sh @@ -5,7 +5,7 @@ cd /yuzu ccache -s mkdir build || true && cd build -cmake .. -G Ninja -DDISPLAY_VERSION=$1 -DYUZU_USE_BUNDLED_UNICORN=ON -DYUZU_USE_QT_WEB_ENGINE=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON +cmake .. -G Ninja -DDISPLAY_VERSION=$1 -DYUZU_USE_BUNDLED_UNICORN=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON ninja -- cgit v1.2.3 From f1d633cca7f8352d7dbc4b9db6a58559e0bbd5f6 Mon Sep 17 00:00:00 2001 From: lat9nq Date: Tue, 8 Dec 2020 15:06:02 -0500 Subject: ci: Remove `-DYUZU_USE_BUNDLED_UNICORN=ON` Unicorn has been removed, yet CI still enables building with Unicorn. This just cleans up a few leftovers by removing the variable from the CMake parameters in CI. --- .ci/scripts/linux/docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.ci/scripts/linux') diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh index 05f6ffe7d..e0c018cfd 100755 --- a/.ci/scripts/linux/docker.sh +++ b/.ci/scripts/linux/docker.sh @@ -5,7 +5,7 @@ cd /yuzu ccache -s mkdir build || true && cd build -cmake .. -G Ninja -DDISPLAY_VERSION=$1 -DYUZU_USE_BUNDLED_UNICORN=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON +cmake .. -G Ninja -DDISPLAY_VERSION=$1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON ninja -- cgit v1.2.3 From 43cad754d5ffeec16f5f833efe9900fd49209a34 Mon Sep 17 00:00:00 2001 From: lat9nq Date: Tue, 29 Dec 2020 22:09:06 -0500 Subject: ci: Build an AppImage This builds yuzu in an AppImage alongside the other archives during release. Required to allow distributing yuzu in the future with upgraded dependencies, such as Qt. --- .ci/scripts/linux/docker.sh | 44 ++++++++++++++++++++++++++++++++++++++++++-- .ci/scripts/linux/upload.sh | 5 +++++ 2 files changed, 47 insertions(+), 2 deletions(-) (limited to '.ci/scripts/linux') diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh index e0c018cfd..30391f6ad 100755 --- a/.ci/scripts/linux/docker.sh +++ b/.ci/scripts/linux/docker.sh @@ -1,14 +1,54 @@ #!/bin/bash -ex +# Exit on error, rather than continuing with the rest of the script. +set -e + cd /yuzu ccache -s mkdir build || true && cd build -cmake .. -G Ninja -DDISPLAY_VERSION=$1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON +cmake .. -DDISPLAY_VERSION=$1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DCMAKE_INSTALL_PREFIX="/usr" -ninja +make -j$(nproc) ccache -s ctest -VV -C Release + +make install DESTDIR=AppDir +rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester + +# Download tools needed to build an AppImage +wget -nc https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage +wget -nc https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage +wget -nc https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage +wget -nc https://github.com/darealshinji/AppImageKit-checkrt/releases/download/continuous/AppRun-patched-x86_64 +wget -nc https://github.com/darealshinji/AppImageKit-checkrt/releases/download/continuous/exec-x86_64.so +# Set executable bit +chmod 755 \ + appimagetool-x86_64.AppImage \ + AppRun-patched-x86_64 \ + exec-x86_64.so \ + linuxdeploy-x86_64.AppImage \ + linuxdeploy-plugin-qt-x86_64.AppImage + +# 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 +./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt + +# 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-patched-x86_64 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 + +# Build the AppImage +./appimagetool-x86_64.AppImage AppDir diff --git a/.ci/scripts/linux/upload.sh b/.ci/scripts/linux/upload.sh index fe4e6b2ac..7175e4cb5 100644 --- a/.ci/scripts/linux/upload.sh +++ b/.ci/scripts/linux/upload.sh @@ -2,6 +2,8 @@ . .ci/scripts/common/pre-upload.sh +APPIMAGE_NAME="yuzu-x86_64.AppImage" +NEW_APPIMAGE_NAME="yuzu-${GITDATE}-${GITREV}-x86_64.AppImage" REV_NAME="yuzu-linux-${GITDATE}-${GITREV}" ARCHIVE_NAME="${REV_NAME}.tar.xz" COMPRESSION_FLAGS="-cJvf" @@ -17,4 +19,7 @@ mkdir "$DIR_NAME" cp build/bin/yuzu-cmd "$DIR_NAME" cp build/bin/yuzu "$DIR_NAME" +# Copy the AppImage to the artifacts directory and avoid compressing it +cp "build/${APPIMAGE_NAME}" "${ARTIFACTS_DIR}/${NEW_APPIMAGE_NAME}" + . .ci/scripts/common/post-upload.sh -- cgit v1.2.3