]> git.mxchange.org Git - flightgear.git/blob - package/Win32-Inno/FlightGear-devel.iss
Add fgpanel to the mix
[flightgear.git] / package / Win32-Inno / FlightGear-devel.iss
1 ; Script generated by the Inno Setup Script Wizard.
2 ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
3 ;
4 ; This script creates an installable FlightGear package for Win32 using the
5 ; "Inno Setup" package builder.  Inno Setup is free (but probably not open
6 ; source?.)  The official web site for this package building software is:
7 ;
8 ;     http://www.jrsoftware.org/isinfo.php
9 ;
10 ; Note: the files must appear in the X: drive.
11 ; You can do this with the command below:
12 ;
13 ;     subst X: path_to_files
14 ;
15 ; For example:
16 ;
17 ;     C:\> subst X: F:\Path\to\FlightGear\root
18 ;     C:\> subst X: F:\
19 ;     C:\> subst X: E:\Package\FlightGear-YYYYMMDD
20 ;     C:\> subst X: /d
21 ;
22
23 #define FGVER "v20111205"\r
24 ;#define FGVER "2.4.0"\r
25 \r
26 [Setup]\r
27 AppId=FlightGear {#FGVER}\r
28 AppName=FlightGear {#FGVER}\r
29 AppPublisher=The FlightGear Team\r
30 OutputBaseFilename=Setup FlightGear {#FGVER}\r
31 AppVerName=FlightGear {#FGVER}
32 AppPublisherURL=http://www.flightgear.org
33 AppSupportURL=http://www.flightgear.org
34 AppUpdatesURL=http://www.flightgear.org
35 DefaultDirName={pf}\FlightGear {#FGVER}
36 DefaultGroupName=FlightGear {#FGVER}
37 LicenseFile=X:\data\COPYING
38 Uninstallable=yes
39 SetupIconFile=x:\flightgear.ico
40 VersionInfoVersion=2.5.0.0
41 WizardImageFile=X:\setupimg.bmp
42 WizardImageStretch=No
43 WizardSmallImageFile=X:\setupsmall.bmp
44 VersionInfoCompany=The FlightGear Team
45 UninstallDisplayIcon={app}\bin\fgrun.exe
46
47 [Tasks]
48 ; 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.
49 Name: "desktopicon"; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"
50 Name: "insoal"; Description: "Install OpenAL (the sound engine)"
51
52 [Files]
53 ; NOTE: run subst X: F:\ (or whatever path the expanded tree resides at)
54 Source: "X:\*.txt"; DestDir: "{app}"; Flags: ignoreversion
55 Source: "X:\bin\*.*"; DestDir: "{app}\bin"; Flags: ignoreversion recursesubdirs
56 ;;; Source: "X:\bin\vcredist_x86.exe"; DestDir: "{app}\bin"; Flags: ignoreversion
57 Source: "X:\bin\oalinst.exe"; DestDir: "{app}\bin"; Flags: ignoreversion
58 Source: "X:\data\*.*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs
59 ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
60
61 [Dirs]
62 ; Make the user installable scenery directory
63 Name: "{app}\scenery"; Permissions: everyone-modify
64 Name: "{code:TerrasyncDir}"; Permissions: everyone-modify
65
66 [Icons]
67 Name: "{group}\FlightGear {#FGVER}"; Filename: "{app}\bin\fgrun.exe"; WorkingDir: "{app}";
68 ; Name: "{group}\FlightGear"; Filename: "{app}\bin\fgfs.exe"; Parameters: "--fg-root=."; WorkingDir: "{app}";
69 Name: "{group}\FlightGear Manual"; Filename: "{app}\data\Docs\getstart.pdf"
70 Name: "{group}\FlightGear Documentation"; Filename: "{app}\data\Docs\index.html"
71 Name: "{group}\Flightgear Wiki"; Filename: "http://wiki.flightgear.org"
72 Name: "{userdesktop}\FlightGear {#FGVER}"; Filename: "{app}\bin\fgrun.exe"; WorkingDir: "{app}"; Tasks: desktopicon
73
74 Name: "{group}\Tools\Install & Uninstall Scenery"; Filename: "{app}\bin\fgadmin.exe"; WorkingDir: "{app}";
75 Name: "{group}\Tools\TerraSync"; Filename: "{app}\bin\terrasync.exe"; Parameters: "-S -p 5505 -d ""{app}\terrasync"""; WorkingDir: "{app}";
76 Name: "{group}\Tools\Uninstall FlightGear {#FGVER}"; Filename: "{uninstallexe}"
77
78 Name: "{group}\Tools\js_demo"; Filename: "{app}\bin\js_demo.exe"
79 Name: "{group}\Tools\fgjs"; Filename: "cmd"; Parameters: "/k fgjs.exe ""--fg-root={app}\data"""; WorkingDir: "{app}\bin";
80 Name: "{group}\Tools\GPSsmooth"; Filename: "cmd"; Parameters: "/k ""{app}\bin\GPSsmooth.exe"" -h"; WorkingDir: "{app}\bin";
81 Name: "{group}\Tools\UGsmooth"; Filename: "cmd"; Parameters: "/k ""{app}\bin\UGsmooth.exe"" -h"; WorkingDir: "{app}\bin";
82 Name: "{group}\Tools\MIDSsmooth"; Filename: "cmd"; Parameters: "/k ""{app}\bin\MIDSsmooth.exe"" -h"; WorkingDir: "{app}\bin";
83 Name: "{group}\Tools\metar"; Filename: "cmd"; Parameters: "/k ""{app}\bin\metar.exe"" -h"; WorkingDir: "{app}\bin";
84 Name: "{group}\Tools\yasim"; Filename: "cmd"; Parameters: "/k ""{app}\bin\yasim.exe"" -h"; WorkingDir: "{app}\bin";
85 Name: "{group}\Tools\fgpanel"; Filename: "cmd"; Parameters: "/k ""{app}\bin\fgpanel.exe"" -h"; WorkingDir: "{app}\bin";
86
87 Name: "{group}\Tools\Explore Documentation Folder"; Filename: "{app}\data\Docs"
88
89 ; For running flightgear directly
90 ; Name: "{userdesktop}\FlightGear {#FGVER}"; Filename: "{app}\bin\fgfs.exe"; Parameters: "--fg-root=."; WorkingDir: "{app}"; Tasks: desktopicon
91
92 [Run]
93 Filename: "{app}\bin\vcredist_x86.exe"; WorkingDir: "{app}"; Parameters: "/passive /norestart"; Description: "Installing MS Visual C++ runtime components"
94
95 ; Put installation directory into the fgrun.prefs
96 Filename: "{app}\bin\fgrun.exe"; WorkingDir: "{app}\bin"; Parameters: "--silent ""--fg-exe={app}\bin\fgfs.exe"" ""--ts-exe={app}\bin\terrasync.exe"" ""--fg-root={app}\data"" ""--fg-scenery={app}\data\Scenery;{app}\scenery;{code:TerrasyncDir}"" --ts-dir=3"
97
98 ; Put installation and source directories into the fgadmin.prefs
99 Filename: "{app}\bin\fgadmin.exe"; WorkingDir: "{app}\bin"; Parameters: "--silent ""--install-source={src}\..\Scenery"" ""--scenery-dest={app}\scenery"""
100 Filename: "{app}\bin\oalinst.exe"; WorkingDir: "{app}"; Description: "Installing OpenAL"; Tasks: insoal
101 ;Filename: "{app}\bin\fgrun.exe"; WorkingDir: "{app}"; Description: "Launch FlightGear"; Flags: postinstall skipifsilent
102
103 [Registry]
104 Root: HKLM; Subkey: "Software\flightgear.org"; ValueType: string; ValueName: "TerrasyncDir"; ValueData: "{code:TerrasyncDir}"
105
106 [Code]
107 var
108   TerrasyncDirPage: TInputDirWizardPage;
109
110 procedure URLLabelOnClick(Sender: TObject);
111 var
112   ErrorCode: Integer;
113 begin
114   ShellExec('open', 'http://www.flightgear.org', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
115 end;
116
117 procedure CreateURLLabel(ParentForm: TSetupForm; CancelButton: TNewButton);
118 var
119   URLLabel: TNewStaticText;
120 begin
121   URLLabel := TNewStaticText.Create(ParentForm);
122   URLLabel.Caption := 'www.flightgear.org';
123   URLLabel.Cursor := crHand;
124   URLLabel.OnClick := @URLLabelOnClick;
125   URLLabel.Parent := ParentForm;
126   { Alter Font *after* setting Parent so the correct defaults are inherited first }
127   URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
128   URLLabel.Font.Color := clBlue;
129   URLLabel.Top := CancelButton.Top + CancelButton.Height - URLLabel.Height - 2;
130   URLLabel.Left := ScaleX(20);
131 end;
132
133 procedure InitializeWizard();
134 begin
135   TerrasyncDirPage := CreateInputDirPage(wpSelectDir,
136     'Select Terrasync Directory', 'Where should scenery downloaded by Terrasync be put?',
137     'Select the folder in which Terrasync would download additional scenery, then click Next.',
138     False, 'Terrasync Folder');
139   TerrasyncDirPage.Add('');
140
141   CreateURLLabel(WizardForm, WizardForm.CancelButton);
142 end;
143
144 function NextButtonClick(CurPageID: Integer): Boolean;
145 begin
146   if CurPageID = wpSelectDir then begin
147     TerrasyncDirPage.Values[0] := GetPreviousData( 'TerrasyncDir', ExpandConstant('{reg:HKLM\Software\flightgear.org,TerrasyncDir|{app}\terrasync}') );
148   end;
149   Result := True;
150 end;
151
152 function TerrasyncDir(Param: String): String;
153 begin
154   Result := TerrasyncDirPage.Values[0];
155 end;
156
157 procedure RegisterPreviousData(PreviousDataKey: Integer);
158 begin
159   { Store the settings so we can restore them next time }
160   SetPreviousData(PreviousDataKey, 'TerrasyncDir', TerrasyncDirPage.Values[0]);
161 end;
162
163 function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
164 var
165   S: String;
166 begin
167   S := '';
168   S := S + MemoDirInfo + NewLine + NewLine;
169   S := S + 'Terrasync folder:' + NewLine;
170   S := S + Space + TerrasyncDirPage.Values[0] + NewLine + NewLine;
171   S := S + MemoGroupInfo + NewLine + NewLine;
172   S := S + MemoTasksInfo + NewLine + NewLine;
173
174   Result := S;
175 end;