Insight_UX_1.0 / packaging /installer.iss
Sanyam0385
Add browser chrome, packaging pipeline, and fix UTF-8 crash in calibration
1b83c9c
Raw
History Blame Contribute Delete
3.93 kB
; InsightUX Windows installer — Inno Setup script.
;
; Build (requires Inno Setup / ISCC installed locally, and dist/InsightUX/
; already built via `pyinstaller packaging/InsightUX.spec` first):
; iscc packaging/installer.iss
; Output lands in packaging/dist_installer/InsightUX-Setup-<version>.exe.
;
; AppId is a FIXED GUID, generated once and never changed. It's the whole
; mechanism behind "push updates through the installer": every future build
; keeps this same AppId + a higher AppVersion, so re-running a new installer
; upgrades the existing install in place (same folder, same shortcuts)
; instead of creating a second copy. Do not regenerate this GUID.
;
; Installs per-user (PrivilegesRequired=lowest) to %LocalAppData%\InsightUX —
; no admin/UAC prompt, and critically, no Program Files write-permission
; problems for calibration.pkl/sessions/, which the running app writes
; directly into its own install folder (see browser_session.py's DATA_DIR).
;
; calibration.pkl, baseline_pose.pkl, and sessions/ are deliberately NOT
; listed under [Files] below. Inno Setup only ever touches files it tracked
; as having installed — so upgrades overwrite app files without touching
; those, and a normal uninstall leaves them behind too (the [Code] section
; below tells the user this explicitly on uninstall, rather than silently).
#define MyAppName "InsightUX"
#define MyAppVersion "1.0.0"
#define MyAppPublisher "InsightUX"
#define MyAppExeName "InsightUX.exe"
#define MyBuildDir "..\dist\InsightUX"
[Setup]
AppId={{6DE35CE2-05CB-4375-BFFE-D63E9181F1B9}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={localappdata}\InsightUX
DefaultGroupName=InsightUX
DisableProgramGroupPage=yes
PrivilegesRequired=lowest
ArchitecturesInstallIn64BitMode=x64compatible
OutputDir=dist_installer
OutputBaseFilename=InsightUX-Setup-{#MyAppVersion}
Compression=lzma2
SolidCompression=yes
WizardStyle=modern
; A ~1.5-2.5GB installer (torch is bundled deliberately, see README) needs
; the larger internal chunk size or ISCC can fail to build at all.
DiskSpanning=no
[Tasks]
Name: "desktopicon"; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"
[Files]
Source: "{#MyBuildDir}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; Microsoft's WebView2 bootstrapper is NOT part of this repo (an external
; download — see packaging/README.md for the official link). If you've
; placed it next to this .iss before compiling, it gets bundled and
; silently run below as a safety net for machines missing the runtime.
; Harmless to (re-)run even if WebView2 is already installed.
#ifexist "MicrosoftEdgeWebview2Setup.exe"
Source: "MicrosoftEdgeWebview2Setup.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall
#endif
[Icons]
Name: "{group}\InsightUX"; Filename: "{app}\{#MyAppExeName}"; WorkingDir: "{app}"
Name: "{group}\Uninstall InsightUX"; Filename: "{uninstallexe}"
Name: "{commondesktop}\InsightUX"; Filename: "{app}\{#MyAppExeName}"; WorkingDir: "{app}"; Tasks: desktopicon
[Run]
#ifexist "MicrosoftEdgeWebview2Setup.exe"
Filename: "{tmp}\MicrosoftEdgeWebview2Setup.exe"; Parameters: "/silent /install"; StatusMsg: "Checking Microsoft Edge WebView2 Runtime..."; Flags: waituntilterminated
#endif
Filename: "{app}\{#MyAppExeName}"; Description: "Launch InsightUX"; Flags: nowait postinstall skipifsilent
[Code]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
if FileExists(ExpandConstant('{app}\calibration.pkl')) or
DirExists(ExpandConstant('{app}\sessions')) then
MsgBox('Your calibration profile and saved sessions were kept in:' + #13#10 +
ExpandConstant('{app}') + #13#10 +
'Delete that folder yourself if you want a completely clean removal.',
mbInformation, MB_OK);
end;
end;