# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later name: macOS-Qt on: push: branches: [ "main" ] pull_request: branches: [ "main" ] env: BUILD_TYPE: Release jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Setup latest Xcode uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: latest - name: Install MoltenVK run: | arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" arch -x86_64 /usr/local/bin/brew install molten-vk - name: Setup Qt uses: jurplel/install-qt-action@v4 with: version: 6.7.2 host: mac target: desktop arch: clang_64 archives: qtbase qttools - name: Cache CMake Configuration uses: actions/cache@v4 env: cache-name: ${{ runner.os }}-qt-cache-cmake-configuration with: path: | ${{github.workspace}}/build key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }} restore-keys: | ${{ env.cache-name }}- - name: Cache CMake Build uses: hendrikmuhs/ccache-action@v1.2.14 env: cache-name: ${{runner.os}}-qt-cache-cmake-build with: append-timestamp: false create-symlink: true key: ${{env.cache-name}}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }} variant: sccache - name: Configure CMake run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_OSX_ARCHITECTURES=x86_64 -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(sysctl -n hw.ncpu) - name: Package run: | mkdir upload mv ${{github.workspace}}/build/shadps4.app upload macdeployqt upload/shadps4.app tar cf shadps4-macos-qt.tar.gz -C upload . - name: Get date and git hash id: vars run: | echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - name: Upload executable uses: actions/upload-artifact@v4 with: name: shadps4-macos-qt-${{ steps.vars.outputs.date }}-${{ steps.vars.outputs.shorthash }} path: shadps4-macos-qt.tar.gz