diff --git a/FlightGear.iss b/FlightGear.iss old mode 100755 new mode 100644 index f2ab6e5..ce3631a --- a/FlightGear.iss +++ b/FlightGear.iss @@ -1,4 +1,4 @@ -; Script generated by the Inno Setup Script Wizard. +; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! ; ; This script creates an installable FlightGear package for Win32 using the @@ -7,7 +7,9 @@ ; ; http://www.jrsoftware.org/isinfo.php ; -; Note: the files must appear in the X: drive. +; Note: Files root path is defined in the FgHarnessPath (in InstallConfig.iss) +; +; For example if You want to use X: drive as a root path ; You can do this with the command below: ; ; subst X: path_to_files @@ -17,46 +19,65 @@ ; C:\> subst X: F:\Path\to\FlightGear\root ; C:\> subst X: F:\ ; +; +; InstallConfig.iss example content: +; +; #define FGHarnessPath "x:" +; #define FGVersion "2020.4.1" +; #define FGVersionGroup "2020.4" +; #define OSGVersion "3.0.0" +; #define OSGSoNumber "2" +; #define OTSoNumber "3" +; #define FGDetails "-nightly" +; #define IncludeData "FALSE" +; +; Uninstall procedure with --uninstall flag: +; executed by fgfs.exe (fg_init.cxx): +; - removes all under the FG_HOME directory +; - removes all from Download dir/Terrasync +; - removes all from Download dir/Aircraft #include "InstallConfig.iss" -#define InstallDir32 "X:\install\msvc140" -#define InstallCompositor32 "X:\install\msvc140\compositor" +#define FGSourcePath FgHarnessPath + "\flightgear" + +#define InstallDir32 FgHarnessPath + "\install\msvc140" +#define InstallCompositor32 FgHarnessPath + "\install\msvc140\compositor" #define OSGInstallDir InstallDir32 + "\OpenSceneGraph" #define OSGPluginsDir OSGInstallDir + "\bin\osgPlugins-" + OSGVersion -#define InstallDir64 "X:\install\msvc140-64" -#define InstallCompositor64 "X:\install\msvc140-64\compositor" +#define InstallDir64 FgHarnessPath + "\install\msvc140-64" +#define InstallCompositor64 FgHarnessPath + "\install\msvc140-64\compositor" #define OSG64InstallDir InstallDir64 + "\OpenSceneGraph" #define OSG64PluginsDir OSG64InstallDir + "\bin\osgPlugins-" + OSGVersion -#define ThirdPartyDir "X:\windows-3rd-party\msvc140" +#define ThirdPartyDir FgHarnessPath + "\windows-3rd-party\msvc140" ; we copy everything in install//bin except these, which aren't ; useful to the end-user to ship #define ExcludedBinaries "*smooth.exe,metar.exe" [Setup] -AppId=FlightGear +AppId=FlightGear_{#FGVersionGroup} AppName=FlightGear AppPublisher=The FlightGear Team OutputBaseFilename=FlightGear-{#FGVersion}{#FGDetails} AppVerName=FlightGear v{#FGVersion} +AppVersion={#FGVersion} AppPublisherURL=http://www.flightgear.org AppSupportURL=http://www.flightgear.org AppUpdatesURL=http://www.flightgear.org -DefaultDirName={pf}\FlightGear {#FGVersion} +DefaultDirName={pf}\FlightGear {#FGVersionGroup} UsePreviousAppDir=no -DefaultGroupName=FlightGear {#FGVersion} +DefaultGroupName=FlightGear {#FGVersionGroup} UsePreviousGroup=no -LicenseFile=X:\flightgear\COPYING +LicenseFile={#FGSourcePath}\COPYING Uninstallable=yes -SetupIconFile=X:\flightgear\package\flightgear.ico +SetupIconFile={#FGSourcePath}\package\flightgear.ico VersionInfoVersion={#FGVersion}.0 -InfoBeforeFile=X:\flightgear\package\windows\infobefore.txt -WizardImageFile=X:\flightgear\package\windows\setupimg.bmp +WizardImageFile={#FGSourcePath}\package\windows\setupimg.bmp WizardImageStretch=No -WizardSmallImageFile=X:\flightgear\package\windows\setupsmall.bmp +WizardSmallImageFile={#FGSourcePath}\package\windows\setupsmall.bmp VersionInfoCompany=The FlightGear Team UninstallDisplayIcon={app}\bin\fgfs.exe ArchitecturesInstallIn64BitMode=x64 @@ -67,14 +88,10 @@ ArchitecturesAllowed=x86 x64 ; SignTool=fg_code_sign1 [Tasks] -; NOTE: The following entry contains English phrases ("Create a desktop icon" and "Additional icons"). You are free to translate them into another language if required. -Name: "desktopicon"; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:" +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "Additional icons:" [Files] -; NOTE: run subst X: F:\ (or whatever path the expanded tree resides at) -;Source: "X:\*.txt"; DestDir: "{app}"; Flags: ignoreversion ; 32 bits install - Source: "{#InstallDir32}\bin\*.*"; DestDir: "{app}\bin"; Excludes: "{#ExcludedBinaries}"; Flags: ignoreversion recursesubdirs; Check: not Is64BitInstallMode Source: "{#InstallCompositor32}\bin\fgfs.exe"; DestDir: "{app}\bin"; DestName: "fgfs-compositor.exe"; Excludes: "{#ExcludedBinaries}"; Flags: ignoreversion recursesubdirs; Check: not Is64BitInstallMode ;locale only exists for fgrun - which has been disabled @@ -108,7 +125,7 @@ Source: "{#ThirdPartyDir}\3rdParty.x64\bin\event_core.dll"; DestDir: "{app}\bin" ; Include the base package #if IncludeData == "TRUE" -Source: "X:\fgdata\*.*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs skipifsourcedoesntexist +Source: "{#FgHarnessPath}\fgdata\*.*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs skipifsourcedoesntexist #endif ; 32 bits install @@ -187,6 +204,51 @@ Source: "{#OSG64PluginsDir}\osgdb_freetype.dll"; DestDir: "{app}\bin\osgPlugins- ;Source: "{#OSG64PluginsDir}\osgdb_deprecated_osg.dll"; DestDir: "{app}\bin\osgPlugins-{#OSGVersion}"; Flags: skipifsourcedoesntexist; Check: Is64BitInstallMode ;Source: "{#OSG64PluginsDir}\osgdb_deprecated_osgparticle.dll"; DestDir: "{app}\bin\osgPlugins-{#OSGVersion}"; Flags: skipifsourcedoesntexist; Check: Is64BitInstallMode +[Languages] +Name: "en"; MessagesFile: "compiler:Default.isl"; InfoBeforeFile: "{#FGSourcePath}\package\windows\infobefore-en.txt" +Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl"; InfoBeforeFile: "{#FGSourcePath}\package\windows\infobefore-pl.txt" +Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl"; InfoBeforeFile: "{#FGSourcePath}\package\windows\infobefore-es.txt" +Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl"; InfoBeforeFile: "{#FGSourcePath}\package\windows\infobefore-nl.txt" +Name: "de"; MessagesFile: "compiler:Languages\German.isl"; InfoBeforeFile: "{#FGSourcePath}\package\windows\infobefore-de.txt" + +[Messages] +ConfirmUninstall=Are you sure you want to completely remove %1 {#FGVersion} and all of its components? +pl.ConfirmUninstall=Czy na pewno chcesz całkowicie usunąć %1 {#FGVersion} i wszystkie jego komponenty? +es.ConfirmUninstall=¿ Estás seguro de que quieres borrar completamente %1 {#FGVersion} y todos sus componentes ? +nl.ConfirmUninstall=Weet u zeker dat u %1 {#FGVersion} en alle bijbehorende onderdelen wilt verwijderen? +de.ConfirmUninstall=Bist Du sicher, dass Du %1 {#FGVersion} und alle Komponenten entfernen willst? + +[CustomMessages] +CreateDesktopIcon=Create a &desktop icon +RemoveAllSettings=Remove all settings, downloaded scenery and aircraft +RemoveAllSettingsDescription=FlightGear stores some settings in your user folder. In addition, scenery or aircraft data may have been downloaded to the download directory. To completely remove all these files, select this option. +FirewallFgException=Allows FlightGear to send and receive data over the multiplayer network and to get METARs. +FirewallFgcomException=Allows FGCom to establish a connection to FlightGear and the VoIP server for voice ATC communication. + +pl.CreateDesktopIcon=Utwórz ikony na pulpicie +pl.RemoveAllSettings=Usuń wszystkie ustawienia, pobraną scenerię i samoloty +pl.RemoveAllSettingsDescription=FlightGear zapisuje niektóre ustawienia w katalogach użytkownika. Dodatkowo, sceneria lub dane statków powietrznych mogą być pobierane do katalogu pobrań. Aby całkowicie usunąć te ustawienia, wybierz tą opcję. +pl.FirewallFgException=Pozwala aplikacji FlightGear na wysyłanie i pobieranie danych przez sieć multiplayer oraz aby pobrać dane pogodowe METAR. +pl.FirewallFgcomException=Pozwala aplikacji FGCom na ustanowienie połączenia do aplikacji FlightGear i do serwerów VoIP dla komunikacji głosowej z ATC (kontrolerem lotów). + +es.CreateDesktopIcon=Crear icono en el escritorio +es.RemoveAllSettings=Borrar todos los ajustes, escenarios y aviones descargados +es.RemoveAllSettingsDescription=FlightGear almacena algunos ajustes en tu carpeta de usuario. Adicionalmente, los datos de escenarios y aviones pueden haber sido descargados en el directorio de descargas. Para borrar completamente todos esos archivos, selecciona esta opción. +es.FirewallFgException=Permite a FlightGear mandar y recibir datos a la red multijugador y obtener METAR. +es.FirewallFgcomException=Permite a FGCom establecer una conexión con FlightGear y el servidor VoIP para comunicaciones de voz con el ATC. + +nl.CreateDesktopIcon=Maak een snelkoppeling op het &bureaublad +nl.RemoveAllSettings=Verwijder alle instellingen en gedownloade data +nl.RemoveAllSettingsDescription=FlightGear bewaart een aantal instellingen in uw gebruikersmap. Mogelijk is er ook data in de downloadmap opgeslagen. Selecteer deze optie om die bestanden definitief te verwijderen. +nl.FirewallFgException=Sta FlightGear toe om data te verzenden en ontvangen via het multiplayernetwerk en om live weergegevens te downloaden. +nl.FirewallFgcomException=Sta FGCom toe om verbinding met FlightGear en de VoIP server te maken voor op stem gebaseerde ATC-communicatie. + +de.CreateDesktopIcon=Ein Desktop-Icon anlegen +de.RemoveAllSettings=Alle Einstellungen und heruntergeladene Daten löschen +de.RemoveAllSettingsDescription=FlightGear speichert seine Einstellungen in deinem User-Verzeichnis. Zusätzlich heruntergeladene Flugzeuge und Szenerie-Daten können sich im Download-Verzeichnis befinden. Wähle diese Option, um alle Daten zu löschen. +de.FirewallFgException=Erlaubt FlightGear die Verbindung zum Multiplayer-Netzwerk und den Download von METAR-Daten. +de.FirewallFgcomException=Erlaubt FGCom die Verbindung zu FlightGear- und VoIP-Servern für den ATC-Sprechfunk. + [Dirs] ; Make the user installable scenery directory Name: "{userdocs}\FlightGear\Aircraft"; Permissions: everyone-modify; Check: not DirExists(ExpandConstant('{userdocs}\FlightGear\Aircraft')) @@ -194,9 +256,9 @@ Name: "{userdocs}\FlightGear\TerraSync"; Permissions: everyone-modify; Check: no Name: "{userdocs}\FlightGear\Custom Scenery"; Permissions: everyone-modify; Check: not DirExists(ExpandConstant('{userdocs}\FlightGear\Custom Scenery')) [Icons] -Name: "{userdesktop}\FlightGear {#FGVersion}"; Filename: "{app}\bin\fgfs.exe"; Parameters: "--launcher"; WorkingDir: "{app}\bin"; Tasks: desktopicon; -Name: "{group}\FlightGear"; Filename: "{app}\bin\fgfs.exe"; Parameters: "--launcher"; WorkingDir: "{app}\bin"; -Name: "{group}\FlightGear - Compositor"; Filename: "{app}\bin\fgfs-compositor.exe"; Parameters: "--launcher"; WorkingDir: "{app}\bin"; +Name: "{userdesktop}\FlightGear {#FGVersionGroup}"; Filename: "{app}\bin\fgfs.exe"; Parameters: "--launcher"; WorkingDir: "{app}\bin"; Tasks: desktopicon; +Name: "{group}\FlightGear {#FGVersionGroup}"; Filename: "{app}\bin\fgfs.exe"; Parameters: "--launcher"; WorkingDir: "{app}\bin"; +Name: "{group}\FlightGear {#FGVersionGroup} - Compositor"; Filename: "{app}\bin\fgfs-compositor.exe"; Parameters: "--launcher"; WorkingDir: "{app}\bin"; Name: "{group}\FlightGear Manual"; Filename: "{app}\data\Docs\getstart.pdf" Name: "{group}\FlightGear Documentation"; Filename: "{app}\data\Docs\index.html" Name: "{group}\Flightgear Wiki"; Filename: "http://wiki.flightgear.org" @@ -344,7 +406,7 @@ begin DoCleanCheckbox := TNewCheckBox.Create(UninstallProgressForm); DoCleanCheckbox.Parent := UninstallCheckCleanPage; - DoCleanCheckbox.Caption := 'Remove all settings, downloaded scenery and aircraft'; + DoCleanCheckbox.Caption := ExpandConstant('{cm:RemoveAllSettings}'); DoCleanCheckbox.Left := ScaleX(10); DoCleanCheckbox.Top := ScaleY(10); @@ -359,9 +421,7 @@ begin CleanHelp.Height := CleanHelp.AdjustHeight(); CleanHelp.WordWrap := True; - CleanHelp.Caption := 'FlightGear stores some settings in your user folder. In addition, ' + - 'scenery or aircraft data may have been downloaded to the download directory. ' + - 'To completely remove all these files, select this option.'; + CleanHelp.Caption := ExpandConstant('{cm:RemoveAllSettingsDescription}'); UninstallProgressForm.InnerNotebook.ActivePage := UninstallCheckCleanPage; @@ -396,10 +456,10 @@ begin if (Version.Major >= 6) then begin { IN and OUT rules must be specified separately, otherwise the firewall will create only the IN rule } - AddAdvancedFirewallException('FlightGear', 'Allows FlightGear to send and receive data over the multiplayer network and to get METARs.', ExpandConstant('{app}') + '\bin\fgfs.exe', NET_FW_IP_PROTOCOL_ALL, '', '', NET_FW_RULE_DIR_IN); - AddAdvancedFirewallException('FlightGear', 'Allows FlightGear to send and receive data over the multiplayer network and to get METARs.', ExpandConstant('{app}') + '\bin\fgfs.exe', NET_FW_IP_PROTOCOL_ALL, '', '', NET_FW_RULE_DIR_OUT); - AddAdvancedFirewallException('FlightGear FGCom', 'Allows FGCom to establish a connection to FlightGear and the VoIP server for voice ATC communication.', ExpandConstant('{app}') + '\bin\fgcom.exe', NET_FW_IP_PROTOCOL_ALL, '', '', NET_FW_RULE_DIR_IN); - AddAdvancedFirewallException('FlightGear FGCom', 'Allows FGCom to establish a connection to FlightGear and the VoIP server for voice ATC communication.', ExpandConstant('{app}') + '\bin\fgcom.exe', NET_FW_IP_PROTOCOL_ALL, '', '', NET_FW_RULE_DIR_OUT); + AddAdvancedFirewallException('FlightGear', ExpandConstant('{cm:FirewallFgException}'), ExpandConstant('{app}') + '\bin\fgfs.exe', NET_FW_IP_PROTOCOL_ALL, '', '', NET_FW_RULE_DIR_IN); + AddAdvancedFirewallException('FlightGear', ExpandConstant('{cm:FirewallFgException}'), ExpandConstant('{app}') + '\bin\fgfs.exe', NET_FW_IP_PROTOCOL_ALL, '', '', NET_FW_RULE_DIR_OUT); + AddAdvancedFirewallException('FlightGear FGCom', ExpandConstant('{cm:FirewallFgcomException}'), ExpandConstant('{app}') + '\bin\fgcom.exe', NET_FW_IP_PROTOCOL_ALL, '', '', NET_FW_RULE_DIR_IN); + AddAdvancedFirewallException('FlightGear FGCom', ExpandConstant('{cm:FirewallFgcomException}'), ExpandConstant('{app}') + '\bin\fgcom.exe', NET_FW_IP_PROTOCOL_ALL, '', '', NET_FW_RULE_DIR_OUT); end else if (Version.Major = 5) and (((Version.Minor = 1) and (Version.ServicePackMajor >= 2)) or ((Version.Minor = 2) and (Version.ServicePackMajor >= 1))) then begin