# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later name: Windows-Qt on: push: branches: [ "main" ] pull_request: branches: [ "main" ] env: BUILD_TYPE: Release jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Setup Qt uses: jurplel/install-qt-action@v4 with: version: 6.7.2 host: windows target: desktop arch: win64_msvc2019_64 archives: qtbase qttools - name: Cache CMake Configuration uses: actions/cache@v4 env: cache-name: ${{ runner.os }}-qt-ninja-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 key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }} - name: Setup VS Environment uses: ilammy/msvc-dev-cmd@v1.13.0 with: arch: amd64 - name: Configure CMake run: cmake -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel - name: Deploy run: | mkdir upload move build/shadPS4.exe upload windeployqt --no-compiler-runtime --no-system-d3d-compiler --no-system-dxc-compiler --dir upload upload/shadPS4.exe - name: Get date and git hash id: vars shell: pwsh run: | echo "date=$(Get-Date -Format 'yyyy-MM-dd')" >> $env:GITHUB_OUTPUT echo "shorthash=$(git rev-parse --short HEAD)" >> $env:GITHUB_OUTPUT - name: Upload executable uses: actions/upload-artifact@v4 with: name: shadps4-win64-qt-${{ steps.vars.outputs.date }}-${{ steps.vars.outputs.shorthash }} path: upload