Files
rust-engine/shaders/compile.ps1
2021-02-22 15:58:46 +01:00

34 lines
928 B
PowerShell

$compileHashFile = "compilehashes.xml"
if (Get-ChildItem -File $compileHashFile -ErrorAction SilentlyContinue) {
$hashes = Import-Clixml $compileHashFile
} else {
$hashes = @{}
}
function CompileShader($fileName) {
$spvFileName = "$fileName.spv"
$newHash = Get-FileHash -Path $fileName -Algorithm SHA1
$spvExists = $false
if (Get-ChildItem -File $spvFileName -ErrorAction SilentlyContinue) {
$spvExists = $true
}
if ($spvExists -and $hashes.ContainsKey($fileName) -and $hashes[$fileName] -eq $newHash.Hash) {
Write-Output "Skipping $fileName"
} else {
glslangValidator -V $fileName -o $spvFileName
$hashes.$fileName = $newHash.Hash
}
}
Get-ChildItem -Filter *.vert | ForEach-Object {
CompileShader $_.Name
}
Get-ChildItem -Filter *.frag | ForEach-Object {
CompileShader $_.Name
}
Export-Clixml -Path $compileHashFile -InputObject $hashes