diff --git a/demo/BR_New20012.ibw b/demo/BR_New20012.ibw new file mode 100644 index 0000000..d0988b6 Binary files /dev/null and b/demo/BR_New20012.ibw differ diff --git a/demo/nanoparticles.png b/demo/nanoparticles.png deleted file mode 100644 index dda6204..0000000 Binary files a/demo/nanoparticles.png and /dev/null differ diff --git a/demo/whiskers.ibw b/demo/whiskers.ibw new file mode 100644 index 0000000..a807444 Binary files /dev/null and b/demo/whiskers.ibw differ diff --git a/resources/icon.png b/resources/argonode.png similarity index 100% rename from resources/icon.png rename to resources/argonode.png diff --git a/resources/icon.ico b/resources/icon.ico new file mode 100644 index 0000000..f997269 Binary files /dev/null and b/resources/icon.ico differ diff --git a/scripts/build-windows.ps1 b/scripts/build-windows.ps1 index b129820..5da3c78 100644 --- a/scripts/build-windows.ps1 +++ b/scripts/build-windows.ps1 @@ -5,6 +5,28 @@ param( Set-StrictMode -Version Latest $ErrorActionPreference = "Stop" +function Assert-LastExitCode { + param( + [Parameter(Mandatory = $true)] + [string]$Step + ) + + if ($LASTEXITCODE -ne 0) { + if ($Step -eq "Frontend build") { + Write-Host "" + Write-Host "Frontend build failed, so desktop packaging was stopped on purpose." -ForegroundColor Yellow + Write-Host "This prevents packaging a stale frontend\\dist into the Windows app." -ForegroundColor Yellow + Write-Host "" + Write-Host "Next checks:" -ForegroundColor Yellow + Write-Host " 1. Run: npm run build" -ForegroundColor Yellow + Write-Host " 2. If you see 'spawn EPERM', try Node 20 LTS instead of Node 24." -ForegroundColor Yellow + Write-Host " 3. Reinstall frontend deps on Windows: npm --prefix frontend install" -ForegroundColor Yellow + Write-Host "" + } + throw "$Step failed with exit code $LASTEXITCODE." + } +} + $repoRoot = Split-Path -Parent $PSScriptRoot Set-Location $repoRoot @@ -18,9 +40,11 @@ $demoDir = Join-Path $repoRoot "demo" Write-Host "Building frontend bundle..." npm run build +Assert-LastExitCode "Frontend build" Write-Host "Installing desktop build dependencies..." & $pythonExe -m pip install -e ".[desktop]" +Assert-LastExitCode "Desktop dependency installation" $mode = if ($OneFile) { "--onefile" } else { "--onedir" } @@ -40,11 +64,13 @@ $pyInstallerArgs = @( "--collect-all", "matplotlib", "--collect-all", "scipy", "--collect-all", "skimage", - "--collect-all", "webview" + "--collect-all", "webview", + "--icon", "../resources/icon.ico" ) Write-Host "Packaging desktop app..." & $pythonExe @pyInstallerArgs +Assert-LastExitCode "PyInstaller packaging" Write-Host "Desktop build complete." Write-Host "Output folder: $repoRoot\desktop-dist\argonode"