added installer full stuff

git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@798 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
legrand 2007-11-22 16:28:34 +00:00
commit 8ae1c8c30d

View file

@ -1,78 +1,105 @@
; Script generated by the Inno Setup Script Wizard. ; ParadisEO install script
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! ; Author: Thomas Legrand
#define generatorWizardPageIndex= 7 #define generatorWizardPageIndex= 7
#define launchBuildWizardPageIndex= 12 #define launchBuildWizardPageIndex= 12
[Setup] [Setup]
AppName=ParadisEO AppName=ParadisEO
AppVerName=ParadisEO-ix86-1.1 AppVerName=ParadisEO-ix86-1.0
AppPublisher=INRIA Futurs Dolphin Project-team AppPublisher=INRIA Futurs Dolphin Project-team
AppPublisherURL=http://paradiseo.gforge.inria.fr AppPublisherURL=http://paradiseo.gforge.inria.fr
AppSupportURL=http://paradiseo.gforge.inria.fr AppSupportURL=http://paradiseo.gforge.inria.fr
AppUpdatesURL=http://paradiseo.gforge.inria.fr AppUpdatesURL=http://paradiseo.gforge.inria.fr
DefaultDirName={pf}\ParadisEO DefaultDirName={pf}\ParadisEO
DefaultGroupName=ParadisEO DefaultGroupName=ParadisEO
LicenseFile=E:\software\paradisEO\windows installer\LICENSE.txt LicenseFile=E:\software\paradisEO\repository\trunk\LICENSE
InfoBeforeFile=E:\software\paradisEO\windows installer\INSTRUCTIONS.txt
InfoAfterFile=E:\software\paradisEO\windows installer\FINAL_INSTRUCTIONS.txt
OutputDir=E:\software\paradisEO\windows installer\compiler output OutputDir=E:\software\paradisEO\windows installer\compiler output
OutputBaseFilename=paradiseo-1.0-win32-installer OutputBaseFilename=paradiseo-1.0-win32-preinstaller
Compression=lzma Compression=lzma/max
SolidCompression=yes SolidCompression=yes
WizardImageFile=E:\software\paradisEO\img\paradisEO.bmp WizardImageFile=E:\software\paradisEO\repository\utilities\trunk\windows\img\paradiseo.bmp
SetupIconFile=E:\software\paradisEO\repository\utilities\trunk\windows\img\paradiseo.ico
UninstallDisplayName=ParadisEO UninstallDisplayName=ParadisEO
WindowVisible=False
RestartIfNeededByRun=False
ShowTasksTreeLines=True
VersionInfoVersion=1.0
VersionInfoCompany=INRIA
VersionInfoDescription=ParadisEO
VersionInfoTextVersion=ParadisEO
[Languages] [Languages]
Name: "english"; MessagesFile: "compiler:Default.isl" Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl" Name: "french"; MessagesFile: "compiler:Languages\French.isl"
[Tasks] [CustomMessages]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked english.CMakeMissing=CMake cannot be found on your computer. You must have CMake installed to use ParadisEO.
english.FullInstall=Full installation
english.CustomInstall=Custom installation
english.EoDescription=EO: Evolving Objects: Library for evolutionnary computation
english.MoDescription=MO: Moving Objects: Single based metaheuristics computation
english.MoeoDescription=MOEO: Multi Objective Evolving Objects
english.ErrorOccured=An error has occured
english.LaunchingBuildProcess=Launching CMake build process...
english.error=Error
english.ErrorAbort=Error,abort.
english.CannotCompleteInstall=Impossible to complete the install of
english.BPFinished=Finished
english.BPSuccessfull=The build process has been successfully performed.
english.SelectCompiler=Select the program you want to use to compile:
english.ChooseGenerator=ParadisEO can be compiled using several generators.
english.GenCMakeFiles=Generate CMake configuration files
english.BuildProcess=
english.NextGenCaption=Click on the 'Next' button to launch the build process and generate the configuration files
english.ProcessingCMake=Generating the configuration files...
english.DolphinMsg=ParadisEO: An INRIA Dolphin Team project - 2007
;--------------------------------------------------------------------------------------------------------------------------------- french.CMakeMissing=CMake n'a pas été détecté sur votre ordinateur. CMake doit être installé pour utiliser ParadisEO.
french.FullInstall=Installation complète
french.CustomInstall=Installation personnalisée
french.EoDescription= EO: Evolving Objects: Librairie dédiée aux méthodes évolutionnaires
french.MoDescription= MO: Moving Objects: Métaheuristiques à base de solutions uniques
french.MoeoDescription= MOEO: Multi Objective Evolving Objects: Module multi-objectif
french.ErrorOccured=Une erreur est survenue
french.LaunchingBuildProcess=Construction des fichiers de configuration (build process)...
french.error=Erreur
french.ErrorAbort=Une erreur est survenue, installation annulée.
french.CannotCompleteInstall=Impossible de terminer l'installation de
french.BPFinished=Fin de la construction des fichiers de configuration
french.BPSuccessfull=Succès.
french.SelectCompiler=Sélectionnez le programme que vous souhaitez utiliser pour compiler:
french.ChooseGenerator=ParadisEO peut être compiler par plusieurs programmes.
french.GenCMakeFiles=Générer les fichiers de configuration CMake
french.BuildProcess=
french.NextGenCaption=Cliquez sur le bouton 'Suivant' pour lancer CMake et générer les fichiers de configuration
french.ProcessingCMake=Génération des fichiers de configuration en cours...
french.DolphinMsg=ParadisEO: Un projet de l'équipe INRIA Dolphin - 2007
[Types] [Types]
Name: "full"; Description: "Full installation" Name: "custom"; Description: {cm:CustomInstall}; Flags: iscustom
Name: "custom"; Description: "Custom installation"; Flags: iscustom Name: "full"; Description: {cm:FullInstall}
[Components] [Components]
Name: "eo"; Description: "EO: Evolving Objects: Library for evolutionnary computation"; Types: full custom; Flags: fixed Name: eo; Description: {cm:EoDescription}; Types: full custom; Flags: fixed
Name: mo; Description:{cm:MoDescription}; Types: full custom;
Name: "mo"; Description: "MO: Moving Objects: Single based mateheuristics computation"; Types: full custom ; Flags: checkablealone Name: moeo; Description: {cm:MoeoDescription}; Types: full custom;
Name: "mo\doc"; Description: "Documentation (html, latex, man)"; Types: full custom; Flags: dontinheritcheck
Name: "mo\tutorial"; Description: "Ready-to-use tutorials"; Types: full custom; Flags: dontinheritcheck
Name: "moeo"; Description: "MOEO: Multi Objective Evolving Objects"; Types: full ; Flags: checkablealone
Name: "moeo\doc"; Description: "Documentation (html, latex, man)"; Types: full custom; Flags: dontinheritcheck
Name: "moeo\tutorial"; Description: "Ready-to-use tutorials"; Types: full custom; Flags: dontinheritcheck
;---------------------------------------------------------------------------------------------------------------------------------
[Files] [Files]
Source: "E:\software\paradisEO\windows installer\files\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "E:\software\paradisEO\repository\tags\paradiseo-ix86-1.0\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
// Source: "E:\software\paradisEO\windows installer\files\generator.config"; DestDir: "{app}"; AfterInstall: LaunchBuildProcess() ;
[Icons]
Name: "{group}\ParadisEO"; Filename: "{app}\genParadisEOSol.bat"
Name: "{commondesktop}\ParadisEO"; Filename: "{app}\genParadisEOSol.bat"; Tasks: desktopicon
[Run]
Filename: "{app}\genParadisEOSol.bat"; Description: "{cm:LaunchProgram, Lancer la compilation}"; Flags: nowait postinstall skipifsilent
[Code] [Code]
var var
GeneratorPage: TWizardPage; GeneratorPage: TWizardPage;
BuildProcessPage: TWizardPage; BuildProcessPage: TWizardPage;
ProgressPage: TOutputProgressWizardPage; ProgressPage: TOutputProgressWizardPage;
GeneratorBox: TNewCheckListBox; GeneratorBox: TNewCheckListBox;
Generator: String; Generator: String;
ProgressBarLabel: TLabel; ProgressBarLabel: TLabel;
ProgressBar: TNewProgressBar; ProgressBar: TNewProgressBar;
procedure SetCmakeGenerator(); procedure SetCmakeGenerator();
begin begin
if GeneratorBox.Checked[1] then if GeneratorBox.Checked[1] then
@ -113,97 +140,177 @@ begin
end; end;
procedure onErrorMsg(ErrorCode: Integer); function isError(ErrorCode: Integer): Boolean;
begin begin
MsgBox('An error has occured. Impossible to complete the install', mbError, mb_Ok); if not (ErrorCode = 0) then
exit; begin
MsgBox(CustomMessage('ErrorOccured') + ': [code='+ IntToStr(ErrorCode) + ']' , mbCriticalError, mb_Ok);
Result:= true;
end else begin
Result:= false;
end;
end; end;
procedure LaunchBuildProcess(); function checkCMakeAvailable(): Integer;
var var
ErrorCode: Integer; ErrorCode: Integer;
FilePath: String; FilePath: String;
begin begin
// Need the app path // Need the app path
FilePath := ExpandConstant('{app}'); FilePath := ExpandConstant('{app}');
// Set the Cmake generator // launch CMake for MOEO
SetCmakeGenerator(); ShellExec('open', 'cmake.exe','','', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
Result:= ErrorCode;
end;
function LaunchEOBuildProcess():Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CMake for EO // launch CMake for EO
if not ShellExec('open', 'cmake.exe', ' ..\' + ' -G"' + Generator + '"', FilePath +'\paradiseo-eo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode) then ShellExec('open', 'cmake.exe', ' ..\' + ' -G"' + Generator + '"', FilePath +'\paradiseo-eo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
begin
onErrorMsg(ErrorCode); Result:= ErrorCode;
end; end;
// launch CMake for MO
if not ShellExec('open', 'cmake.exe', ' ..\' + ' -G"' + Generator + '"', FilePath +'\paradiseo-mo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode) then function LaunchMOBuildProcess(): Integer;
var
ErrorCode: Integer;
FilePath: String;
begin begin
onErrorMsg(ErrorCode); // Need the app path
end; FilePath := ExpandConstant('{app}');
// launch CMake for MOEO // launch CMake for MOEO
if not ShellExec('open', 'cmake.exe', ' ..\' + ' -G"' + Generator + '"' + ' -Dconfig=' + FilePath + '\install.cmake', FilePath +'\paradiseo-moeo\build', 0, ewWaitUntilTerminated, ErrorCode) then ShellExec('open', 'cmake.exe', ' ..\' + ' -G"' + Generator + '" -Dconfig="'+FilePath + '\install.cmake"', FilePath +'\paradiseo-mo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
Result:= ErrorCode;
end;
function LaunchMOEOBuildProcess(): Integer;
var
ErrorCode: Integer;
FilePath: String;
begin begin
onErrorMsg(ErrorCode); // Need the app path
end; FilePath := ExpandConstant('{app}');
// launch CMake for MOEO
ShellExec('open', 'cmake.exe', ' ..\' + ' -G"' + Generator + '" -Dconfig="'+FilePath + '\install.cmake"', FilePath +'\paradiseo-moeo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
Result:= ErrorCode;
end; end;
function ShouldSkipPage(PageID: Integer): Boolean;
procedure updateProgressBar(StartFrom: Integer;ProgressPurcentage: Integer);
var
I: Integer;
begin begin
{ Skip pages that shouldn't be shown } try
if (PageID = BuildProcessPage.ID) then for I := StartFrom to ProgressPurcentage do begin
Result := False ProgressPage.SetProgress(I, 100);
else Sleep(50);
Result := False; end;
finally
end;
end; end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then begin
if (isError(checkCMakeAvailable())) then begin
MsgBox(CustomMessage('CMakeMissing'), mbCriticalError, mb_Ok);
Abort;
end;
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean; function NextButtonClick(CurPageID: Integer): Boolean;
var var
I: Integer; I: Integer;
begin begin
if CurPageID = BuildProcessPage.ID then begin if (CurPageID = BuildProcessPage.ID) then begin
MsgBox('Arrived in build wizard page', mbError, mb_Ok); ProgressPage.SetText('',CustomMessage('LaunchingBuildProcess'));
ProgressPage.SetText('Launching CMake build process...', ''); updateProgressBar(0,0);
ProgressPage.SetProgress(0, 0);
ProgressPage.Show; ProgressPage.Show;
try SetCmakeGenerator();
for I := 0 to 10 do begin updateProgressBar(0,5);
ProgressPage.SetProgress(I, 10);
Sleep(100); if (isError(launchEOBuildProcess())) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+'ParadisEO-EO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end; end;
finally updateProgressBar(5,50);
if IsComponentSelected('mo') then
begin
if (isError(launchMOBuildProcess())) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+'ParadisEO-MO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
end;
updateProgressBar(50,80);
if IsComponentSelected('moeo') then
begin
if (isError(launchMOEOBuildProcess())) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+'ParadisEO-MOEO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
end;
updateProgressBar(80,100);
ProgressPage.SetText(CustomMessage('BPFinished'), CustomMessage('BPSuccessfull'));
sleep(2000);
ProgressPage.SetText('Fin','Vous devez maintenant compiler');
ProgressPage.Hide; ProgressPage.Hide;
end; end;
end
Result := True; Result := True;
end; end;
procedure CreateTheWizardPages; procedure CreateTheWizardPages;
var
Lbl: TLabel;
begin begin
GeneratorPage := CreateCustomPage({#generatorWizardPageIndex}, 'ParadisEO can be compiled using several generators.', ''); GeneratorPage := CreateCustomPage({#generatorWizardPageIndex}, CustomMessage('ChooseGenerator'), '');
GeneratorBox := TNewCheckListBox.Create(GeneratorPage); GeneratorBox := TNewCheckListBox.Create(GeneratorPage);
GeneratorBox.Top := ScaleY(15); GeneratorBox.Top := ScaleY(0);
GeneratorBox.Width := GeneratorPage.SurfaceWidth; GeneratorBox.Width := GeneratorPage.SurfaceWidth;
GeneratorBox.Height := ScaleY(200); GeneratorBox.Height := ScaleY(180);
GeneratorBox.BorderStyle := bsNone; GeneratorBox.BorderStyle := bsNone;
GeneratorBox.ParentColor := True; GeneratorBox.ParentColor := True;
GeneratorBox.MinItemHeight := WizardForm.TasksList.MinItemHeight; GeneratorBox.MinItemHeight := WizardForm.TasksList.MinItemHeight;
GeneratorBox.ShowLines := False; GeneratorBox.ShowLines := False;
GeneratorBox.WantTabs := True; GeneratorBox.WantTabs := True;
GeneratorBox.Parent := GeneratorPage.Surface; GeneratorBox.Parent := GeneratorPage.Surface;
GeneratorBox.AddGroup('Select the program that will be used to compile:', '', 0, nil); GeneratorBox.AddGroup(CustomMessage('SelectCompiler'), '', 0, nil);
GeneratorBox.AddRadioButton('Visual Studio 8 2005', '', 0, True, True, nil); GeneratorBox.AddRadioButton('Visual Studio 8 2005', '', 0, True, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 7 .NET 2003', '', 0, False, True, nil); GeneratorBox.AddRadioButton('Visual Studio 7 .NET 2003', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('NMake', '', 0, False, True, nil); GeneratorBox.AddRadioButton('NMake', '', 0, False, True, nil);
@ -212,24 +319,20 @@ begin
GeneratorBox.AddRadioButton('MSYS', '', 0, False, True, nil); GeneratorBox.AddRadioButton('MSYS', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('WMake', '', 0, False, True, nil); GeneratorBox.AddRadioButton('WMake', '', 0, False, True, nil);
BuildProcessPage := CreateCustomPage({#launchBuildWizardPageIndex},CustomMessage('GenCMakeFiles'),CustomMessage('BuildProcess'));
BuildProcessPage := CreateCustomPage({#launchBuildWizardPageIndex}, 'Generate CMake files', 'Build process');
Lbl := TLabel.Create(BuildProcessPage); Lbl := TLabel.Create(BuildProcessPage);
Lbl.Top := Memo.Top + Memo.Height + ScaleY(8); Lbl.Top := ScaleY(20);
Lbl.Caption := 'TLabel'; Lbl.Caption :=CustomMessage('NextGenCaption');
Lbl.AutoSize := True; Lbl.AutoSize := True;
Lbl.Parent := Page.Surface; Lbl.Parent := BuildProcessPage.Surface;
ProgressPage := CreateOutputProgressPage('Build process',
'Generating the configuration files...');
ProgressPage := CreateOutputProgressPage(CustomMessage('ProcessingCMake'),CustomMessage('BuildProcess'));
end; end;
procedure AboutButtonOnClick(Sender: TObject); procedure AboutButtonOnClick(Sender: TObject);
begin begin
MsgBox('ParadisEO: An INRIA Dolphin Team project - 2007 ', mbInformation, mb_Ok); MsgBox(CustomMessage('DolphinMsg'), mbInformation, mb_Ok);
end; end;
@ -265,7 +368,6 @@ begin
URLLabel.Cursor := crHand; URLLabel.Cursor := crHand;
URLLabel.OnClick := @URLLabelOnClick; URLLabel.OnClick := @URLLabelOnClick;
URLLabel.Parent := WizardForm; URLLabel.Parent := WizardForm;
{ Alter Font *after* setting Parent so the correct defaults are inherited first }
URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline]; URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
URLLabel.Font.Color := clBlue; URLLabel.Font.Color := clBlue;
URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2; URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2;
@ -273,11 +375,6 @@ begin
end; end;
procedure DeinitializeSetup();
begin
end;
[UninstallDelete] [UninstallDelete]
Type: files; Name: "{app}\*" Type: files; Name: "{app}\*"
Type: filesandordirs; Name: "{app}\*" Type: filesandordirs; Name: "{app}\*"