2017-09-11 10:49:25 +00:00
|
|
|
|
2021-01-03 12:24:56 +00:00
|
|
|
#define SRC_PATH AddBackslash(SourcePath) + "..\src"
|
|
|
|
|
2021-02-08 09:09:22 +00:00
|
|
|
#include SRC_PATH + "\version\fort_version.h"
|
2017-09-11 10:49:25 +00:00
|
|
|
|
2021-03-31 12:42:36 +00:00
|
|
|
#define APP_EXE_NAME APP_BASE + ".exe"
|
|
|
|
#define APP_ICO_NAME APP_BASE + ".ico"
|
2021-03-31 12:53:03 +00:00
|
|
|
#define APP_SVC_NAME APP_BASE + "Svc"
|
2017-09-11 10:49:25 +00:00
|
|
|
|
2021-03-24 14:05:30 +00:00
|
|
|
#define APP_EXE StringChange("{app}\%exe%", "%exe%", APP_EXE_NAME)
|
|
|
|
|
2017-09-11 10:49:25 +00:00
|
|
|
[Setup]
|
|
|
|
; NOTE: The value of AppId uniquely identifies this application.
|
|
|
|
; Do not use the same AppId value in installers for other applications.
|
|
|
|
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
|
2021-04-01 08:50:58 +00:00
|
|
|
SetupMutex=Global\{#APP_BASE}Setup
|
2021-05-15 18:56:53 +00:00
|
|
|
; TODO: COMPAT: Remove {#APP_NAME} from AppMutex after v4.1.0
|
2021-05-15 08:45:13 +00:00
|
|
|
AppMutex={#APP_NAME},{#APP_BASE}
|
2017-09-11 10:49:25 +00:00
|
|
|
AppName={#APP_NAME}
|
|
|
|
AppVersion={#APP_VERSION_STR}
|
2019-04-24 17:41:11 +00:00
|
|
|
VersionInfoVersion={#APP_VERSION_STR}
|
2017-09-11 10:49:25 +00:00
|
|
|
AppVerName={#APP_NAME}
|
2019-04-24 17:41:11 +00:00
|
|
|
AppCopyright={#APP_LEGALCOPYRIGHT}
|
2017-09-11 10:49:25 +00:00
|
|
|
AppPublisher={#APP_PUBLISHER}
|
|
|
|
AppPublisherURL={#APP_URL}
|
|
|
|
AppSupportURL={#APP_URL}
|
|
|
|
AppUpdatesURL={#APP_UPDATES_URL}
|
|
|
|
DefaultGroupName={#APP_NAME}
|
|
|
|
DefaultDirName={pf32}\{#APP_NAME}
|
|
|
|
AlwaysShowDirOnReadyPage=yes
|
|
|
|
AlwaysShowGroupOnReadyPage=yes
|
|
|
|
AllowNoIcons=yes
|
2021-05-15 08:21:08 +00:00
|
|
|
OutputDir=out
|
2021-03-31 12:42:36 +00:00
|
|
|
OutputBaseFilename={#APP_BASE}-{#APP_VERSION_STR}
|
2019-03-10 18:03:59 +00:00
|
|
|
Uninstallable=not IsTaskSelected('portable')
|
2017-09-11 10:49:25 +00:00
|
|
|
UninstallFilesDir={app}\uninst
|
2021-01-03 12:24:56 +00:00
|
|
|
UninstallDisplayIcon={uninstallexe}
|
2021-05-10 08:32:58 +00:00
|
|
|
SetupIconFile={#SRC_PATH}\ui_bin\{#APP_ICO_NAME}
|
2017-09-11 10:49:25 +00:00
|
|
|
ArchitecturesInstallIn64BitMode=x64
|
|
|
|
Compression=lzma2/ultra
|
|
|
|
SolidCompression=yes
|
|
|
|
|
|
|
|
[Languages]
|
2017-09-14 04:33:29 +00:00
|
|
|
Name: en; MessagesFile: "compiler:Default.isl"
|
|
|
|
Name: ru; MessagesFile: "compiler:Languages\Russian.isl"
|
2021-04-22 11:45:45 +00:00
|
|
|
Name: fr; MessagesFile: "compiler:Languages\French.isl"
|
2021-04-25 14:01:31 +00:00
|
|
|
Name: de; MessagesFile: "compiler:Languages\German.isl"
|
2021-04-22 11:45:45 +00:00
|
|
|
Name: ko; MessagesFile: "compiler:Languages\Korean.isl"
|
2021-04-26 14:47:59 +00:00
|
|
|
Name: pt; MessagesFile: "compiler:Languages\Portuguese.isl"
|
2017-09-14 04:33:29 +00:00
|
|
|
|
2019-03-10 18:03:59 +00:00
|
|
|
[Tasks]
|
2021-05-23 19:00:11 +00:00
|
|
|
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"
|
|
|
|
Name: "explorer"; Description: "Windows Explorer"
|
|
|
|
Name: "service"; Description: "Windows Service"
|
2019-03-10 18:03:59 +00:00
|
|
|
Name: "portable"; Description: "Portable"; Flags: unchecked
|
|
|
|
|
2017-09-11 10:49:25 +00:00
|
|
|
[Files]
|
2019-04-08 11:39:00 +00:00
|
|
|
Source: "build\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
2021-06-17 16:12:00 +00:00
|
|
|
Source: "{#APP_EXE_NAME}.example.ini"; DestDir: "{app}"; Flags: ignoreversion
|
2017-09-11 10:49:25 +00:00
|
|
|
|
|
|
|
[Icons]
|
|
|
|
; Start menu shortcut
|
2021-03-24 14:05:30 +00:00
|
|
|
Name: "{group}\{#APP_NAME}"; Filename: "{#APP_EXE}"; WorkingDir: "{app}"; Parameters: "--lang {code:LanguageName}"
|
2017-09-13 11:08:27 +00:00
|
|
|
; Uninstaller shortcut
|
2019-04-11 04:58:43 +00:00
|
|
|
Name: "{group}\{cm:UninstallProgram,{#APP_NAME}}"; Filename: "{uninstallexe}"
|
2019-03-14 02:50:05 +00:00
|
|
|
; Desktop shortcut
|
2021-03-24 14:05:30 +00:00
|
|
|
Name: "{commondesktop}\{#APP_NAME}"; Filename: "{#APP_EXE}"; WorkingDir: "{app}"; \
|
|
|
|
Parameters: "--lang {code:LanguageName}"; Tasks: desktopicon
|
2017-09-11 10:49:25 +00:00
|
|
|
|
|
|
|
[Run]
|
2021-05-23 19:00:11 +00:00
|
|
|
; 1. Uninstall -> 2. Install Driver -> 3. Portable -> 4. Service
|
2021-05-23 13:44:02 +00:00
|
|
|
Filename: "{#APP_EXE}"; Parameters: "-u"
|
|
|
|
Filename: "{app}\driver\scripts\reinstall.bat"; Description: "Re-install driver"
|
|
|
|
|
|
|
|
Filename: "{#APP_EXE}"; Parameters: "-i portable"; Tasks: portable
|
|
|
|
Filename: "{#APP_EXE}"; Parameters: "-i service"; Tasks: service
|
|
|
|
Filename: "{#APP_EXE}"; Parameters: "-i explorer"; Tasks: explorer
|
|
|
|
|
|
|
|
Filename: "sc.exe"; Parameters: "start {#APP_SVC_NAME}"; Description: "Start service"; \
|
|
|
|
Flags: nowait; Tasks: service
|
2021-04-22 14:00:06 +00:00
|
|
|
|
2020-10-30 16:25:30 +00:00
|
|
|
Filename: "https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads"; \
|
2021-04-22 14:00:06 +00:00
|
|
|
Description: "Install the latest Visual C++ x86 redistributable!"; Flags: shellexec postinstall; \
|
|
|
|
Check: not VCRedist86Exists()
|
2017-09-11 10:49:25 +00:00
|
|
|
|
|
|
|
[UninstallRun]
|
2021-05-23 13:44:02 +00:00
|
|
|
Filename: "{#APP_EXE}"; Parameters: "-u"; RunOnceId: "Uninstall"
|
|
|
|
Filename: "{app}\driver\scripts\uninstall.bat"; RunOnceId: "DelDriver"
|
2017-09-11 10:49:25 +00:00
|
|
|
|
2018-02-19 15:02:13 +00:00
|
|
|
[InstallDelete]
|
2021-03-26 11:48:11 +00:00
|
|
|
Type: filesandordirs; Name: "{app}\driver"
|
|
|
|
Type: filesandordirs; Name: "{app}\i18n"
|
|
|
|
Type: filesandordirs; Name: "{app}\plugins"
|
2021-08-28 14:46:24 +00:00
|
|
|
; TODO: COMPAT: Remove the following line after v4.1.0
|
2021-03-26 11:48:11 +00:00
|
|
|
Type: files; Name: "{app}\curl*.*"
|
|
|
|
Type: files; Name: "{app}\qt*.*"
|
|
|
|
Type: files; Name: "{app}\README*.*"
|
2018-02-19 15:02:13 +00:00
|
|
|
|
2020-01-25 05:54:25 +00:00
|
|
|
[Code]
|
2021-05-15 08:45:13 +00:00
|
|
|
function PrepareToInstall(var NeedsRestart: Boolean): String;
|
2021-03-31 12:53:03 +00:00
|
|
|
var
|
|
|
|
ResultCode: Integer;
|
|
|
|
begin
|
2021-05-14 12:29:46 +00:00
|
|
|
if Exec('sc.exe', ExpandConstant('stop {#APP_SVC_NAME}'), '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
|
2021-05-23 13:44:02 +00:00
|
|
|
if ResultCode = 0 then Sleep(100); // Let the service to stop
|
2021-05-15 08:45:13 +00:00
|
|
|
Result := '';
|
2021-03-31 12:53:03 +00:00
|
|
|
end;
|
|
|
|
|
2020-01-25 05:54:25 +00:00
|
|
|
function LanguageName(Param: String): String;
|
|
|
|
begin
|
|
|
|
Result := ActiveLanguage;
|
|
|
|
end;
|
2021-04-22 14:00:06 +00:00
|
|
|
|
|
|
|
function VCRedist86Exists(): Boolean;
|
|
|
|
begin
|
|
|
|
Result := FileExists(ExpandConstant('{syswow64}\vcruntime140.dll'));
|
|
|
|
end;
|