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"
|