- 統一目錄名為 local-tool(連字號),修正所有文件中殘留的底線版本 - 新增 scripts/bootstrap-linux.sh 與 scripts/bootstrap-windows.ps1 一鍵安裝依賴(Go/Node/pnpm/Wails/MSYS2)並執行 payload + installer build Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
106 lines
4.8 KiB
Plaintext
106 lines
4.8 KiB
Plaintext
; visionA-local Windows installer
|
||
; Inno Setup 6.x compatible
|
||
;
|
||
; 此檔案在 macOS 上只做語法檢視,實際編譯必須在 Windows runner 上跑:
|
||
; iscc installer\windows\visiona-local.iss
|
||
;
|
||
; 前置作業(在 Windows runner 上):
|
||
; 1. make payload-windows — 準備 payload/windows/
|
||
; 2. make wails-windows — build visiona-local/build/bin/visiona-local.exe
|
||
; 3. go build server/ — build payload/windows/bin/visiona-local-server.exe
|
||
; 4. make exe — 執行 iscc 編譯本檔
|
||
;
|
||
; 所有路徑相對於本 .iss 所在目錄 (installer/windows/)
|
||
; 因此 ..\.. 會指回專案根目錄 (local-tool/)
|
||
|
||
#define MyAppName "visionA-local"
|
||
#define MyAppVersion "0.1.0"
|
||
#define MyAppPublisher "Innovedus"
|
||
#define MyAppURL "https://github.com/Innovedus/visiona-local"
|
||
#define MyAppExeName "visiona-local.exe"
|
||
|
||
[Setup]
|
||
; AppId 固定 GUID(產品識別用,未來升級時不可更動)
|
||
AppId={{B7E5C4F3-1234-5678-90AB-CDEF12345678}
|
||
AppName={#MyAppName}
|
||
AppVersion={#MyAppVersion}
|
||
AppPublisher={#MyAppPublisher}
|
||
AppPublisherURL={#MyAppURL}
|
||
AppSupportURL={#MyAppURL}
|
||
AppUpdatesURL={#MyAppURL}
|
||
DefaultDirName={autopf}\visiona-local
|
||
DefaultGroupName={#MyAppName}
|
||
DisableProgramGroupPage=yes
|
||
; 需要管理員權限安裝 WinUSB driver
|
||
PrivilegesRequired=admin
|
||
PrivilegesRequiredOverridesAllowed=dialog
|
||
OutputDir=..\..\dist
|
||
OutputBaseFilename=visiona-local-{#MyAppVersion}-windows-x64
|
||
Compression=lzma2/ultra
|
||
SolidCompression=yes
|
||
WizardStyle=modern
|
||
ArchitecturesAllowed=x64
|
||
ArchitecturesInstallIn64BitMode=x64
|
||
; Windows 10 1809 以上(WinUSB / pnputil 需求)
|
||
MinVersion=10.0.17763
|
||
; 不需要 code signing(使用者決策 Q2=C)
|
||
; 解除安裝時不清使用者 %APPDATA% 資料
|
||
|
||
[Languages]
|
||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||
Name: "tradchinese"; MessagesFile: "compiler:Languages\ChineseTraditional.isl"
|
||
|
||
[Tasks]
|
||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
||
|
||
[Files]
|
||
; ── Wails app binary ──────────────────────────────────────────────
|
||
Source: "..\..\visiona-local\build\bin\visiona-local.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||
|
||
; ── Server binary(Go build,必須在 Windows runner 上 GOOS=windows go build)──
|
||
Source: "..\..\payload\windows\bin\visiona-local-server.exe"; DestDir: "{app}\bin"; Flags: ignoreversion
|
||
|
||
; ── ffmpeg + yt-dlp ───────────────────────────────────────────────
|
||
Source: "..\..\payload\windows\bin\ffmpeg.exe"; DestDir: "{app}\bin"; Flags: ignoreversion
|
||
Source: "..\..\payload\windows\bin\yt-dlp.exe"; DestDir: "{app}\bin"; Flags: ignoreversion
|
||
|
||
; ── Python runtime tarball + wheels ───────────────────────────────
|
||
Source: "..\..\payload\windows\python\python.tar.gz"; DestDir: "{app}\python"; Flags: ignoreversion
|
||
Source: "..\..\payload\windows\wheels\*"; DestDir: "{app}\wheels"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||
|
||
; ── 預置模型與 scripts ────────────────────────────────────────────
|
||
Source: "..\..\payload\windows\data\*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||
Source: "..\..\payload\windows\scripts\*"; DestDir: "{app}\scripts"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||
|
||
; ── WinUSB driver(Kneron KL520/KL720)────────────────────────────
|
||
Source: "..\..\payload\windows\scripts\drivers\kneron_winusb.inf"; DestDir: "{app}\drivers"; Flags: ignoreversion
|
||
|
||
[Icons]
|
||
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
||
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
|
||
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
||
|
||
[Run]
|
||
; 安裝 WinUSB driver(pnputil 為 Windows 內建)
|
||
Filename: "{sys}\pnputil.exe"; \
|
||
Parameters: "/add-driver ""{app}\drivers\kneron_winusb.inf"" /install"; \
|
||
StatusMsg: "正在安裝 Kneron WinUSB driver..."; \
|
||
Flags: runhidden waituntilterminated
|
||
|
||
; 安裝完畢選擇性啟動 app
|
||
Filename: "{app}\{#MyAppExeName}"; \
|
||
Description: "{cm:LaunchProgram,{#MyAppName}}"; \
|
||
Flags: nowait postinstall skipifsilent
|
||
|
||
[UninstallDelete]
|
||
; 解除安裝時清掉 Python 解壓後的目錄(首次啟動會重建)
|
||
; 但不動 %APPDATA%\visiona-local(使用者資料)
|
||
Type: filesandordirs; Name: "{app}\python\extracted"
|
||
|
||
[Code]
|
||
// 目前保留空殼,未來若要偵測舊版 edge-ai-platform 並建議移除可在此擴充
|
||
function InitializeSetup(): Boolean;
|
||
begin
|
||
Result := True;
|
||
end;
|