diff --git a/devtools/update-version.pl b/devtools/update-version.pl index 7e627cb8c035..75f6f0e7c8fd 100755 --- a/devtools/update-version.pl +++ b/devtools/update-version.pl @@ -50,7 +50,6 @@ dists/gph/README-GPH dists/gph/scummvm.ini dists/riscos/!Boot,feb - dists/win32/ScummVM.iss backends/platform/psp/README.PSP snapcraft.yaml ); diff --git a/dists/win32/ScummVM.iss b/dists/win32/ScummVM.iss index 2c9f74db24d1..786c10164ccd 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 bc24f83f14f9..000000000000 --- 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 000000000000..a03ae85d2824 Binary files /dev/null and b/dists/win32/graphics/scummvm-install.bmp differ diff --git a/ports.mk b/ports.mk index 2674aaf2cd33..1163a0773126 100644 --- a/ports.mk +++ b/ports.mk @@ -491,6 +491,7 @@ win32dist: all cp $(WIN32SDLPATH)/SDL2.dll $(WIN32PATH) cp $(srcdir)/dists/win32/graphics/left.bmp $(WIN32PATH)/graphics cp $(srcdir)/dists/win32/graphics/scummvm-install.ico $(WIN32PATH)/graphics + cp $(srcdir)/dists/win32/graphics/scummvm-install.bmp $(WIN32PATH)/graphics cp $(srcdir)/dists/win32/migration.bat $(WIN32PATH) cp $(srcdir)/dists/win32/migration.txt $(WIN32PATH) cp $(srcdir)/dists/win32/ScummVM.iss $(WIN32PATH)