aboutsummaryrefslogtreecommitdiff
path: root/dists/win32
diff options
context:
space:
mode:
authorLothar Serra Mari2018-09-05 03:46:42 +0200
committerKirben2018-09-05 11:46:42 +1000
commitf10816d9ed0b74b478799a96f26ee8f3f42f9ee2 (patch)
treee637f3b6da1d85d2d0cdfda6f0b88138586eb70b /dists/win32
parentb26abc79269745c99849ab4addd5a0afbf026846 (diff)
downloadscummvm-rg350-f10816d9ed0b74b478799a96f26ee8f3f42f9ee2.tar.gz
scummvm-rg350-f10816d9ed0b74b478799a96f26ee8f3f42f9ee2.tar.bz2
scummvm-rg350-f10816d9ed0b74b478799a96f26ee8f3f42f9ee2.zip
WIN32: Rewrite Inno setup installer script. (#1324)
* WIN32: Rewrite Inno setup installer * WIN32: Add small bmp for usage in the Inno setup script * WIN32: Fix spacing in Inno setup script * WIN32: Re-add the documentation files to the Start Menu * WIN32: Add scummvm icon to the Inno setup uninstaller * WIN32: Remove now obsolete scummvm.iss.in file * WIN32: Remove reference to Inno installer in update-version.pl * WIN32: Add reference to Inno setup bmp file in ports.mk
Diffstat (limited to 'dists/win32')
-rw-r--r--dists/win32/ScummVM.iss496
-rw-r--r--dists/win32/ScummVM.iss.in251
-rw-r--r--dists/win32/graphics/scummvm-install.bmpbin0 -> 196662 bytes
3 files changed, 266 insertions, 481 deletions
diff --git a/dists/win32/ScummVM.iss b/dists/win32/ScummVM.iss
index 2c9f74db24..786c10164c 100644
--- a/dists/win32/ScummVM.iss
+++ b/dists/win32/ScummVM.iss
@@ -1,251 +1,287 @@
-#define AppName "ScummVM"
-
-[Setup]
-AppCopyright=2018
-AppName={#AppName}
-AppVersion=2.1.0git
-AppVerName={#AppName} 2.1.0git
-AppPublisher=The ScummVM Team
-AppPublisherURL=http://www.scummvm.org/
-AppSupportURL=http://www.scummvm.org/
-AppUpdatesURL=http://www.scummvm.org/
-DefaultDirName={pf}\{#AppName}
-DefaultGroupName={#AppName}
-AllowNoIcons=true
-AlwaysUsePersonalGroup=false
-EnableDirDoesntExistWarning=false
-Compression=lzma
-OutputDir=C:\{#AppName}
-OutputBaseFilename=scummvm-win32
-DisableStartupPrompt=true
-AppendDefaultDirName=false
-SolidCompression=true
-DirExistsWarning=no
-SetupIconFile=graphics\scummvm-install.ico
-WizardImageFile=graphics\left.bmp
-ShowLanguageDialog=yes
-LanguageDetectionMethod=uilanguage
-PrivilegesRequired=none
-
-; This privilege escalation code comes from
-; https://stackoverflow.com/a/35435534/252087
-
-#define InnoSetupReg \
- "Software\Microsoft\Windows\CurrentVersion\Uninstall\" + AppName + "_is1"
-#define InnoSetupAppPathReg "Inno Setup: App Path"
-
-[Code]
-function IsWinVista: Boolean;
-begin
- Result := (GetWindowsVersion >= $06000000);
-end;
-
-function IsElevated: Boolean;
-begin
- Result := IsAdminLoggedOn or IsPowerUserLoggedOn;
-end;
-
-function HaveWriteAccessToApp: Boolean;
-var
- FileName: string;
-begin
- FileName := AddBackslash(WizardDirValue) + 'writetest.tmp';
- Result := SaveStringToFile(FileName, 'test', False);
- if Result then
- begin
- Log(Format(
- 'Have write access to the last installation path [%s]', [WizardDirValue]));
- DeleteFile(FileName);
- end
- else
- begin
- Log(Format('Does not have write access to the last installation path [%s]', [
- WizardDirValue]));
- end;
-end;
-
-procedure ExitProcess(uExitCode: UINT);
- external 'ExitProcess@kernel32.dll stdcall';
-function ShellExecute(hwnd: HWND; lpOperation: string; lpFile: string;
- lpParameters: string; lpDirectory: string; nShowCmd: Integer): THandle;
- external 'ShellExecuteW@shell32.dll stdcall';
-
-function Elevate: Boolean;
-var
- I: Integer;
- RetVal: Integer;
- Params: string;
- S: string;
-begin
- { Collect current instance parameters }
- for I := 1 to ParamCount do
- begin
- S := ParamStr(I);
- { Unique log file name for the elevated instance }
- if CompareText(Copy(S, 1, 5), '/LOG=') = 0 then
- begin
- S := S + '-elevated';
- end;
- { Do not pass our /SL5 switch }
- if CompareText(Copy(S, 1, 5), '/SL5=') <> 0 then
- begin
- Params := Params + AddQuotes(S) + ' ';
- end;
- end;
-
- { ... and add selected language }
- Params := Params + '/LANG=' + ActiveLanguage;
-
- Log(Format('Elevating setup with parameters [%s]', [Params]));
- RetVal := ShellExecute(0, 'runas', ExpandConstant('{srcexe}'), Params, '', SW_SHOW);
- Log(Format('Running elevated setup returned [%d]', [RetVal]));
- Result := (RetVal > 32);
- { if elevated executing of this setup succeeded, then... }
- if Result then
- begin
- Log('Elevation succeeded');
- { exit this non-elevated setup instance }
- ExitProcess(0);
- end
- else
- begin
- Log(Format('Elevation failed [%s]', [SysErrorMessage(RetVal)]));
- end;
-end;
-
-procedure InitializeWizard;
-var
- S: string;
- Upgrade: Boolean;
-begin
- Upgrade :=
- RegQueryStringValue(HKLM, '{#InnoSetupReg}', '{#InnoSetupAppPathReg}', S) or
- RegQueryStringValue(HKCU, '{#InnoSetupReg}', '{#InnoSetupAppPathReg}', S);
-
- { elevate }
-
- if not IsWinVista then
- begin
- Log(Format('This version of Windows [%x] does not support elevation', [
- GetWindowsVersion]));
- end
- else
- if IsElevated then
- begin
- Log('Running elevated');
- end
- else
- begin
- Log('Running non-elevated');
- if Upgrade then
- begin
- if not HaveWriteAccessToApp then
- begin
- Elevate;
- end;
- end
- else
- begin
- if not Elevate then
- begin
- WizardForm.DirEdit.Text := ExpandConstant('{localappdata}\{#AppName}');
- Log(Format('Falling back to local application user folder [%s]', [
- WizardForm.DirEdit.Text]));
- end;
- end;
- end;
-end;
+#define AppName "ScummVM"
+#define FileVersion=GetFileVersion('scummvm.exe')
+#define ProductVersion=GetStringFileInfo('scummvm.exe', 'ProductVersion')
+#define Copyright=GetStringFileInfo('scummvm.exe', 'LegalCopyright')
+
+[Setup]
+AppCopyright={#Copyright}
+AppName={#AppName}
+AppVersion={#ProductVersion}
+VersionInfoVersion={#FileVersion}
+AppVerName={#AppName} {#ProductVersion}
+AppPublisher=The ScummVM Team
+AppPublisherURL=http://www.scummvm.org/
+AppSupportURL=http://www.scummvm.org/
+AppUpdatesURL=http://www.scummvm.org/
+DefaultDirName={pf}\{#AppName}
+DefaultGroupName={#AppName}
+AllowNoIcons=true
+AlwaysUsePersonalGroup=false
+EnableDirDoesntExistWarning=false
+Compression=lzma2/ultra
+OutputDir=C:\{#AppName}
+OutputBaseFilename=scummvm-win32
+DisableStartupPrompt=true
+AppendDefaultDirName=false
+SolidCompression=true
+DirExistsWarning=no
+SetupIconFile=graphics\scummvm-install.ico UninstallDisplayIcon={app}\scummvm.exe
+WizardImageFile=graphics\left.bmp
+WizardSmallImageFile=graphics\scummvm-install.bmp
+ShowLanguageDialog=yes
+LanguageDetectionMethod=uilanguage
+PrivilegesRequired=none
+DisableWelcomePage=False
+
+
+; This privilege escalation code comes from
+; https://stackoverflow.com/a/35435534/252087
+
+#define InnoSetupReg \
+ "Software\Microsoft\Windows\CurrentVersion\Uninstall\" + AppName + "_is1"
+#define InnoSetupAppPathReg "Inno Setup: App Path"
+
+[Code]
+function IsWinVista: Boolean;
+begin
+ Result := (GetWindowsVersion >= $06000000);
+end;
+
+function IsElevated: Boolean;
+begin
+ Result := IsAdminLoggedOn or IsPowerUserLoggedOn;
+end;
+
+function HaveWriteAccessToApp: Boolean;
+var
+ FileName: string;
+begin
+ FileName := AddBackslash(WizardDirValue) + 'writetest.tmp';
+ Result := SaveStringToFile(FileName, 'test', False);
+ if Result then
+ begin
+ Log(Format(
+ 'Have write access to the last installation path [%s]', [WizardDirValue]));
+ DeleteFile(FileName);
+ end
+ else
+ begin
+ Log(Format('Does not have write access to the last installation path [%s]', [
+ WizardDirValue]));
+ end;
+end;
+
+procedure ExitProcess(uExitCode: UINT);
+ external 'ExitProcess@kernel32.dll stdcall';
+function ShellExecute(hwnd: HWND; lpOperation: string; lpFile: string;
+ lpParameters: string; lpDirectory: string; nShowCmd: Integer): THandle;
+ external 'ShellExecuteW@shell32.dll stdcall';
+
+function Elevate: Boolean;
+var
+ I: Integer;
+ RetVal: Integer;
+ Params: string;
+ S: string;
+begin
+ { Collect current instance parameters }
+ for I := 1 to ParamCount do
+ begin
+ S := ParamStr(I);
+ { Unique log file name for the elevated instance }
+ if CompareText(Copy(S, 1, 5), '/LOG=') = 0 then
+ begin
+ S := S + '-elevated';
+ end;
+ { Do not pass our /SL5 switch }
+ if CompareText(Copy(S, 1, 5), '/SL5=') <> 0 then
+ begin
+ Params := Params + AddQuotes(S) + ' ';
+ end;
+ end;
+
+ { ... and add selected language }
+ Params := Params + '/LANG=' + ActiveLanguage;
+
+ Log(Format('Elevating setup with parameters [%s]', [Params]));
+ RetVal := ShellExecute(0, 'runas', ExpandConstant('{srcexe}'), Params, '', SW_SHOW);
+ Log(Format('Running elevated setup returned [%d]', [RetVal]));
+ Result := (RetVal > 32);
+ { if elevated executing of this setup succeeded, then... }
+ if Result then
+ begin
+ Log('Elevation succeeded');
+ { exit this non-elevated setup instance }
+ ExitProcess(0);
+ end
+ else
+ begin
+ Log(Format('Elevation failed [%s]', [SysErrorMessage(RetVal)]));
+ end;
+end;
+
+procedure InitializeWizard;
+var
+ S: string;
+ Upgrade: Boolean;
+begin
+ Upgrade :=
+ RegQueryStringValue(HKLM, '{#InnoSetupReg}', '{#InnoSetupAppPathReg}', S) or
+ RegQueryStringValue(HKCU, '{#InnoSetupReg}', '{#InnoSetupAppPathReg}', S);
+
+ { elevate }
+
+ if not IsWinVista then
+ begin
+ Log(Format('This version of Windows [%x] does not support elevation', [
+ GetWindowsVersion]));
+ end
+ else
+ if IsElevated then
+ begin
+ Log('Running elevated');
+ end
+ else
+ begin
+ Log('Running non-elevated');
+ if Upgrade then
+ begin
+ if not HaveWriteAccessToApp then
+ begin
+ Elevate;
+ end;
+ end
+ else
+ begin
+ if not Elevate then
+ begin
+ WizardForm.DirEdit.Text := ExpandConstant('{localappdata}\{#AppName}');
+ Log(Format('Falling back to local application user folder [%s]', [
+ WizardForm.DirEdit.Text]));
+ end;
+ end;
+ end;
+end;
+
[Languages]
-Name: en; MessagesFile: compiler:Default.isl
-Name: br; MessagesFile: compiler:Languages\BrazilianPortuguese.isl
-Name: ca; MessagesFile: compiler:Languages\Catalan.isl
-Name: cz; MessagesFile: compiler:Languages\Czech.isl
-Name: da; MessagesFile: compiler:Languages\Danish.isl
-Name: fr; MessagesFile: compiler:Languages\French.isl
-Name: de; MessagesFile: compiler:Languages\German.isl
-Name: hu; MessagesFile: compiler:Languages\Hungarian.isl
-Name: it; MessagesFile: compiler:Languages\Italian.isl
-Name: nb; MessagesFile: compiler:Languages\Norwegian.isl
-Name: pl; MessagesFile: compiler:Languages\Polish.isl
-Name: ru; MessagesFile: compiler:Languages\Russian.isl
-Name: es; MessagesFile: compiler:Languages\Spanish.isl
-Name: se; MessagesFile: compiler:Languages\Swedish.isl
+Name: english; MessagesFile: compiler:Default.isl
+Name: portuguese; MessagesFile: compiler:Languages\BrazilianPortuguese.isl
+Name: catalan; MessagesFile: compiler:Languages\Catalan.isl
+Name: czech; MessagesFile: compiler:Languages\Czech.isl
+Name: danish; MessagesFile: compiler:Languages\Danish.isl
+Name: french; MessagesFile: compiler:Languages\French.isl
+Name: german; MessagesFile: compiler:Languages\German.isl
+Name: hungarian; MessagesFile: compiler:Languages\Hungarian.isl
+Name: italian; MessagesFile: compiler:Languages\Italian.isl
+Name: norwegian; MessagesFile: compiler:Languages\Norwegian.isl
+Name: polish; MessagesFile: compiler:Languages\Polish.isl
+Name: russian; MessagesFile: compiler:Languages\Russian.isl
+Name: spanish; MessagesFile: compiler:Languages\Spanish.isl
+Name: swedish; MessagesFile: compiler:Languages\Swedish.isl
+Name: basque; MessagesFile: compiler:Languages\Basque.isl
+Name: belarusian; MessagesFile: compiler:Languages\Belarusian.isl
+Name: dutch; MessagesFile: compiler:Languages\Dutch.isl
+Name: finnish; MessagesFile: compiler:Languages\Finnish.isl
+Name: galician; MessagesFile: compiler:Languages\Galician.isl
+Name: greek; MessagesFile: compiler:Languages\Greek.isl
+Name: polish; MessagesFile: compiler:Languages\Polish.isl
+Name: ukrainian; MessagesFile: compiler:Languages\Ukrainian.isl
-[Icons]
+[Tasks]
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
+
+[Icons]
+; Optional desktop icon
+Name: "{userdesktop}\ScummVM"; Filename: "{app}\scummvm.exe"; Tasks: desktopicon
+
+; Start menu icons
+; General
Name: {group}\{cm:UninstallProgram, ScummVM}; Filename: {uninstallexe}
Name: {group}\ScummVM; Filename: {app}\scummvm.exe; WorkingDir: {app}; Comment: scummvm; Flags: createonlyiffileexists; IconIndex: 0
-Name: {group}\ScummVM (noconsole); Filename: {app}\scummvm.exe; Parameters: "--no-console"; WorkingDir: {app}; Comment: scummvm; Flags: createonlyiffileexists; IconIndex: 0; Languages: not de
-Name: {group}\ScummVM (ohne Konsolenfenster); Filename: {app}\scummvm.exe; Parameters: "--no-console"; WorkingDir: {app}; Comment: scummvm; Flags: createonlyiffileexists; IconIndex:0; Languages: de
-Name: {group}\Authors; Filename: {app}\AUTHORS.txt; WorkingDir: {app}; Comment: AUTHORS; Flags: createonlyiffileexists; Languages: not de
-Name: {group}\Mitwirkende; Filename: {app}\AUTHORS.txt; WorkingDir: {app}; Comment: AUTHORS; Flags: createonlyiffileexists; Languages: de
-Name: {group}\Copying; Filename: {app}\COPYING.txt; WorkingDir: {app}; Comment: COPYING; Flags: createonlyiffileexists
-Name: {group}\Copying.BSD; Filename: {app}\COPYING.BSD.txt; WorkingDir: {app}; Comment: COPYING.BSD; Flags: createonlyiffileexists
-Name: {group}\Copying.FREEFONT; Filename: {app}\COPYING.FREEFONT.txt; WorkingDir: {app}; Comment: COPYING.FREEFONT; Flags: createonlyiffileexists
-Name: {group}\Copying.LGPL; Filename: {app}\COPYING.LGPL.txt; WorkingDir: {app}; Comment: COPYING.LGPL; Flags: createonlyiffileexists
-Name: {group}\Copyright; Filename: {app}\COPYRIGHT.txt; WorkingDir: {app}; Comment: COPYRIGHT; Flags: createonlyiffileexists
-;NEWS
-Name: {group}\News; Filename: {app}\NEWS.txt; WorkingDir: {app}; Comment: NEWS; Flags: createonlyiffileexists; Languages: not de
-Name: {group}\Neues; Filename: {app}\NEUES.txt; WorkingDir: {app}; Comment: NEUES; Flags: createonlyiffileexists; Languages: de
-;QUICKSTART
-Name: {group}\Schnellstart; Filename: {app}\Schnellstart.txt; WorkingDir: {app}; Comment: Schnellstart; Flags: createonlyiffileexists; Languages: de
-Name: {group}\InicioRapido; Filename: {app}\InicioRapido.txt; WorkingDir: {app}; Comment: InicioRapido; Flags: createonlyiffileexists; Languages: es
-Name: {group}\DemarrageRapide; Filename: {app}\DemarrageRapide.txt; WorkingDir: {app}; Comment: DemarrageRapide; Flags: createonlyiffileexists; Languages: fr
-Name: {group}\GuidaRapida; Filename: {app}\GuidaRapida.txt; WorkingDir: {app}; Comment: GuidaRapida; Flags: createonlyiffileexists; Languages: it
-Name: {group}\HurtigStart; Filename: {app}\HurtigStart.txt; WorkingDir: {app}; Comment: HurtigStart; Flags: createonlyiffileexists; Languages: nb
-Name: {group}\Snabbstart; Filename: {app}\Snabbstart.txt; WorkingDir: {app}; Comment: Snabbstart; Flags: createonlyiffileexists; Languages: se
-;README
-Name: {group}\Readme; Filename: {app}\README.txt; WorkingDir: {app}; Comment: README; Flags: createonlyiffileexists; Languages: not (cz or de or se)
-Name: {group}\PrectiMe; Filename: {app}\PrectiMe.txt; WorkingDir: {app}; Comment: PrectiMe; Flags: createonlyiffileexists; Languages: cz
-Name: {group}\Liesmich; Filename: {app}\LIESMICH.txt; WorkingDir: {app}; Comment: LIESMICH; Flags: createonlyiffileexists; Languages: de
-Name: {group}\LasMig; Filename: {app}\LasMig.txt; WorkingDir: {app}; Comment: LasMig; Flags: createonlyiffileexists; Languages: se
-
-Name: {group}\Saved Games\Migrate Saved Games; Filename: {app}\migration.bat; WorkingDir: {app}; Comment: Migrate Saved Games; IconIndex: 0; MinVersion: 0, 1; Languages: not de
-Name: {group}\Spielstände\Spielstände migrieren; Filename: {app}\migration.bat; WorkingDir: {app}; Comment: Spielstände migrieren; IconIndex: 0; MinVersion: 0, 1; Languages: de
-Name: {group}\Saved Games\Saved Games (old default); Filename: {app}; WorkingDir: {app}; Comment: Saved Games (old default); IconIndex: 0; MinVersion: 0, 1; Languages: not de
-Name: {group}\Spielstände\Spielstände (alter Standard); Filename: {app}; WorkingDir: {app}; Comment: Spielstände (alter Standard); IconIndex: 0; MinVersion: 0, 1; Languages: de
-Name: {group}\Saved Games\Saved Games (new default); Filename: {userappdata}\ScummVM\Saved Games; WorkingDir: {userappdata}\ScummVM\Saved Games; Comment: Saved Games (new default); IconIndex: 0; MinVersion: 0, 1; Languages: not de
-Name: {group}\Spielstände\Spielstände; Filename: {userappdata}\ScummVM\Saved Games; WorkingDir: {userappdata}\ScummVM\Saved Games; Comment: Spielstände; IconIndex: 0; MinVersion: 0, 1; Languages: de
+Name: {group}\ScummVM (noconsole); Filename: {app}\scummvm.exe; Parameters: "--no-console"; WorkingDir: {app}; Comment: scummvm; Flags: createonlyiffileexists; IconIndex: 0; Languages: not german
+Name: {group}\ScummVM (ohne Konsolenfenster); Filename: {app}\scummvm.exe; Parameters: "--no-console"; WorkingDir: {app}; Comment: scummvm; Flags: createonlyiffileexists; IconIndex:0; Languages: german
+Name: {group}\Saved Games\Saved Games; Filename: {userappdata}\ScummVM\Saved Games; WorkingDir: {userappdata}\ScummVM\Saved Games; Comment: Saved Games; IconIndex: 0; MinVersion: 0, 1; Languages: not german
+Name: {group}\Spielstände\Spielstände; Filename: {userappdata}\ScummVM\Saved Games; WorkingDir: {userappdata}\ScummVM\Saved Games; Comment: Spielstände; IconIndex: 0; MinVersion: 0, 1; Languages: german
+Name: {group}\Saved Games\Saved Games (old default); Filename: {app}; WorkingDir: {app}; Comment: Saved Games (old default); IconIndex: 0; MinVersion: 0, 1; Languages: not german
+Name: {group}\Spielstände\Spielstände (alter Standard); Filename: {app}; WorkingDir: {app}; Comment: Spielstände (alter Standard); IconIndex: 0; MinVersion: 0, 1; Languages: german
+
+; DOCUMENTATION
+Name: {group}\Authors; Filename: {app}\AUTHORS.txt; WorkingDir: {app}; Comment: AUTHORS; Flags: createonlyiffileexists; Languages: not german
+Name: {group}\Mitwirkende; Filename: {app}\AUTHORS.txt; WorkingDir: {app}; Comment: AUTHORS; Flags: createonlyiffileexists; Languages: german
+Name: {group}\Copying; Filename: {app}\COPYING.txt; WorkingDir: {app}; Comment: COPYING; Flags: createonlyiffileexists
+Name: {group}\Copying.BSD; Filename: {app}\COPYING.BSD.txt; WorkingDir: {app}; Comment: COPYING.BSD; Flags: createonlyiffileexists
+Name: {group}\Copying.FREEFONT; Filename: {app}\COPYING.FREEFONT.txt; WorkingDir: {app}; Comment: COPYING.FREEFONT; Flags: createonlyiffileexists
+Name: {group}\Copying.LGPL; Filename: {app}\COPYING.LGPL.txt; WorkingDir: {app}; Comment: COPYING.LGPL; Flags: createonlyiffileexists
+Name: {group}\Copyright; Filename: {app}\COPYRIGHT.txt; WorkingDir: {app}; Comment: COPYRIGHT; Flags: createonlyiffileexists
+
+; NEWS
+Name: {group}\News; Filename: {app}\NEWS.txt; WorkingDir: {app}; Comment: NEWS; Flags: createonlyiffileexists; Languages: not german
+Name: {group}\Neues; Filename: {app}\NEUES.txt; WorkingDir: {app}; Comment: NEUES; Flags: createonlyiffileexists; Languages: german
+
+; QUICKSTART
+Name: {group}\Schnellstart; Filename: {app}\Schnellstart.txt; WorkingDir: {app}; Comment: Schnellstart; Flags: createonlyiffileexists; Languages: german
+Name: {group}\InicioRapido; Filename: {app}\InicioRapido.txt; WorkingDir: {app}; Comment: InicioRapido; Flags: createonlyiffileexists; Languages: spanish
+Name: {group}\DemarrageRapide; Filename: {app}\DemarrageRapide.txt; WorkingDir: {app}; Comment: DemarrageRapide; Flags: createonlyiffileexists; Languages: french
+Name: {group}\GuidaRapida; Filename: {app}\GuidaRapida.txt; WorkingDir: {app}; Comment: GuidaRapida; Flags: createonlyiffileexists; Languages: italian
+Name: {group}\HurtigStart; Filename: {app}\HurtigStart.txt; WorkingDir: {app}; Comment: HurtigStart; Flags: createonlyiffileexists; Languages: norwegian
+Name: {group}\Snabbstart; Filename: {app}\Snabbstart.txt; WorkingDir: {app}; Comment: Snabbstart; Flags: createonlyiffileexists; Languages: swedish
+
+; README
+Name: {group}\Readme; Filename: {app}\README.txt; WorkingDir: {app}; Comment: README; Flags: createonlyiffileexists; Languages: not (czech or german or swedish)
+Name: {group}\PrectiMe; Filename: {app}\PrectiMe.txt; WorkingDir: {app}; Comment: PrectiMe; Flags: createonlyiffileexists; Languages: czech
+Name: {group}\Liesmich; Filename: {app}\LIESMICH.txt; WorkingDir: {app}; Comment: LIESMICH; Flags: createonlyiffileexists; Languages: german
+Name: {group}\LasMig; Filename: {app}\LasMig.txt; WorkingDir: {app}; Comment: LasMig; Flags: createonlyiffileexists; Languages: swedish
[Run]
-Filename: {app}\ScummVM.exe; Flags: nowait skipifdoesntexist postinstall skipifsilent
-;Creates a symbolic link for standard save games area, under Windows Vista/7
-Filename: {cmd}; Parameters: "/c ""mklink /d ""%userprofile%\Saved Games\ScummVM"" ""%appdata%\ScummVM\Saved games"" "" "; MinVersion: 0, 6.1
+Filename: {app}\ScummVM.exe; Flags: nowait skipifdoesntexist postinstall skipifsilent
+
+; Creates a symbolic link for standard save games area, under Windows Vista and higher
+; Filename: {cmd}; Parameters: "/c ""mklink /d ""%userprofile%\Saved Games\ScummVM"" ""%appdata%\ScummVM\Saved games"" "" "; MinVersion: 0, 6.1
[UninstallDelete]
Type: files; Name: {app}\ISTool.url
[Dirs]
-Name: "{userappdata}\ScummVM"; MinVersion: 0, 1
-Name: "{userappdata}\ScummVM\Saved Games"; MinVersion: 0, 1
+Name: "{userappdata}\ScummVM"; MinVersion: 0, 1
+
+; Create the Saved Games folder and prevent it from being deleted during an uninstall process
+Name: "{userappdata}\ScummVM\Saved Games"; MinVersion: 0, 1; Flags: uninsneveruninstall
-[Files]
+[Files]
+; AUTHORS and LICENSING
Source: AUTHORS.txt; DestDir: {app}; Flags: ignoreversion
Source: COPYING.txt; DestDir: {app}; Flags: ignoreversion
Source: COPYING.BSD.txt; DestDir: {app}; Flags: ignoreversion
Source: COPYING.FREEFONT.txt; DestDir: {app}; Flags: ignoreversion
Source: COPYING.LGPL.txt; DestDir: {app}; Flags: ignoreversion
-Source: COPYRIGHT.txt; DestDir: {app}; Flags: ignoreversion
-;NEWS
-Source: NEWS.txt; DestDir: {app}; Flags: ignoreversion; Languages: not de
-Source: doc/de/NEUES.txt; DestDir: {app}; Flags: ignoreversion; Languages: de
-;QUICKSTART
-Source: doc/de/Schnellstart.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: de
-Source: doc/es/InicioRapido.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: es
-Source: doc/fr/DemarrageRapide.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: fr
-Source: doc/it/GuidaRapida.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: it
-Source: doc/no-nb/HurtigStart.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: nb
-Source: doc/se/Snabbstart.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: se
-;README
-Source: README.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: not (cz or de or se)
-Source: doc/cz/PrectiMe.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: cz
-Source: doc/de/LIESMICH.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: de
-Source: doc/se/LasMig.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: se
+Source: COPYRIGHT.txt; DestDir: {app}; Flags: ignoreversion
+
+; NEWS
+Source: NEWS.txt; DestDir: {app}; Flags: ignoreversion; Languages: not german
+Source: doc/de/NEUES.txt; DestDir: {app}; Flags: ignoreversion; Languages: german
+
+; QUICKSTART
+Source: doc/de/Schnellstart.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: german
+Source: doc/es/InicioRapido.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: spanish
+Source: doc/fr/DemarrageRapide.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: french
+Source: doc/it/GuidaRapida.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: italian
+Source: doc/no-nb/HurtigStart.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: norwegian
+Source: doc/se/Snabbstart.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: swedish
+
+; README
+Source: README.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: not (czech or german or swedish)
+Source: doc/cz/PrectiMe.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: czech
+Source: doc/de/LIESMICH.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: german
+Source: doc/se/LasMig.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: swedish
Source: README-SDL.txt; DestDir: {app}; Flags: ignoreversion
-Source: scummvm.exe; DestDir: {app}; Flags: ignoreversion
+Source: scummvm.exe; DestDir: {app}; Flags: ignoreversion
+
+; ScummVM executable and libraries
Source: SDL2.dll; DestDir: {app}; Flags: replacesameversion
-;Source: SDL2_net.dll; DestDir: {app}; Flags: replacesameversion
-;Source: WinSparkle.dll; DestDir: {app}; Flags: replacesameversion
-;Migration script for saved games in Windows NT4 onwards
+; Source: SDL2_net.dll; DestDir: {app}; Flags: replacesameversion
+; Source: WinSparkle.dll; DestDir: {app}; Flags: replacesameversion
+
+; Migration script for saved games in Windows NT4 onwards
Source: migration.bat; DestDir: {app}; Flags: ignoreversion; MinVersion: 0, 1
-Source: migration.txt; DestDir: {app}; Flags: ignoreversion; MinVersion: 0, 1
+Source: migration.txt; DestDir: {app}; Flags: ignoreversion; MinVersion: 0, 1
diff --git a/dists/win32/ScummVM.iss.in b/dists/win32/ScummVM.iss.in
deleted file mode 100644
index bc24f83f14..0000000000
--- a/dists/win32/ScummVM.iss.in
+++ /dev/null
@@ -1,251 +0,0 @@
-#define AppName "ScummVM"
-
-[Setup]
-AppCopyright=2017
-AppName={#AppName}
-AppVersion=@VERSION@
-AppVerName={#AppName} @VERSION@
-AppPublisher=The ScummVM Team
-AppPublisherURL=http://www.scummvm.org/
-AppSupportURL=http://www.scummvm.org/
-AppUpdatesURL=http://www.scummvm.org/
-DefaultDirName={pf}\{#AppName}
-DefaultGroupName={#AppName}
-AllowNoIcons=true
-AlwaysUsePersonalGroup=false
-EnableDirDoesntExistWarning=false
-Compression=lzma
-OutputDir=C:\{#AppName}
-OutputBaseFilename=scummvm-win32
-DisableStartupPrompt=true
-AppendDefaultDirName=false
-SolidCompression=true
-DirExistsWarning=no
-SetupIconFile=graphics\scummvm-install.ico
-WizardImageFile=graphics\left.bmp
-ShowLanguageDialog=yes
-LanguageDetectionMethod=uilanguage
-PrivilegesRequired=none
-
-; This privilege escalation code comes from
-; https://stackoverflow.com/a/35435534/252087
-
-#define InnoSetupReg \
- "Software\Microsoft\Windows\CurrentVersion\Uninstall\" + AppName + "_is1"
-#define InnoSetupAppPathReg "Inno Setup: App Path"
-
-[Code]
-function IsWinVista: Boolean;
-begin
- Result := (GetWindowsVersion >= $06000000);
-end;
-
-function IsElevated: Boolean;
-begin
- Result := IsAdminLoggedOn or IsPowerUserLoggedOn;
-end;
-
-function HaveWriteAccessToApp: Boolean;
-var
- FileName: string;
-begin
- FileName := AddBackslash(WizardDirValue) + 'writetest.tmp';
- Result := SaveStringToFile(FileName, 'test', False);
- if Result then
- begin
- Log(Format(
- 'Have write access to the last installation path [%s]', [WizardDirValue]));
- DeleteFile(FileName);
- end
- else
- begin
- Log(Format('Does not have write access to the last installation path [%s]', [
- WizardDirValue]));
- end;
-end;
-
-procedure ExitProcess(uExitCode: UINT);
- external 'ExitProcess@kernel32.dll stdcall';
-function ShellExecute(hwnd: HWND; lpOperation: string; lpFile: string;
- lpParameters: string; lpDirectory: string; nShowCmd: Integer): THandle;
- external 'ShellExecuteW@shell32.dll stdcall';
-
-function Elevate: Boolean;
-var
- I: Integer;
- RetVal: Integer;
- Params: string;
- S: string;
-begin
- { Collect current instance parameters }
- for I := 1 to ParamCount do
- begin
- S := ParamStr(I);
- { Unique log file name for the elevated instance }
- if CompareText(Copy(S, 1, 5), '/LOG=') = 0 then
- begin
- S := S + '-elevated';
- end;
- { Do not pass our /SL5 switch }
- if CompareText(Copy(S, 1, 5), '/SL5=') <> 0 then
- begin
- Params := Params + AddQuotes(S) + ' ';
- end;
- end;
-
- { ... and add selected language }
- Params := Params + '/LANG=' + ActiveLanguage;
-
- Log(Format('Elevating setup with parameters [%s]', [Params]));
- RetVal := ShellExecute(0, 'runas', ExpandConstant('{srcexe}'), Params, '', SW_SHOW);
- Log(Format('Running elevated setup returned [%d]', [RetVal]));
- Result := (RetVal > 32);
- { if elevated executing of this setup succeeded, then... }
- if Result then
- begin
- Log('Elevation succeeded');
- { exit this non-elevated setup instance }
- ExitProcess(0);
- end
- else
- begin
- Log(Format('Elevation failed [%s]', [SysErrorMessage(RetVal)]));
- end;
-end;
-
-procedure InitializeWizard;
-var
- S: string;
- Upgrade: Boolean;
-begin
- Upgrade :=
- RegQueryStringValue(HKLM, '{#InnoSetupReg}', '{#InnoSetupAppPathReg}', S) or
- RegQueryStringValue(HKCU, '{#InnoSetupReg}', '{#InnoSetupAppPathReg}', S);
-
- { elevate }
-
- if not IsWinVista then
- begin
- Log(Format('This version of Windows [%x] does not support elevation', [
- GetWindowsVersion]));
- end
- else
- if IsElevated then
- begin
- Log('Running elevated');
- end
- else
- begin
- Log('Running non-elevated');
- if Upgrade then
- begin
- if not HaveWriteAccessToApp then
- begin
- Elevate;
- end;
- end
- else
- begin
- if not Elevate then
- begin
- WizardForm.DirEdit.Text := ExpandConstant('{localappdata}\{#AppName}');
- Log(Format('Falling back to local application user folder [%s]', [
- WizardForm.DirEdit.Text]));
- end;
- end;
- end;
-end;
-
-[Languages]
-Name: en; MessagesFile: compiler:Default.isl
-Name: br; MessagesFile: compiler:Languages\BrazilianPortuguese.isl
-Name: ca; MessagesFile: compiler:Languages\Catalan.isl
-Name: cz; MessagesFile: compiler:Languages\Czech.isl
-Name: da; MessagesFile: compiler:Languages\Danish.isl
-Name: fr; MessagesFile: compiler:Languages\French.isl
-Name: de; MessagesFile: compiler:Languages\German.isl
-Name: hu; MessagesFile: compiler:Languages\Hungarian.isl
-Name: it; MessagesFile: compiler:Languages\Italian.isl
-Name: nb; MessagesFile: compiler:Languages\Norwegian.isl
-Name: pl; MessagesFile: compiler:Languages\Polish.isl
-Name: ru; MessagesFile: compiler:Languages\Russian.isl
-Name: es; MessagesFile: compiler:Languages\Spanish.isl
-Name: se; MessagesFile: compiler:Languages\Swedish.isl
-
-[Icons]
-Name: {group}\{cm:UninstallProgram, ScummVM}; Filename: {uninstallexe}
-Name: {group}\ScummVM; Filename: {app}\scummvm.exe; WorkingDir: {app}; Comment: scummvm; Flags: createonlyiffileexists; IconIndex: 0
-Name: {group}\ScummVM (noconsole); Filename: {app}\scummvm.exe; Parameters: "--no-console"; WorkingDir: {app}; Comment: scummvm; Flags: createonlyiffileexists; IconIndex: 0; Languages: not de
-Name: {group}\ScummVM (ohne Konsolenfenster); Filename: {app}\scummvm.exe; Parameters: "--no-console"; WorkingDir: {app}; Comment: scummvm; Flags: createonlyiffileexists; IconIndex:0; Languages: de
-Name: {group}\Authors; Filename: {app}\AUTHORS.txt; WorkingDir: {app}; Comment: AUTHORS; Flags: createonlyiffileexists; Languages: not de
-Name: {group}\Mitwirkende; Filename: {app}\AUTHORS.txt; WorkingDir: {app}; Comment: AUTHORS; Flags: createonlyiffileexists; Languages: de
-Name: {group}\Copying; Filename: {app}\COPYING.txt; WorkingDir: {app}; Comment: COPYING; Flags: createonlyiffileexists
-Name: {group}\Copying.BSD; Filename: {app}\COPYING.BSD.txt; WorkingDir: {app}; Comment: COPYING.BSD; Flags: createonlyiffileexists
-Name: {group}\Copying.FREEFONT; Filename: {app}\COPYING.FREEFONT.txt; WorkingDir: {app}; Comment: COPYING.FREEFONT; Flags: createonlyiffileexists
-Name: {group}\Copying.LGPL; Filename: {app}\COPYING.LGPL.txt; WorkingDir: {app}; Comment: COPYING.LGPL; Flags: createonlyiffileexists
-Name: {group}\Copyright; Filename: {app}\COPYRIGHT.txt; WorkingDir: {app}; Comment: COPYRIGHT; Flags: createonlyiffileexists
-;NEWS
-Name: {group}\News; Filename: {app}\NEWS.txt; WorkingDir: {app}; Comment: NEWS; Flags: createonlyiffileexists; Languages: not de
-Name: {group}\Neues; Filename: {app}\NEUES.txt; WorkingDir: {app}; Comment: NEUES; Flags: createonlyiffileexists; Languages: de
-;QUICKSTART
-Name: {group}\Schnellstart; Filename: {app}\Schnellstart.txt; WorkingDir: {app}; Comment: Schnellstart; Flags: createonlyiffileexists; Languages: de
-Name: {group}\InicioRapido; Filename: {app}\InicioRapido.txt; WorkingDir: {app}; Comment: InicioRapido; Flags: createonlyiffileexists; Languages: es
-Name: {group}\DemarrageRapide; Filename: {app}\DemarrageRapide.txt; WorkingDir: {app}; Comment: DemarrageRapide; Flags: createonlyiffileexists; Languages: fr
-Name: {group}\GuidaRapida; Filename: {app}\GuidaRapida.txt; WorkingDir: {app}; Comment: GuidaRapida; Flags: createonlyiffileexists; Languages: it
-Name: {group}\HurtigStart; Filename: {app}\HurtigStart.txt; WorkingDir: {app}; Comment: HurtigStart; Flags: createonlyiffileexists; Languages: nb
-Name: {group}\Snabbstart; Filename: {app}\Snabbstart.txt; WorkingDir: {app}; Comment: Snabbstart; Flags: createonlyiffileexists; Languages: se
-;README
-Name: {group}\Readme; Filename: {app}\README.txt; WorkingDir: {app}; Comment: README; Flags: createonlyiffileexists; Languages: not (cz or de or se)
-Name: {group}\PrectiMe; Filename: {app}\PrectiMe.txt; WorkingDir: {app}; Comment: PrectiMe; Flags: createonlyiffileexists; Languages: cz
-Name: {group}\Liesmich; Filename: {app}\LIESMICH.txt; WorkingDir: {app}; Comment: LIESMICH; Flags: createonlyiffileexists; Languages: de
-Name: {group}\LasMig; Filename: {app}\LasMig.txt; WorkingDir: {app}; Comment: LasMig; Flags: createonlyiffileexists; Languages: se
-
-Name: {group}\Saved Games\Migrate Saved Games; Filename: {app}\migration.bat; WorkingDir: {app}; Comment: Migrate Saved Games; IconIndex: 0; MinVersion: 0, 1; Languages: not de
-Name: {group}\Spielstände\Spielstände migrieren; Filename: {app}\migration.bat; WorkingDir: {app}; Comment: Spielstände migrieren; IconIndex: 0; MinVersion: 0, 1; Languages: de
-Name: {group}\Saved Games\Saved Games (old default); Filename: {app}; WorkingDir: {app}; Comment: Saved Games (old default); IconIndex: 0; MinVersion: 0, 1; Languages: not de
-Name: {group}\Spielstände\Spielstände (alter Standard); Filename: {app}; WorkingDir: {app}; Comment: Spielstände (alter Standard); IconIndex: 0; MinVersion: 0, 1; Languages: de
-Name: {group}\Saved Games\Saved Games (new default); Filename: {userappdata}\ScummVM\Saved Games; WorkingDir: {userappdata}\ScummVM\Saved Games; Comment: Saved Games (new default); IconIndex: 0; MinVersion: 0, 1; Languages: not de
-Name: {group}\Spielstände\Spielstände; Filename: {userappdata}\ScummVM\Saved Games; WorkingDir: {userappdata}\ScummVM\Saved Games; Comment: Spielstände; IconIndex: 0; MinVersion: 0, 1; Languages: de
-
-[Run]
-Filename: {app}\ScummVM.exe; Flags: nowait skipifdoesntexist postinstall skipifsilent
-;Creates a symbolic link for standard save games area, under Windows Vista/7
-Filename: {cmd}; Parameters: "/c ""mklink /d ""%userprofile%\Saved Games\ScummVM"" ""%appdata%\ScummVM\Saved games"" "" "; MinVersion: 0, 6.1
-
-[UninstallDelete]
-Type: files; Name: {app}\ISTool.url
-
-[Dirs]
-Name: "{userappdata}\ScummVM"; MinVersion: 0, 1
-Name: "{userappdata}\ScummVM\Saved Games"; MinVersion: 0, 1
-
-[Files]
-Source: AUTHORS.txt; DestDir: {app}; Flags: ignoreversion
-Source: COPYING.txt; DestDir: {app}; Flags: ignoreversion
-Source: COPYING.BSD.txt; DestDir: {app}; Flags: ignoreversion
-Source: COPYING.FREEFONT.txt; DestDir: {app}; Flags: ignoreversion
-Source: COPYING.LGPL.txt; DestDir: {app}; Flags: ignoreversion
-Source: COPYRIGHT.txt; DestDir: {app}; Flags: ignoreversion
-;NEWS
-Source: NEWS.txt; DestDir: {app}; Flags: ignoreversion; Languages: not de
-Source: doc/de/NEUES.txt; DestDir: {app}; Flags: ignoreversion; Languages: de
-;QUICKSTART
-Source: doc/de/Schnellstart.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: de
-Source: doc/es/InicioRapido.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: es
-Source: doc/fr/DemarrageRapide.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: fr
-Source: doc/it/GuidaRapida.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: it
-Source: doc/no-nb/HurtigStart.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: nb
-Source: doc/se/Snabbstart.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: se
-;README
-Source: README.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: not (cz or de or se)
-Source: doc/cz/PrectiMe.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: cz
-Source: doc/de/LIESMICH.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: de
-Source: doc/se/LasMig.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: se
-Source: README-SDL.txt; DestDir: {app}; Flags: ignoreversion
-Source: scummvm.exe; DestDir: {app}; Flags: ignoreversion
-Source: SDL2.dll; DestDir: {app}; Flags: replacesameversion
-;Source: SDL2_net.dll; DestDir: {app}; Flags: replacesameversion
-;Source: WinSparkle.dll; DestDir: {app}; Flags: replacesameversion
-;Migration script for saved games in Windows NT4 onwards
-Source: migration.bat; DestDir: {app}; Flags: ignoreversion; MinVersion: 0, 1
-Source: migration.txt; DestDir: {app}; Flags: ignoreversion; MinVersion: 0, 1
diff --git a/dists/win32/graphics/scummvm-install.bmp b/dists/win32/graphics/scummvm-install.bmp
new file mode 100644
index 0000000000..a03ae85d28
--- /dev/null
+++ b/dists/win32/graphics/scummvm-install.bmp
Binary files differ