mirror of https://github.com/PCSX2/pcsx2.git
120 lines
3.8 KiB
YAML
120 lines
3.8 KiB
YAML
name: Windows Build Steps - wxWidgets
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
jobName:
|
|
required: true
|
|
type: string
|
|
os:
|
|
required: false
|
|
type: string
|
|
default: windows-2019
|
|
platform:
|
|
required: false
|
|
type: string
|
|
default: x64
|
|
simd:
|
|
required: false
|
|
type: string
|
|
default: AVX2
|
|
buildSystem:
|
|
required: false
|
|
type: string
|
|
default: msbuild
|
|
configuration:
|
|
required: true
|
|
type: string
|
|
cheats_url:
|
|
required: false
|
|
type: string
|
|
default: https://github.com/PCSX2/pcsx2_patches/releases/latest/download
|
|
|
|
jobs:
|
|
build_windows_wx:
|
|
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: wxWidgets
|
|
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 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: |
|
|
if "${{ inputs.platform }}"=="Win32" (SET vcvars=vcvarsamd64_x86.bat) else (SET vcvars=vcvars64.bat)
|
|
call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\%vcvars%"
|
|
echo ::set-output name=vcvars::%vcvars%
|
|
cmake . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -G Ninja
|
|
|
|
- name: Build PCSX2
|
|
shell: cmd
|
|
run: |
|
|
if "${{ inputs.configuration }}"=="CMake" (
|
|
call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\${{ steps.cmake.outputs.vcvars }}"
|
|
cmake --build build --config Release || exit /b
|
|
cp build/pcsx2/pcsx2* bin/
|
|
) else (
|
|
msbuild "PCSX2_suite.sln" /m /v:m /p:Configuration="${{ inputs.configuration }}" /p:Platform="${{ inputs.platform }}"
|
|
)
|
|
|
|
- name: Run Tests
|
|
if: inputs.configuration == 'CMake'
|
|
shell: cmd
|
|
run: |
|
|
call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\${{ steps.cmake.outputs.vcvars }}"
|
|
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
|