diff options
Diffstat (limited to 'dists/win32')
-rw-r--r-- | dists/win32/ScummVM.iss | 3 | ||||
-rw-r--r-- | dists/win32/ScummVM.iss.in | 251 |
2 files changed, 253 insertions, 1 deletions
diff --git a/dists/win32/ScummVM.iss b/dists/win32/ScummVM.iss index 38745c885a..2c9f74db24 100644 --- a/dists/win32/ScummVM.iss +++ b/dists/win32/ScummVM.iss @@ -3,7 +3,8 @@ [Setup] AppCopyright=2018 AppName={#AppName} -AppVerName={#AppName} Git +AppVersion=2.1.0git +AppVerName={#AppName} 2.1.0git AppPublisher=The ScummVM Team AppPublisherURL=http://www.scummvm.org/ AppSupportURL=http://www.scummvm.org/ diff --git a/dists/win32/ScummVM.iss.in b/dists/win32/ScummVM.iss.in new file mode 100644 index 0000000000..bc24f83f14 --- /dev/null +++ b/dists/win32/ScummVM.iss.in @@ -0,0 +1,251 @@ +#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 |