see if manual adjustment works #41
Workflow file for this run
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 | |
| runs-on: macos-14 | |
| env: | |
| CCACHE_BASEDIR: ${{ github.workspace }} | |
| CCACHE_DIR: ${{ github.workspace }}/.ccache | |
| CCACHE_COMPRESS: true | |
| CCACHE_COMPRESSLEVEL: 9 | |
| CCACHE_MAXSIZE: 200M | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install Packages | |
| env: | |
| HOMEBREW_NO_INSTALL_CLEANUP: 1 | |
| HOMEBREW_NO_ANALYTICS: 1 | |
| 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/scripts/macos/build-dependencies.sh') }} | |
| - name: Build Dependencies | |
| if: steps.cache-deps.outputs.cache-hit != 'true' | |
| run: .github/workflows/scripts/macos/build-dependencies.sh | |
| - 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 | |
| # -- SETUP CCACHE - https://cristianadam.eu/20200113/speeding-up-c-plus-plus-github-actions-using-ccache/ | |
| - name: Prepare ccache timestamp | |
| id: ccache_cache_timestamp | |
| run: echo "timestamp=$(date -u "+%Y-%m-%d-%H;%M;%S")" >> $GITHUB_OUTPUT | |
| - name: Cache ccache cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: .ccache | |
| key: macOS ccache ${{ steps.ccache_cache_timestamp.outputs.timestamp }} | |
| restore-keys: macOS ccache | |
| - name: Generate CMake Files | |
| run: | | |
| 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_C_COMPILER_LAUNCHER=ccache | |
| -DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
| -DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON | |
| -DUSE_SYSTEM_LIBS=OFF | |
| -DUSE_SYSTEM_BZIP2=ON | |
| -DUSE_SYSTEM_CURL=ON | |
| -DUSE_SYSTEM_ICONV=ON | |
| -DUSE_SYSTEM_SDL2=ON | |
| -GNinja | |
| ) | |
| cmake -DCMAKE_OSX_ARCHITECTURES=x86_64 \ | |
| -DCMAKE_SYSTEM_PROCESSOR=x86_64 \ | |
| -DCMAKE_SYSTEM_NAME=Darwin \ | |
| -DCMAKE_OSX_DEPLOYMENT_TARGET=11.00 \ | |
| "${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: Dolphin-Build Number | |
| run: | | |
| export LASTCOMMIT=$(git log --pretty=format:%H -1) | |
| export DOLPHINVER="v3.1.2-mainline-beta.2" | |
| echo "DOLPHIN Build $DOLPHINVER" | |
| echo "DOLPHINVER=$DOLPHINVER" >> $GITHUB_ENV | |
| gsed -i "s|\${DOLPHIN_WC_DESCRIBE}|$DOLPHINVER|g" Source/Core/Common/scmrev.h.in | |
| - name: Build Dolphin (x86_64) | |
| working-directory: build | |
| run: | | |
| ccache -p | |
| ccache -s | |
| ccache -z | |
| ninja project-plus-dolphin | |
| ccache -s | |
| - name: Build Dolphin (arm64) | |
| working-directory: build-arm | |
| run: | | |
| ccache -p | |
| ccache -s | |
| ccache -z | |
| ninja project-plus-dolphin | |
| ccache -s | |
| - name: Prepare Build Artifacts | |
| id: create-artifact | |
| env: | |
| EVENT_NAME: ${{ github.event_name }} | |
| PR_TITLE: ${{ github.event.pull_request.title }} | |
| PR_NUM: ${{ github.event.pull_request.number }} | |
| PR_SHA: ${{ github.event.pull_request.head.sha }} | |
| run: | | |
| lipo -create build/Binaries/DolphinQt.app/Contents/MacOS/DolphinQt build-arm/Binaries/DolphinQt.app/Contents/MacOS/DolphinQt -o dolphin | |
| mv dolphin build/Binaries/DolphinQt.app/Contents/MacOS/DolphinQt | |
| TAG="$(git tag --points-at HEAD)" | |
| if [ ! -z "$TAG" ]; then | |
| SUFFIX="$TAG" | |
| elif [ "$EVENT_NAME" == "pull_request" ]; then | |
| PR_TITLE=$(echo "${PR_TITLE}" | tr -cd '[a-zA-Z0-9[:space:]]_-') | |
| SUFFIX="pr[$PR_NUM]-sha[$PR_SHA]-title[$PR_TITLE" | |
| SUFFIX=$(printf "%.99s]" "$SUFFIX") | |
| else | |
| SUFFIX="sha[$(git rev-parse --short HEAD)]" | |
| fi | |
| APPNAME="ProjectPlus-$SUFFIX" | |
| mv build/Binaries/DolphinQt.app "$APPNAME.app" | |
| tar --options xz:compression-level=9 -cvJf "$APPNAME.tar.xz" "$APPNAME.app" | |
| echo "name=$APPNAME" >> "$GITHUB_OUTPUT" | |
| - name: Upload Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ steps.create-artifact.outputs.name }} | |
| path: "*.tar.xz" | |