79 lines
2.4 KiB
YAML
79 lines
2.4 KiB
YAML
|
name: 🍎 MacOS
|
||
|
|
||
|
on:
|
||
|
workflow_call:
|
||
|
|
||
|
jobs:
|
||
|
macos-build:
|
||
|
name: "Universal"
|
||
|
runs-on: macos-14
|
||
|
timeout-minutes: 120
|
||
|
steps:
|
||
|
- uses: actions/checkout@v4.1.6
|
||
|
with:
|
||
|
fetch-depth: 0
|
||
|
|
||
|
- name: Use Xcode 15.4
|
||
|
run: sudo xcode-select -s /Applications/Xcode_15.4.app
|
||
|
|
||
|
- name: Install packages
|
||
|
shell: bash
|
||
|
run: |
|
||
|
brew install ninja
|
||
|
|
||
|
- name: Cache Dependencies
|
||
|
id: cache-deps-mac
|
||
|
uses: actions/cache@v4.0.2
|
||
|
with:
|
||
|
path: ~/deps
|
||
|
key: deps-mac ${{ hashFiles('scripts/deps/build-dependencies-mac.sh') }}
|
||
|
|
||
|
- name: Build Dependencies
|
||
|
if: steps.cache-deps-mac.outputs.cache-hit != 'true'
|
||
|
run: scripts/deps/build-dependencies-mac.sh "$HOME/deps"
|
||
|
|
||
|
- name: Initialize Build Tag
|
||
|
run: |
|
||
|
echo '#pragma once' > src/scmversion/tag.h
|
||
|
|
||
|
- name: Set Build Tags
|
||
|
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/dev'
|
||
|
run: |
|
||
|
echo '#define SCM_RELEASE_ASSET "duckstation-mac-release.zip"' >> src/scmversion/tag.h
|
||
|
echo '#define SCM_RELEASE_TAGS {"latest", "preview"}' >> src/scmversion/tag.h
|
||
|
|
||
|
- name: Tag as Preview Release
|
||
|
if: github.ref == 'refs/heads/master'
|
||
|
run: |
|
||
|
echo '#define SCM_RELEASE_TAG "preview"' >> src/scmversion/tag.h
|
||
|
|
||
|
- name: Tag as Rolling Release
|
||
|
if: github.ref == 'refs/heads/dev'
|
||
|
run: |
|
||
|
echo '#define SCM_RELEASE_TAG "latest"' >> src/scmversion/tag.h
|
||
|
|
||
|
- name: Download Patch Archives
|
||
|
shell: bash
|
||
|
run: |
|
||
|
cd data/resources
|
||
|
curl -LO "https://github.com/duckstation/chtdb/releases/download/latest/cheats.zip"
|
||
|
curl -LO "https://github.com/duckstation/chtdb/releases/download/latest/patches.zip"
|
||
|
|
||
|
- name: Compile and Zip .app
|
||
|
shell: bash
|
||
|
run: |
|
||
|
mkdir build
|
||
|
cd build
|
||
|
export MACOSX_DEPLOYMENT_TARGET=11.0
|
||
|
cmake -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_BUILD_TYPE=Release -DENABLE_OPENGL=OFF -DCMAKE_PREFIX_PATH="$HOME/deps" -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -G Ninja ..
|
||
|
cmake --build . --parallel
|
||
|
mv bin/DuckStation.app .
|
||
|
codesign -s - --deep -f -v DuckStation.app
|
||
|
zip -r duckstation-mac-release.zip DuckStation.app/
|
||
|
|
||
|
- name: Upload MacOS .app
|
||
|
uses: actions/upload-artifact@v4.3.3
|
||
|
with:
|
||
|
name: "macos"
|
||
|
path: "build/duckstation-mac-release.zip"
|