34 lines
928 B
PowerShell
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
|