174 lines
7.6 KiB
Text
174 lines
7.6 KiB
Text
|
; 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
|
||
|
; "Inno Setup" package builder. Inno Setup is free (but probably not open
|
||
|
; source?.) The official web site for this package building software is:
|
||
|
;
|
||
|
; http://www.jrsoftware.org/isinfo.php
|
||
|
;
|
||
|
; Note: the files must appear in the X: drive.
|
||
|
; You can do this with the command below:
|
||
|
;
|
||
|
; subst X: path_to_files
|
||
|
;
|
||
|
; For example:
|
||
|
;
|
||
|
; C:\> subst X: F:\Path\to\FlightGear\root
|
||
|
; C:\> subst X: F:\
|
||
|
; C:\> subst X: E:\Package\FlightGear-YYYYMMDD
|
||
|
; C:\> subst X: /d
|
||
|
;
|
||
|
|
||
|
#define FGVER "v20110228"
|
||
|
|
||
|
[Setup]
|
||
|
AppId=FlightGear {#FGVER}
|
||
|
AppName=FlightGear {#FGVER}
|
||
|
AppPublisher=The FlightGear Team
|
||
|
OutputBaseFilename=Setup FlightGear {#FGVER}
|
||
|
AppVerName=FlightGear {#FGVER}
|
||
|
AppPublisherURL=http://www.flightgear.org
|
||
|
AppSupportURL=http://www.flightgear.org
|
||
|
AppUpdatesURL=http://www.flightgear.org
|
||
|
DefaultDirName={pf}\FlightGear {#FGVER}
|
||
|
DefaultGroupName=FlightGear {#FGVER}
|
||
|
LicenseFile=X:\data\COPYING
|
||
|
Uninstallable=yes
|
||
|
SetupIconFile=x:\flightgear.ico
|
||
|
VersionInfoVersion=2.0.0.0
|
||
|
WizardImageFile=X:\setupimg.bmp
|
||
|
WizardImageStretch=No
|
||
|
WizardSmallImageFile=X:\setupsmall.bmp
|
||
|
VersionInfoCompany=The FlightGear Team
|
||
|
UninstallDisplayIcon={app}\bin\Win32\fgrun.exe
|
||
|
|
||
|
[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: "insoal"; Description: "Install OpenAL (the sound engine)"
|
||
|
|
||
|
[Files]
|
||
|
; NOTE: run subst X: F:\ (or whatever path the expanded tree resides at)
|
||
|
Source: "X:\*.txt"; DestDir: "{app}"; Flags: ignoreversion
|
||
|
Source: "X:\bin\Win32\*.*"; DestDir: "{app}\bin\Win32"; Flags: ignoreversion recursesubdirs
|
||
|
Source: "X:\bin\vcredist_x86.exe"; DestDir: "{app}\bin"; Flags: ignoreversion
|
||
|
Source: "X:\bin\oalinst.exe"; DestDir: "{app}\bin"; Flags: ignoreversion
|
||
|
Source: "X:\data\*.*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs
|
||
|
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||
|
|
||
|
[Dirs]
|
||
|
; Make the user installable scenery directory
|
||
|
Name: "{app}\scenery"; Permissions: everyone-modify
|
||
|
Name: "{code:TerrasyncDir}"; Permissions: everyone-modify
|
||
|
|
||
|
[Icons]
|
||
|
Name: "{group}\FlightGear {#FGVER}"; Filename: "{app}\bin\Win32\fgrun.exe"; WorkingDir: "{app}";
|
||
|
; Name: "{group}\FlightGear"; Filename: "{app}\bin\Win32\fgfs.exe"; Parameters: "--fg-root=."; WorkingDir: "{app}";
|
||
|
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"
|
||
|
Name: "{userdesktop}\FlightGear {#FGVER}"; Filename: "{app}\bin\Win32\fgrun.exe"; WorkingDir: "{app}"; Tasks: desktopicon
|
||
|
|
||
|
Name: "{group}\Tools\Install & Uninstall Scenery"; Filename: "{app}\bin\Win32\fgadmin.exe"; WorkingDir: "{app}";
|
||
|
Name: "{group}\Tools\TerraSync"; Filename: "{app}\bin\Win32\terrasync.exe"; Parameters: "-S -p 5505 -d ""{app}\terrasync"""; WorkingDir: "{app}";
|
||
|
Name: "{group}\Tools\Uninstall FlightGear {#FGVER}"; Filename: "{uninstallexe}"
|
||
|
|
||
|
Name: "{group}\Tools\js_demo"; Filename: "{app}\bin\Win32\js_demo.exe"
|
||
|
Name: "{group}\Tools\fgjs"; Filename: "cmd"; Parameters: "/k fgjs.exe ""--fg-root={app}\data"""; WorkingDir: "{app}\bin\Win32";
|
||
|
Name: "{group}\Tools\GPSsmooth"; Filename: "cmd"; Parameters: "/k ""{app}\bin\Win32\GPSsmooth.exe"" -h"; WorkingDir: "{app}\bin\Win32";
|
||
|
Name: "{group}\Tools\UGsmooth"; Filename: "cmd"; Parameters: "/k ""{app}\bin\Win32\UGsmooth.exe"" -h"; WorkingDir: "{app}\bin\Win32";
|
||
|
Name: "{group}\Tools\MIDSsmooth"; Filename: "cmd"; Parameters: "/k ""{app}\bin\Win32\MIDSsmooth.exe"" -h"; WorkingDir: "{app}\bin\Win32";
|
||
|
Name: "{group}\Tools\metar"; Filename: "cmd"; Parameters: "/k ""{app}\bin\Win32\metar.exe"" -h"; WorkingDir: "{app}\bin\Win32";
|
||
|
Name: "{group}\Tools\yasim"; Filename: "cmd"; Parameters: "/k ""{app}\bin\Win32\yasim.exe"" -h"; WorkingDir: "{app}\bin\Win32";
|
||
|
|
||
|
Name: "{group}\Tools\Explore Documentation Folder"; Filename: "{app}\data\Docs"
|
||
|
|
||
|
; For running flightgear directly
|
||
|
; Name: "{userdesktop}\FlightGear {#FGVER}"; Filename: "{app}\bin\Win32\fgfs.exe"; Parameters: "--fg-root=."; WorkingDir: "{app}"; Tasks: desktopicon
|
||
|
|
||
|
[Run]
|
||
|
Filename: "{app}\bin\vcredist_x86.exe"; WorkingDir: "{app}"; Parameters: "/qb!"; Description: "Installing Flightgear prerequisites"
|
||
|
|
||
|
; Put installation directory into the fgrun.prefs
|
||
|
filename: "{app}\bin\Win32\fgrun.exe"; WorkingDir: "{app}\bin\Win32"; Parameters: "--silent ""--fg-exe={app}\bin\Win32\fgfs.exe"" ""--ts-exe={app}\bin\Win32\terrasync.exe"" ""--fg-root={app}\data"" ""--fg-scenery={app}\data\Scenery;{app}\scenery;{code:TerrasyncDir}"" --ts-dir=3"
|
||
|
|
||
|
; Put installation and source directories into the fgadmin.prefs
|
||
|
filename: "{app}\bin\Win32\fgadmin.exe"; WorkingDir: "{app}\bin\Win32"; Parameters: "--silent ""--install-source={src}\..\Scenery"" ""--scenery-dest={app}\scenery"""
|
||
|
Filename: "{app}\bin\oalinst.exe"; WorkingDir: "{app}"; Description: "Installing OpenAL"; Tasks: insoal
|
||
|
;Filename: "{app}\bin\Win32\fgrun.exe"; WorkingDir: "{app}"; Description: "Launch FlightGear"; Flags: postinstall skipifsilent
|
||
|
|
||
|
[Registry]
|
||
|
Root: HKLM; Subkey: "Software\flightgear.org {#FGVER}"; ValueType: string; ValueName: "TerrasyncDir"; ValueData: "{code:TerrasyncDir}"
|
||
|
|
||
|
[Code]
|
||
|
var
|
||
|
TerrasyncDirPage: TInputDirWizardPage;
|
||
|
|
||
|
procedure URLLabelOnClick(Sender: TObject);
|
||
|
var
|
||
|
ErrorCode: Integer;
|
||
|
begin
|
||
|
ShellExec('open', 'http://www.flightgear.org', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
|
||
|
end;
|
||
|
|
||
|
procedure CreateURLLabel(ParentForm: TSetupForm; CancelButton: TNewButton);
|
||
|
var
|
||
|
URLLabel: TNewStaticText;
|
||
|
begin
|
||
|
URLLabel := TNewStaticText.Create(ParentForm);
|
||
|
URLLabel.Caption := 'www.flightgear.org';
|
||
|
URLLabel.Cursor := crHand;
|
||
|
URLLabel.OnClick := @URLLabelOnClick;
|
||
|
URLLabel.Parent := ParentForm;
|
||
|
{ Alter Font *after* setting Parent so the correct defaults are inherited first }
|
||
|
URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
|
||
|
URLLabel.Font.Color := clBlue;
|
||
|
URLLabel.Top := CancelButton.Top + CancelButton.Height - URLLabel.Height - 2;
|
||
|
URLLabel.Left := ScaleX(20);
|
||
|
end;
|
||
|
|
||
|
procedure InitializeWizard();
|
||
|
begin
|
||
|
TerrasyncDirPage := CreateInputDirPage(wpSelectDir,
|
||
|
'Select Terrasync Directory', 'Where should scenery downloaded by Terrasync be put?',
|
||
|
'Select the folder in which Terrasync would download additional scenery, then click Next.',
|
||
|
False, 'Terrasync Folder');
|
||
|
TerrasyncDirPage.Add('');
|
||
|
|
||
|
CreateURLLabel(WizardForm, WizardForm.CancelButton);
|
||
|
end;
|
||
|
|
||
|
function NextButtonClick(CurPageID: Integer): Boolean;
|
||
|
begin
|
||
|
if CurPageID = wpSelectDir then begin
|
||
|
TerrasyncDirPage.Values[0] := GetPreviousData( 'TerrasyncDir', ExpandConstant('{reg:HKLM\Software\flightgear.org,TerrasyncDir|{app}\terrasync}') );
|
||
|
end;
|
||
|
Result := True;
|
||
|
end;
|
||
|
|
||
|
function TerrasyncDir(Param: String): String;
|
||
|
begin
|
||
|
Result := TerrasyncDirPage.Values[0];
|
||
|
end;
|
||
|
|
||
|
procedure RegisterPreviousData(PreviousDataKey: Integer);
|
||
|
begin
|
||
|
{ Store the settings so we can restore them next time }
|
||
|
SetPreviousData(PreviousDataKey, 'TerrasyncDir', TerrasyncDirPage.Values[0]);
|
||
|
end;
|
||
|
|
||
|
function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
|
||
|
var
|
||
|
S: String;
|
||
|
begin
|
||
|
S := '';
|
||
|
S := S + MemoDirInfo + NewLine + NewLine;
|
||
|
S := S + 'Terrasync folder:' + NewLine;
|
||
|
S := S + Space + TerrasyncDirPage.Values[0] + NewLine + NewLine;
|
||
|
S := S + MemoGroupInfo + NewLine + NewLine;
|
||
|
S := S + MemoTasksInfo + NewLine + NewLine;
|
||
|
|
||
|
Result := S;
|
||
|
end;
|