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 ----------------------------------------------------------------------
|
# --- build the installer ----------------------------------------------------------------------
|
||||||
Write-Host "==> ISCC $($defines -join ' ') $iss"
|
Write-Host "==> ISCC $($defines -join ' ') $iss"
|
||||||
& $iscc @defines $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"
|
$setup = Join-Path $OutDir "punktfunk-host-setup-$Version.exe"
|
||||||
if (-not (Test-Path $setup)) { throw "expected installer not produced: $setup" }
|
if (-not (Test-Path $setup)) { throw "expected installer not produced: $setup" }
|
||||||
|
|||||||
@@ -55,6 +55,9 @@ WizardStyle=modern
|
|||||||
UninstallDisplayName=punktfunk host {#MyAppVersion}
|
UninstallDisplayName=punktfunk host {#MyAppVersion}
|
||||||
UninstallDisplayIcon={app}\punktfunk-host.exe
|
UninstallDisplayIcon={app}\punktfunk-host.exe
|
||||||
|
|
||||||
|
[Languages]
|
||||||
|
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||||
|
|
||||||
[Tasks]
|
[Tasks]
|
||||||
#ifdef WithDriver
|
#ifdef WithDriver
|
||||||
Name: "installdriver"; Description: "Install the SudoVDA virtual display driver (required for native-resolution streaming)"
|
Name: "installdriver"; Description: "Install the SudoVDA virtual display driver (required for native-resolution streaming)"
|
||||||
|
|||||||
Reference in New Issue
Block a user