From 7393b11d0ae7c80cc72e355958c763c73cb36980 Mon Sep 17 00:00:00 2001 From: "Curtis L. Olson" Date: Mon, 28 Feb 2011 08:08:08 -0600 Subject: [PATCH] Variant of the iss script for packaging "developers snapshot" releases. Paths and variables have been carefully selected so this install can coexist with the release install. The only thing shared is the "terrasync" directory. --- package/Win32-Inno/FlightGear-devel.iss | 173 ++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 package/Win32-Inno/FlightGear-devel.iss diff --git a/package/Win32-Inno/FlightGear-devel.iss b/package/Win32-Inno/FlightGear-devel.iss new file mode 100644 index 000000000..568a9d53c --- /dev/null +++ b/package/Win32-Inno/FlightGear-devel.iss @@ -0,0 +1,173 @@ +; 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; -- 2.39.5