Use MPN mac builder instead to maybe avoid CMake issues #160
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Project+ Dolphin Builder | ||
| on: [push, pull_request] | ||
| jobs: | ||
| build_macos: | ||
| name: macOS Build x86_64 | ||
| runs-on: macos-14 | ||
| steps: | ||
| - name: Checkout Repository | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| submodules: recursive | ||
| - name: Install Packages | ||
| run: | | ||
| brew install gnu-sed | ||
| if ! brew install ccache ninja; then | ||
| brew update | ||
| brew install ccache ninja | ||
| fi | ||
| - name: Cache Dependencies | ||
| id: cache-deps | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: ~/deps | ||
| key: macOS deps ${{ hashFiles('.github/workflows/ci.yml') }} | ||
| restore-keys: | | ||
| macOS deps | ||
| - name: Cache Homebrew | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: | | ||
| /opt/homebrew/Cellar | ||
| /usr/local/Cellar | ||
| /opt/homebrew/Caskroom | ||
| /usr/local/Caskroom | ||
| ~/.cache/Homebrew | ||
| key: ${{ runner.os }}-homebrew-${{ hashFiles('**/CMakeLists.txt', '**/cmake/**') }} | ||
| restore-keys: | | ||
| ${{ runner.os }}-homebrew- | ||
| - name: Cache ccache | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: | | ||
| ~/.ccache | ||
| ~/.cache/ccache | ||
| key: ${{ runner.os }}-ccache-${{ hashFiles('**/CMakeLists.txt', '**/cmake/**', '**/*.cpp', '**/*.h', '**/*.hpp') }}-${{ github.sha }} | ||
| restore-keys: | | ||
| ${{ runner.os }}-ccache-${{ hashFiles('**/CMakeLists.txt', '**/cmake/**', '**/*.cpp', '**/*.h', '**/*.hpp') }}- | ||
| ${{ runner.os }}-ccache- | ||
| - name: Build Dependencies | ||
| if: steps.cache-deps.outputs.cache-hit != 'true' | ||
| run: | | ||
| #!/bin/bash | ||
| set -e | ||
| export MACOSX_DEPLOYMENT_TARGET=11.00 | ||
| INSTALLDIR="$HOME/deps" | ||
| NPROCS="$(getconf _NPROCESSORS_ONLN)" | ||
| SDL=SDL2-2.30.9 | ||
| QT=6.2.10 | ||
| QT_SUFFIX=-opensource | ||
| mkdir deps-build | ||
| cd deps-build | ||
| export PKG_CONFIG_PATH="$INSTALLDIR/lib/pkgconfig:$PKG_CONFIG_PATH" | ||
| export LDFLAGS="-L$INSTALLDIR/lib -dead_strip $LDFLAGS" | ||
| export CFLAGS="-I$INSTALLDIR/include -Os $CFLAGS" | ||
| export CXXFLAGS="-I$INSTALLDIR/include -Os $CXXFLAGS" | ||
| echo "Downloading dependencies..." | ||
| curl -L \ | ||
| -O "https://libsdl.org/release/$SDL.tar.gz" \ | ||
| -O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qtbase-everywhere$QT_SUFFIX-src-$QT.tar.xz" \ | ||
| -O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere$QT_SUFFIX-src-$QT.tar.xz" \ | ||
| -O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qttools-everywhere$QT_SUFFIX-src-$QT.tar.xz" \ | ||
| -O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere$QT_SUFFIX-src-$QT.tar.xz" | ||
| echo "Installing SDL..." | ||
| tar xf "$SDL.tar.gz" | ||
| cd "$SDL" | ||
| CC="clang -arch x86_64" ./configure --prefix "$INSTALLDIR" --without-x | ||
| make "-j$NPROCS" | ||
| make install | ||
| cd .. | ||
| echo "Installing Qt Base..." | ||
| tar xf "qtbase-everywhere$QT_SUFFIX-src-$QT.tar.xz" | ||
| cd "qtbase-everywhere-src-$QT" | ||
| cmake -B build -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_BUILD_TYPE=Release -DFEATURE_optimize_size=ON -DFEATURE_dbus=OFF -DFEATURE_framework=OFF -DFEATURE_icu=OFF -DFEATURE_opengl=OFF -DFEATURE_printsupport=OFF -DFEATURE_sql=OFF -DFEATURE_gssapi=OFF -DFEATURE_system_png=OFF -DFEATURE_system_jpeg=OFF -DCMAKE_MESSAGE_LOG_LEVEL=STATUS | ||
| make -C build "-j$NPROCS" | ||
| make -C build install | ||
| cd .. | ||
| echo "Installing Qt SVG..." | ||
| tar xf "qtsvg-everywhere$QT_SUFFIX-src-$QT.tar.xz" | ||
| cd "qtsvg-everywhere-src-$QT" | ||
| cmake -B build -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_BUILD_TYPE=Release | ||
| make -C build "-j$NPROCS" | ||
| make -C build install | ||
| cd .. | ||
| echo "Installing Qt Tools..." | ||
| tar xf "qttools-everywhere$QT_SUFFIX-src-$QT.tar.xz" | ||
| cd "qttools-everywhere-src-$QT" | ||
| patch -u src/linguist/CMakeLists.txt <<EOF | ||
| --- src/linguist/CMakeLists.txt | ||
| +++ src/linguist/CMakeLists.txt | ||
| @@ -14,7 +14,7 @@ | ||
| add_subdirectory(lrelease-pro) | ||
| add_subdirectory(lupdate) | ||
| add_subdirectory(lupdate-pro) | ||
| -if(QT_FEATURE_process AND QT_FEATURE_pushbutton AND QT_FEATURE_toolbutton AND TARGET Qt::Widgets AND NOT no-png) | ||
| +if(QT_FEATURE_process AND QT_FEATURE_pushbutton AND QT_FEATURE_toolbutton AND TARGET Qt::Widgets AND TARGET Qt::PrintSupport AND NOT no-png) | ||
| add_subdirectory(linguist) | ||
| endif() | ||
| EOF | ||
| cmake -B build -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_BUILD_TYPE=Release -DFEATURE_assistant=OFF -DFEATURE_clang=OFF -DFEATURE_designer=OFF -DFEATURE_kmap2qmap=OFF -DFEATURE_pixeltool=OFF -DFEATURE_pkg_config=OFF -DFEATURE_qev=OFF -DFEATURE_qtattributionsscanner=OFF -DFEATURE_qtdiag=OFF -DFEATURE_qtplugininfo=OFF -DFEATURE_linguist=OFF | ||
| make -C build "-j$NPROCS" | ||
| make -C build install | ||
| cd .. | ||
| echo "Installing Qt Translations... " | ||
| tar xf "qttranslations-everywhere$QT_SUFFIX-src-$QT.tar.xz" | ||
| cd "qttranslations-everywhere-src-$QT" | ||
| cmake -B build -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_BUILD_TYPE=Release | ||
| make -C build "-j$NPROCS" | ||
| cd .. | ||
| echo "Cleaning up..." | ||
| cd .. | ||
| rm -rf deps-build | ||
| echo "Dependencies built successfully in $INSTALLDIR" | ||
| - name: Cache MoltenVK | ||
| id: cache-moltenvk | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: ~/moltenvk | ||
| key: macOS MoltenVK ${{ hashFiles('Externals/MoltenVK') }} | ||
| - name: Build MoltenVK | ||
| if: steps.cache-moltenvk.outputs.cache-hit != 'true' | ||
| run: > | ||
| MVK_VER="$(sed -nr 's/^.*set\(MOLTENVK_VERSION "([^"]+)".*$/\1/p' | ||
| Externals/MoltenVK/CMakeLists.txt)" | ||
| if [ -z "$MVK_VER" ]; then | ||
| echo "::error::Failed to parse MoltenVK version from CMakeLists" | ||
| exit 1 | ||
| fi | ||
| git clone --depth 1 --branch "$MVK_VER" https://github.com/KhronosGroup/MoltenVK.git mvk-build | ||
| pushd mvk-build | ||
| git apply ../Externals/MoltenVK/patches/*.patch | ||
| ./fetchDependencies --macos | ||
| make macos | ||
| ls -l Package/Release/MoltenVK/dynamic/* | ||
| chmod 755 Package/Release/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib | ||
| mkdir -p "$HOME/moltenvk/lib/" | ||
| mv Package/Release/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib "$HOME/moltenvk/lib/" | ||
| popd | ||
| rm -rf mvk-build | ||
| - name: Cache CMake build | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: | | ||
| build | ||
| ~/.cache/cmake | ||
| ~/.cache/ninja | ||
| key: ${{ runner.os }}-cmake-macos-${{ hashFiles('**/CMakeLists.txt', '**/cmake/**', '**/*.cpp', '**/*.h', '**/*.hpp') }}-${{ github.sha }} | ||
| restore-keys: | | ||
| ${{ runner.os }}-cmake-macos-${{ hashFiles('**/CMakeLists.txt', '**/cmake/**', '**/*.cpp', '**/*.h', '**/*.hpp') }}- | ||
| ${{ runner.os }}-cmake-macos-${{ hashFiles('**/CMakeLists.txt', '**/cmake/**') }}- | ||
| ${{ runner.os }}-cmake-macos- | ||
| - name: Generate CMake Files | ||
| run: | | ||
| # Configure ccache for faster builds | ||
| export CCACHE_DIR=~/.ccache | ||
| export CCACHE_MAXSIZE=10G | ||
| export CCACHE_COMPRESS=1 | ||
| export CCACHE_COMPRESSLEVEL=6 | ||
| COMMON_ARGS=( | ||
| -DCMAKE_PREFIX_PATH="$HOME/deps;$HOME/moltenvk" | ||
| -DCMAKE_BUILD_TYPE=Release | ||
| -DUSE_BUNDLED_MOLTENVK=OFF | ||
| -DMACOS_CODE_SIGNING=OFF | ||
| -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON | ||
| -DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON | ||
| -DUSE_SYSTEM_LIBS=OFF | ||
| -DUSE_SYSTEM_BZIP2=ON | ||
| -DUSE_SYSTEM_CURL=ON | ||
| -DUSE_SYSTEM_ICONV=ON | ||
| -DUSE_SYSTEM_SDL3=OFF | ||
| -G Ninja | ||
| ) | ||
| cmake -DCMAKE_OSX_ARCHITECTURES=x86_64 \ | ||
| -DCMAKE_SYSTEM_PROCESSOR=x86_64 \ | ||
| -DCMAKE_SYSTEM_NAME=Darwin \ | ||
| -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \ | ||
| "${COMMON_ARGS[@]}" \ | ||
| -B build . | ||
| # cmake -DCMAKE_OSX_ARCHITECTURES=arm64 \ | ||
| # -DCMAKE_SYSTEM_PROCESSOR=arm64 \ | ||
| # -DCMAKE_SYSTEM_NAME=Darwin \ | ||
| # -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \ | ||
| # "${COMMON_ARGS[@]}" \ | ||
| # -B build-arm . | ||
| - name: Build Dolphin (x86_64) | ||
| working-directory: build | ||
| run: ninja dolphin | ||
| # - name: Build Dolphin (arm64) | ||
| # working-directory: build-arm | ||
| # run: ninja dolphin | ||
| - name: Prepare Build Artifacts | ||
| run: > | ||
| mkdir -p build/OUT | ||
| rsync -av build/Binaries/DolphinQt.app/ build/OUT/Dolphin.app/ | ||
| cd build/OUT | ||
| hdiutil create -volname "Dolphin" -srcfolder Dolphin.app -ov -format UDZO Dolphin-macOS-x86_64.dmg | ||
| rm -rf Dolphin.app | ||
| # - name: Codesign Executable | ||
| # run: > | ||
| # if [ -n "${{ secrets.MACOS_CERTIFICATE }}" ]; then | ||
| # echo "Code signing with local certificate..." | ||
| # | ||
| # # Create a temporary keychain | ||
| # security create-keychain -p "temp" build.keychain | ||
| # security list-keychains -s build.keychain | ||
| # security default-keychain -s build.keychain | ||
| # security unlock-keychain -p "temp" build.keychain | ||
| # security set-keychain-settings build.keychain | ||
| # | ||
| # # Import the certificate | ||
| # echo "${{ secrets.MACOS_CERTIFICATE }}" | base64 -d > certificate.p12 | ||
| # security import certificate.p12 -k build.keychain -P "${{ secrets.MACOS_CERTIFICATE_PASSWORD }}" -T /usr/bin/codesign | ||
| # | ||
| # # Set the certificate as trusted | ||
| # security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "temp" build.keychain | ||
| # | ||
| # # Code sign the app (use --deep for complete signing) | ||
| # codesign --force --deep --sign "66B0C1FCF086977A36F88689D6FBD6269400E086" --keychain build.keychain "/build/OUT/Dolphin.app" -v | ||
| # | ||
| # # Clean up | ||
| # security delete-keychain build.keychain | ||
| # rm -f certificate.p12 | ||
| # else | ||
| # echo "No certificate provided, skipping code signing" | ||
| # fi | ||
| - name: Upload Build Artifact | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: Dolphin-macOS-x86_64 | ||
| path: build/OUT/Dolphin-macOS-x86_64.dmg | ||
| build_windows_x86_64: | ||
| name: Windows Build | ||
| runs-on: windows-latest | ||
| steps: | ||
| - uses: actions/checkout@v2 | ||
| - name: Setup Submodules | ||
| run: git config --global --add safe.directory . && git submodule update --init --recursive | ||
| - name: Setup MSBuild | ||
| uses: microsoft/[email protected] | ||
| with: | ||
| vs-version: '16.6.2' | ||
| - name: Build | ||
| run: msbuild "Source\dolphin-emu.sln" /verbosity:minimal /property:Configuration=Release /property:Platform=x64 | ||
| - name: Upload Build Artifact | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: Project-Plus-Dolphin-windows-x86_64 | ||
| path: Binary/x64/ | ||
| build_flatpak: | ||
| name: Flatpak Build | ||
| runs-on: ubuntu-latest | ||
| container: | ||
| image: bilelmoussaoui/flatpak-github-actions:gnome-nightly | ||
| options: --privileged | ||
| steps: | ||
| - uses: actions/checkout@v2 | ||
| - name: Purge .git for space reasons | ||
| run: rm -rf /home/runner/work/Project-Plus-Dolphin-src/.git | ||
| - name: Setup Packages | ||
| run: | | ||
| flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo && \ | ||
| flatpak install org.kde.Sdk//5.15 org.kde.Platform//5.15 -y && \ | ||
| dnf install libusb1-devel cmake git gcc-c++ libXext-devel libgudev qt6-qtbase-devel systemd-devel openal-soft-devel libevdev-devel libao-devel SOIL-devel libXrandr-devel pulseaudio-libs-devel bluez-libs-devel p7zip SDL2-devel make automake gcc gcc-c++ kernel-devel -y | ||
| - name: Run Flatpak Builder | ||
| uses: flatpak/flatpak-github-actions/flatpak-builder@v6 | ||
| with: | ||
| manifest-path: Distribution/flatpak/flatpak.yml | ||
| bundle: Project-Plus-Dolphin-${{ env.DOLPHINVER }}.flatpak | ||
| build_appimage: | ||
| name: AppImage Build | ||
| runs-on: ubuntu-24.04 | ||
| env: | ||
| yaqti: 6.7.3 | ||
| steps: | ||
| - name: Checkout Upstream Repo | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| repository: Project-Plus-Development-Team/Project-Plus-Dolphin | ||
| ref: master | ||
| - name: Checkout Submodules | ||
| if: steps.cache-submodules.outputs.cache-hit != 'true' | ||
| run: git submodule update --init --recursive -j $(getconf _NPROCESSORS_ONLN) | ||
| - name: Checkout AppImage Repo | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| clean: false | ||
| path: ci | ||
| # Runs the Dolphin action | ||
| - name: Get Date | ||
| id: get-date | ||
| run: | | ||
| echo "date=$(/bin/date -u "+%Y%m%d")" >> $GITHUB_OUTPUT | ||
| shell: bash | ||
| - name: cache | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: ~/.ccache | ||
| key: build-ccache-${{ steps.get-date.outputs.date }} | ||
| restore-keys: | | ||
| build-ccache- | ||
| env: | ||
| CCACHE_MAXSIZE: 200M | ||
| - name: Install Qt | ||
| run: | | ||
| curl -sLO https://files.pythonhosted.org/packages/47/42/351389ca36c7adfc5f4e92d086cdb2bdbde13f1b89ee882f4a1cab2183ac/yaqti-2021.7.29-py3-none-any.whl | ||
| python3 -m pip install yaqti-2021.7.29-py3-none-any.whl | ||
| pyver=$(python3 --version | awk '{print $2}') | ||
| curl -sL https://raw.githubusercontent.com/qurious-pixel/yaqti/fetch/yaqti/fetchers.py -o $HOME/.local/lib/python${pyver%.*}/site-packages/yaqti/fetchers.py | ||
| python -m yaqti install --os linux --platform desktop --version ${{ env.yaqti }} --modules linux_gcc_64 --set-envs --install-deps | ||
| - name: Install Packages | ||
| run: | | ||
| sudo apt-get install -y build-essential dialog dpkg libbluetooth-dev liblz4-dev liblzma-dev libssl-dev libopus-dev libpng-dev libsystemd-dev \ | ||
| libzip-dev libzstd-dev zlib1g-dev libasound2-dev libpulse-dev pulseaudio p7zip p7zip-full libsfml-dev libminiupnpc-dev libmbedtls-dev libpugixml-dev \ | ||
| libbz2-dev liblzo2-dev libxi-dev libavcodec-dev libudev-dev libusb-1.0-0-dev libevdev-dev libc6-dev libhidapi-dev libavformat-dev libavdevice-dev \ | ||
| libfmt-dev libwayland-dev libxrandr-dev libglu1-mesa-dev libcurl4-openssl-dev x11-utils zenity wget curl git gettext ccache make cmake ninja-build \ | ||
| libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-icccm4 libxcb-image0-dev libxcb-cursor-dev | ||
| - name: Dolphin-Build Number | ||
| run: | | ||
| export LASTCOMMIT=$(git log --pretty=format:%H -1) | ||
| export DOLPHINVER="v3.1.2-mainline-beta.5" | ||
| echo "DOLPHIN Build $DOLPHINVER" | ||
| echo "DOLPHINVER=$DOLPHINVER" >> $GITHUB_ENV | ||
| sed -i "s|\${DOLPHIN_WC_DESCRIBE}|$DOLPHINVER|g" Source/Core/Common/scmrev.h.in | ||
| - name: Update Patchelf | ||
| run: | | ||
| PATCHELFVER=0.14.5 | ||
| curl -sL https://github.com/NixOS/patchelf/releases/download/${PATCHELFVER}/patchelf-${PATCHELFVER}-x86_64.tar.gz -o /tmp/patchelf.tar.gz | ||
| tar -xvf /tmp/patchelf.tar.gz --directory /tmp/ ./bin/patchelf --strip-components=2 | ||
| sudo mv /tmp/patchelf /usr/bin | ||
| patchelf --version | ||
| - name: Build Dolphin | ||
| run: | | ||
| export Qt_DIR="${{github.workspace}}/qt/${{ env.yaqti }}/gcc_64/lib/cmake/Qt6" | ||
| mkdir -p "$HOME/.ccache" | ||
| mkdir build | ||
| cd build | ||
| cmake .. -GNinja -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc-13 -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++-13 -DCMAKE_PREFIX_PATH="${{github.workspace}}/qt/${{ env.yaqti }}/gcc_64/" -Ddatadir:PATH="share/project-plus-dolphin" -DBIN_INSTALL_DIR="install/usr/bin" -DCMAKE_INSTALL_PREFIX="install/usr" -DINC_INSTALL_DIR="install/usr/include" -DLIB_INSTALL_DIR="install/usr/lib" -DPKGCONFIG_INSTALL_DIR="install/usr/lib/pkgconfig" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DENABLE_NOGUI=OFF | ||
| ninja | ||
| - name: Install Dolphin | ||
| run: | | ||
| cd build | ||
| ninja install | ||
| - name: Package Dolphin-Binary | ||
| run: | | ||
| mkdir -p $GITHUB_WORKSPACE/{artifacts,uploads} | ||
| cp -P build/install/usr/bin/project-plus-dolphin $GITHUB_WORKSPACE/artifacts | ||
| - name: Package Dolphin-AppImage | ||
| env: | ||
| QT_BASE_DIR: /qt/${{ env.yaqti }}/gcc_64 | ||
| QTDIR: $QT_BASE_DIR | ||
| run: | | ||
| export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${GITHUB_WORKSPACE}/qt/${{ env.yaqti }}/gcc_64/lib/ | ||
| export PATH=$QT_BASE_DIR/bin:$PATH | ||
| echo "PATH $PATH" | ||
| sudo ln -s ${GITHUB_WORKSPACE}/$(find qt/ -name qmake) /usr/bin | ||
| qmake -v | ||
| cd /tmp | ||
| curl -sSfLO "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" | ||
| curl -sSfLO "https://github.com/AppImage/AppImageUpdate/releases/download/continuous/AppImageUpdate-x86_64.AppImage" | ||
| chmod a+x linuxdeploy*.AppImage | ||
| chmod a+x AppImageUpdate-x86_64.AppImage | ||
| ./linuxdeploy-x86_64.AppImage --appimage-extract | ||
| curl -sSfL "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage" -o /tmp/squashfs-root/usr/bin/linuxdeploy-plugin-qt.AppImage | ||
| chmod a+x /tmp/squashfs-root/usr/bin/linuxdeploy-plugin-qt.AppImage | ||
| mv /tmp/squashfs-root/usr/bin/patchelf /tmp/squashfs-root/usr/bin/patchelf.orig | ||
| sudo cp /usr/bin/patchelf /tmp/squashfs-root/usr/bin/patchelf | ||
| cd $GITHUB_WORKSPACE | ||
| mkdir -p squashfs-root | ||
| cp -a build/install/usr $GITHUB_WORKSPACE/squashfs-root/ | ||
| cp Data/project-plus-dolphin.svg ./squashfs-root/project-plus-dolphin.svg | ||
| cp Data/project-plus-dolphin.desktop ./squashfs-root/project-plus-dolphin.desktop | ||
| curl -sSfL https://github.com/AppImage/AppImageKit/releases/download/continuous/runtime-x86_64 -o ./squashfs-root/runtime | ||
| curl -sSfL "https://github.com/RPCS3/AppImageKit-checkrt/releases/download/continuous2/AppRun-patched-x86_64" -o ./squashfs-root/AppRun-patched | ||
| cp ci/Distribution/appimage/{AppRun,update.sh} ./squashfs-root/ | ||
| mv /tmp/AppImageUpdate-x86_64.AppImage ./squashfs-root/usr/bin/AppImageUpdate | ||
| echo ${{ env.DOLPHINVER }} > ./squashfs-root/version.txt | ||
| chmod a+x ./squashfs-root/AppRun | ||
| chmod a+x ./squashfs-root/runtime | ||
| chmod a+x ./squashfs-root/AppRun-patched | ||
| chmod a+x ./squashfs-root/update.sh | ||
| export UPD_INFO="gh-releases-zsync|Project-Plus-Development-Team|Project-Plus-Dolphin|continuous|Project+_Dolphin-x86_64.AppImage.zsync" | ||
| /tmp/squashfs-root/AppRun --appdir="$GITHUB_WORKSPACE"/squashfs-root/ --plugin qt -d "$GITHUB_WORKSPACE"/squashfs-root/project-plus-dolphin.desktop -i "$GITHUB_WORKSPACE"/squashfs-root/project-plus-dolphin.svg \ | ||
| --exclude-library=libglib* --output appimage | ||
| ls . | grep *.AppImage | ||
| mv $(ls . | grep *.AppImage) $GITHUB_WORKSPACE/artifacts | ||
| ls -al $GITHUB_WORKSPACE/artifacts | ||
| sed -i 's/AppRun.wrapped/AppRun-patched/g' "$GITHUB_WORKSPACE"/squashfs-root/AppRun | ||
| cat "$GITHUB_WORKSPACE"/squashfs-root/AppRun | ||
| /tmp/squashfs-root/usr/bin/linuxdeploy-plugin-appimage --appdir="$GITHUB_WORKSPACE"/squashfs-root/ | ||
| ls . | grep *.AppImage | ||
| mv Project+_Dolphin-x86_64.AppImage $GITHUB_WORKSPACE/uploads/Dolphin_${DOLPHINVER}.AppImage | ||
| ls -al $GITHUB_WORKSPACE/uploads | ||
| continue-on-error: true | ||
| - name: Upload Static Build | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: Project-Plus-Dolphin_${{ env.DOLPHINVER }} | ||
| path: uploads/ | ||
| env: | ||
| DEFAULT_BRANCH: git-actions | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||