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:
@@ -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" }
|
||||
|
||||
@@ -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)"
|
||||
|
||||
Reference in New Issue
Block a user