CultLib/packages/cultmath/tools/compile-spirv-metal.ps1
2026-08-26 17:35:51 +02:00

34 lines
962 B
PowerShell

param(
[Parameter(Mandatory = $true)]
[string]$SpirvPath,
[Parameter(Mandatory = $true)]
[string]$OutputPath,
[int]$MslVersion = 23000,
[string]$SpirvCrossPath = ""
)
$ErrorActionPreference = "Stop"
$repoRoot = Resolve-Path (Join-Path $PSScriptRoot "..")
if (-not $SpirvCrossPath) {
$SpirvCrossPath = Join-Path $repoRoot ".tools\spirv-cross\build\spirv-cross.exe"
}
if (-not (Test-Path $SpirvCrossPath)) {
throw "SPIRV-Cross not found at '$SpirvCrossPath'. Run tools\get-spirv-cross.ps1 first or pass -SpirvCrossPath."
}
$resolvedSpirv = Resolve-Path $SpirvPath
$outputDirectory = Split-Path -Parent $OutputPath
if ($outputDirectory) {
New-Item -ItemType Directory -Force -Path $outputDirectory | Out-Null
}
& $SpirvCrossPath $resolvedSpirv --msl --msl-version $MslVersion --output $OutputPath
if ($LASTEXITCODE -ne 0) {
throw "spirv-cross failed with exit code $LASTEXITCODE."
}
Get-Item -LiteralPath $OutputPath