mirror of https://github.com/PCSX2/pcsx2.git
134 lines
4.1 KiB
YAML
134 lines
4.1 KiB
YAML
name: Windows Build Steps - Qt
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
jobName:
|
|
required: true
|
|
type: string
|
|
os:
|
|
required: false
|
|
type: string
|
|
default: windows-2022
|
|
platform:
|
|
required: false
|
|
type: string
|
|
default: x64
|
|
configuration:
|
|
required: true
|
|
type: string
|
|
simd:
|
|
required: false
|
|
type: string
|
|
default: AVX2
|
|
buildSystem:
|
|
required: false
|
|
type: string
|
|
default: msbuild
|
|
qt_binary_url:
|
|
required: false
|
|
type: string
|
|
default: https://github.com/PCSX2/pcsx2-windows-dependencies/releases/download/2022-11-20/qt-6.4.0-x64.7z
|
|
qt_dir:
|
|
required: false
|
|
type: string
|
|
default: 3rdparty\qt\6.4.0\msvc2022_64
|
|
cheats_url:
|
|
required: false
|
|
type: string
|
|
default: https://github.com/PCSX2/pcsx2_patches/releases/latest/download
|
|
|
|
jobs:
|
|
build_windows_qt:
|
|
name: ${{ inputs.jobName }}
|
|
runs-on: ${{ inputs.os }}
|
|
# Set some sort of timeout in the event of run-away builds. We are limited on concurrent jobs so, get rid of them.
|
|
timeout-minutes: 60
|
|
env:
|
|
POWERSHELL_TELEMETRY_OPTOUT: 1
|
|
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Prepare Artifact Metadata
|
|
id: artifact-metadata
|
|
shell: bash
|
|
env:
|
|
OS: windows
|
|
BUILD_SYSTEM: ${{ inputs.buildSystem }}
|
|
GUI_FRAMEWORK: Qt
|
|
ARCH: ${{ inputs.platform }}
|
|
SIMD: ${{ inputs.simd }}
|
|
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: ./.github/workflows/scripts/common/name-artifacts.sh
|
|
|
|
- name: Setup msbuild
|
|
if: inputs.configuration != 'CMake'
|
|
uses: microsoft/setup-msbuild@v1
|
|
|
|
- name: Download Qt build files
|
|
shell: cmd
|
|
run: |
|
|
cd 3rdparty\qt
|
|
aria2c ${{ inputs.qt_binary_url }}
|
|
7z x qt-*-x64.7z
|
|
del qt-*-x64.7z
|
|
|
|
- name: Download cheats
|
|
shell: cmd
|
|
run: |
|
|
cd bin/resources
|
|
aria2c -Z "${{ inputs.cheats_url }}/cheats_ni.zip" "${{ inputs.cheats_url }}/cheats_ws.zip"
|
|
|
|
- name: Generate CMake
|
|
if: inputs.configuration == 'CMake'
|
|
id: cmake
|
|
shell: cmd
|
|
run: |
|
|
call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
|
|
cmake . -B build "-DCMAKE_PREFIX_PATH=%cd%\${{ inputs.qt_dir }}" -DQT_BUILD=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DDISABLE_ADVANCE_SIMD=ON -G Ninja
|
|
|
|
- name: Build PCSX2
|
|
shell: cmd
|
|
run: |
|
|
if "${{ inputs.configuration }}"=="CMake" (
|
|
call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
|
|
cmake --build build --config Release || exit /b
|
|
cmake --install build --config Release || exit /b
|
|
) else (
|
|
msbuild "PCSX2_qt.sln" /m /v:m /p:Configuration="${{ inputs.configuration }}" /p:Platform="${{ inputs.platform }}"
|
|
)
|
|
|
|
- name: Run Tests
|
|
if: inputs.configuration == 'CMake'
|
|
shell: cmd
|
|
run: |
|
|
call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
|
|
cmake --build build --config Release --target unittests
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ steps.artifact-metadata.outputs.artifact-name }}
|
|
path: |
|
|
./bin
|
|
!./bin/**/*.bsc
|
|
!./bin/**/*.exp
|
|
!./bin/**/*.ilk
|
|
!./bin/**/*.iobj
|
|
!./bin/**/*.ipdb
|
|
!./bin/**/*.pdb
|
|
!./bin/**/*.lib
|
|
|
|
- name: Upload artifact - with symbols
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ steps.artifact-metadata.outputs.artifact-name }}-symbols
|
|
path: ./bin/**/*.pdb
|