Between packages breaking, Conan always being a moving target for minimum required CMake support, and now their moves to Conan 2.0 causing existing packages to break, I suppose this was a long time coming. vcpkg isn't without its drawbacks, but at the moment it seems easier on the project to use for external packages. Mostly removes the logic for Conan from the root CMakeLists file, leaving basic find_package()'s in its place. Sets only the find_package()'s that require CONFIG mode as necessary. clang and linux CI now use the vcpkg toolchain file configured in the Docker container when possible. mingw CI turns off YUZU_TESTS because there's no way on the container to run Windows executables on a Linux host anyway, and it's not easy to get Catch2 there.
61 lines
2.1 KiB
Bash
Executable file
61 lines
2.1 KiB
Bash
Executable file
#!/bin/bash -ex
|
|
|
|
# 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=Release \
|
|
-DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \
|
|
-DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \
|
|
-DCMAKE_INSTALL_PREFIX="/usr" \
|
|
-DCMAKE_TOOLCHAIN_FILE=${VCPKG_TOOLCHAIN_FILE} \
|
|
-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 \
|
|
-GNinja
|
|
|
|
ninja
|
|
|
|
ccache -s
|
|
|
|
ctest -VV -C Release
|
|
|
|
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://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/linuxdeploy-x86_64.AppImage
|
|
wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/linuxdeploy-plugin-qt-x86_64.AppImage
|
|
wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/AppRun-patched-x86_64
|
|
wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/exec-x86_64.so
|
|
# Set executable bit
|
|
chmod 755 \
|
|
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
|