diag(packaging/windows): isolate the ISCC "path not found" failure

All [Files] sources are validated-present yet ISCC still errors before any
"Compiling" output (no line number) — so it's startup/[Setup]-internal, not a
source path. Add an explicit [Languages] (compiler:Default.isl) to rule out the
auto-added default language, and on ISCC failure dump the Inno install dir +
run a trivial [Setup]-only smoke script to tell "Inno broken" from "my script".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-19 12:13:29 +00:00
parent 23ac174a50
commit 0d94944c41
2 changed files with 20 additions and 1 deletions
+17 -1
View File
@@ -137,7 +137,23 @@ else { Write-Host "-NoDriver: building installer WITHOUT the bundled SudoVDA dri
# --- build the installer ----------------------------------------------------------------------
Write-Host "==> ISCC $($defines -join ' ') $iss"
& $iscc @defines $iss
if ($LASTEXITCODE -ne 0) { throw "ISCC failed ($LASTEXITCODE)" }
if ($LASTEXITCODE -ne 0) {
$rc = $LASTEXITCODE
Write-Warning "ISCC failed ($rc) — diagnostics:"
$innoDir = Split-Path $iscc
Write-Host " Inno dir: $innoDir"
Write-Host " Default.isl present: $(Test-Path (Join-Path $innoDir 'Default.isl'))"
Get-ChildItem $innoDir -File -ErrorAction SilentlyContinue | ForEach-Object { " $($_.Name)" }
Write-Host " OutDir=$OutDir exists=$(Test-Path $OutDir) ; TargetDir=$TargetDir exists=$(Test-Path $TargetDir) ; StageExists=$(Test-Path (Join-Path $OutDir 'stage'))"
# smoke test: does ISCC compile a trivial [Setup]-only script on this box at all?
$smoke = Join-Path $OutDir 'smoke.iss'
"[Setup]`r`nAppName=smoke`r`nAppVersion=1.0`r`nDefaultDirName={autopf}\smoke`r`nOutputDir=$OutDir`r`nOutputBaseFilename=smoke`r`n[Files]" |
Set-Content -Encoding ASCII $smoke
Write-Host "== smoke-test ISCC (trivial script) =="
& $iscc $smoke
Write-Host "== smoke rc=$LASTEXITCODE =="
throw "ISCC failed ($rc)"
}
$setup = Join-Path $OutDir "punktfunk-host-setup-$Version.exe"
if (-not (Test-Path $setup)) { throw "expected installer not produced: $setup" }
+3
View File
@@ -55,6 +55,9 @@ WizardStyle=modern
UninstallDisplayName=punktfunk host {#MyAppVersion}
UninstallDisplayIcon={app}\punktfunk-host.exe
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
#ifdef WithDriver
Name: "installdriver"; Description: "Install the SudoVDA virtual display driver (required for native-resolution streaming)"