91 lines
4.0 KiB
Plaintext
91 lines
4.0 KiB
Plaintext
; ============================================================================
|
||
; smPlayer Windows Installer (Inno Setup 6)
|
||
; ----------------------------------------------------------------------------
|
||
; 用法:
|
||
; 1. 先执行:flutter build windows --release
|
||
; 2. 再执行:iscc installer\sm_emby.iss
|
||
; 或一键: powershell -ExecutionPolicy Bypass -File scripts\build-installer.ps1
|
||
;
|
||
; 命令行可覆盖版本号:iscc /DAppVersion=1.2.3 installer\sm_emby.iss
|
||
; ============================================================================
|
||
|
||
#define AppName "smPlayer"
|
||
#define AppPublisher "smPlayer"
|
||
#define AppExeName "smplayer.exe"
|
||
#define AppId "{{A8E3F1C2-7D5B-4A6E-9C8D-3F2E1B0A9D7C}"
|
||
|
||
#ifndef AppVersion
|
||
#define AppVersion "0.0.15"
|
||
#endif
|
||
|
||
#define ProjectRoot SourcePath + ".."
|
||
#define BuildDir ProjectRoot + "\build\windows\x64\runner\Release"
|
||
#define IconFile ProjectRoot + "\windows\runner\resources\app_icon.ico"
|
||
#define OutputDirAbs ProjectRoot + "\build\installer"
|
||
|
||
[Setup]
|
||
AppId={#AppId}
|
||
AppName={#AppName}
|
||
AppVersion={#AppVersion}
|
||
AppVerName={#AppName} {#AppVersion}
|
||
AppPublisher={#AppPublisher}
|
||
DefaultDirName={autopf}\{#AppName}
|
||
DefaultGroupName={#AppName}
|
||
DisableProgramGroupPage=yes
|
||
DisableDirPage=no
|
||
ArchitecturesInstallIn64BitMode=x64compatible
|
||
ArchitecturesAllowed=x64compatible
|
||
OutputDir={#OutputDirAbs}
|
||
OutputBaseFilename=smplayer-setup-{#AppVersion}-x64
|
||
SetupIconFile={#IconFile}
|
||
UninstallDisplayIcon={app}\{#AppExeName}
|
||
Compression=lzma2/ultra64
|
||
SolidCompression=yes
|
||
WizardStyle=modern
|
||
PrivilegesRequired=admin
|
||
PrivilegesRequiredOverridesAllowed=dialog
|
||
CloseApplications=force
|
||
RestartApplications=no
|
||
MinVersion=10.0
|
||
|
||
[Languages]
|
||
; ChineseSimplified.isl 来自 https://github.com/jrsoftware/issrc (Files/Languages/Unofficial)
|
||
; 已随仓库提交至 installer/lang/ 以避免依赖系统级 Inno Setup 安装
|
||
Name: "chinesesimp"; MessagesFile: "lang\ChineseSimplified.isl"
|
||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||
|
||
[Tasks]
|
||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
||
|
||
[Files]
|
||
; 主可执行文件
|
||
Source: "{#BuildDir}\{#AppExeName}"; DestDir: "{app}"; Flags: ignoreversion
|
||
; 所有 DLL(Flutter 引擎、fvp/MDK、media_kit/mpv、插件等)
|
||
Source: "{#BuildDir}\*.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||
; native_assets 清单
|
||
Source: "{#BuildDir}\native_assets.json"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist
|
||
; data 目录(flutter_assets + icudtl.dat + app.so)
|
||
Source: "{#BuildDir}\data\*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||
|
||
[Icons]
|
||
Name: "{group}\{#AppName}"; Filename: "{app}\{#AppExeName}"
|
||
Name: "{group}\{cm:UninstallProgram,{#AppName}}"; Filename: "{uninstallexe}"
|
||
Name: "{autodesktop}\{#AppName}"; Filename: "{app}\{#AppExeName}"; Tasks: desktopicon
|
||
|
||
[Registry]
|
||
; 自定义 URL scheme:smplayer:// → 本程序(Trakt OAuth 回跳 smplayer://oauth-trakt)。
|
||
; 安装到 HKLM\Software\Classes,正式安装走管理员权限写入。
|
||
; app 已运行时点链接会拉起第二个进程,由 windows/runner/main.cpp 的 SendAppLinkToInstance
|
||
; 把深链转发给已存在窗口后立即退出(app_links 官方单实例范式),不会出现孤立的第二实例。
|
||
Root: HKLM; Subkey: "Software\Classes\smplayer"; ValueType: string; ValueName: ""; ValueData: "URL:smplayer Protocol"; Flags: uninsdeletekey
|
||
Root: HKLM; Subkey: "Software\Classes\smplayer"; ValueType: string; ValueName: "URL Protocol"; ValueData: ""
|
||
Root: HKLM; Subkey: "Software\Classes\smplayer\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#AppExeName},0"
|
||
Root: HKLM; Subkey: "Software\Classes\smplayer\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#AppExeName}"" ""%1"""
|
||
|
||
[Run]
|
||
Filename: "{app}\{#AppExeName}"; Description: "{cm:LaunchProgram,{#AppName}}"; Flags: nowait postinstall skipifsilent
|
||
|
||
[UninstallDelete]
|
||
; 清理用户数据目录(可选;如需保留用户配置可注释掉)
|
||
; Type: filesandordirs; Name: "{userappdata}\sm_emby"
|