mirror of
https://github.com/Inori/GPCS4.git
synced 2024-06-02 19:38:19 -04:00
95 lines
3.2 KiB
YAML
95 lines
3.2 KiB
YAML
name: Build GPCS4
|
|
|
|
on:
|
|
push:
|
|
branches: [ "master" ]
|
|
pull_request:
|
|
branches: [ "master" ]
|
|
|
|
env:
|
|
# Path to the solution file relative to the root of the project.
|
|
SOLUTION_FILE_PATH: .
|
|
|
|
# Configuration type to build.
|
|
# You can convert this to a build matrix if you need coverage of multiple configuration types.
|
|
# https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
|
|
BUILD_CONFIGURATION: Release
|
|
|
|
VULKAN_SDK_PATH: C:\VulkanSDK
|
|
|
|
LLVM_PATH: C:\LLVM
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
|
|
- name: Cache Vulkan SDK
|
|
id: cache-vulkan-sdk
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: "${{env.VULKAN_SDK_PATH}}"
|
|
key: key-vulkan-sdk
|
|
|
|
- name: Install Vulkan SDK
|
|
if: ${{steps.cache-vulkan-sdk.outputs.cache-hit != 'true'}}
|
|
run: |
|
|
Invoke-WebRequest -Uri "https://sdk.lunarg.com/sdk/download/1.3.250.0/windows/VulkanSDK-1.3.250.0-Installer.exe" -OutFile VulkanSDK.exe
|
|
$installer = Start-Process -FilePath VulkanSDK.exe -Wait -PassThru -ArgumentList @("--root ${{env.VULKAN_SDK_PATH}}\1.3.250.0 --accept-licenses --default-answer --confirm-command install");
|
|
$installer.WaitForExit();
|
|
|
|
|
|
- name: Cache LLVM
|
|
id: cache-llvm
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: "${{env.LLVM_PATH}}"
|
|
key: key-llvm
|
|
|
|
- name: Install LLVM
|
|
if: ${{steps.cache-llvm.outputs.cache-hit != 'true'}}
|
|
run: |
|
|
Invoke-WebRequest -Uri "https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.6/LLVM-16.0.6-win64.exe" -OutFile LLVM.exe
|
|
$installer = Start-Process -FilePath LLVM.exe -Wait -PassThru -ArgumentList @("/S /D=${{env.LLVM_PATH}}");
|
|
$installer.WaitForExit();
|
|
|
|
|
|
- name: Checkout code
|
|
id: checkout-code
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
|
|
|
|
- name: Setup clang-cl
|
|
working-directory: ${{env.GITHUB_WORKSPACE}}
|
|
# Fix a LLVM/VS bug which installs/checks wrong path.
|
|
# Then write a Directory.build.props file to specify clang-cl path.
|
|
run: |
|
|
$lib_path="${{env.LLVM_PATH}}\lib\clang\16";if(Test-Path $lib_path){ Rename-Item -Path $lib_path -NewName "16.0.6" }
|
|
Set-Content -Path .\Directory.build.props -Value "<Project>`n <PropertyGroup>`n <LLVMInstallDir>${{env.LLVM_PATH}}</LLVMInstallDir>`n <LLVMToolsVersion>16.0.6</LLVMToolsVersion>`n </PropertyGroup>`n</Project>"
|
|
|
|
|
|
- name: Setup Vulkan SDK path
|
|
run: |
|
|
$vk_sdk="${{env.VULKAN_SDK_PATH}}\1.3.250.0"
|
|
$vk_bin="$vk_sdk\Bin"
|
|
"VULKAN_SDK=$vk_sdk" >> $env:GITHUB_ENV
|
|
"$vk_bin" >> $env:GITHUB_PATH
|
|
|
|
|
|
- name: Add MSBuild to PATH
|
|
uses: microsoft/setup-msbuild@v1.3.1
|
|
with:
|
|
msbuild-architecture: x64
|
|
|
|
- name: Build
|
|
working-directory: ${{env.GITHUB_WORKSPACE}}
|
|
# Add additional options to the MSBuild command line here (like platform or verbosity level).
|
|
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
|
|
run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}}
|