30 lines
974 B
PowerShell
30 lines
974 B
PowerShell
# check_target.ps1 - Checks if target binary needs to be rebuilt based on binary existence and source file modification times
|
|
param(
|
|
[string]$TargetBinary,
|
|
[string]$SearchDirs
|
|
)
|
|
|
|
if (-not (Test-Path $TargetBinary)) {
|
|
Set-Content -Path "Intermediate\need_build.tmp" -Value "1"
|
|
exit 0
|
|
}
|
|
|
|
$binTime = (Get-Item $TargetBinary).LastWriteTime
|
|
$dirs = $SearchDirs -split ','
|
|
|
|
$needsRebuild = "0"
|
|
foreach ($dir in $dirs) {
|
|
if (Test-Path $dir) {
|
|
# Check source .cpp, .h, .hpp, .inl files for changes newer than target binary
|
|
$newer = Get-ChildItem -Path $dir -Recurse -File -ErrorAction SilentlyContinue | Where-Object {
|
|
($_.Extension -eq '.cpp' -or $_.Extension -eq '.h' -or $_.Extension -eq '.hpp' -or $_.Extension -eq '.inl') -and $_.LastWriteTime -gt $binTime
|
|
}
|
|
if ($newer) {
|
|
$needsRebuild = "1"
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
Set-Content -Path "Intermediate\need_build.tmp" -Value $needsRebuild
|