lazarus/ide/initialsetupdlgs.pas
mattias 9644a95a4c added warnings when fpc source dir invalid
git-svn-id: trunk@3857 -
2003-02-19 23:22:45 +00:00

176 lines
7.0 KiB
ObjectPascal

{
/***************************************************************************
initialsetupdlgs.pas
--------------------
Contains the dialogs to help users to setup basic settings.
***************************************************************************/
***************************************************************************
* *
* This source is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This code is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* General Public License for more details. *
* *
* A copy of the GNU General Public License is available on the World *
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
* obtain it by writing to the Free Software Foundation, *
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
***************************************************************************
Author: Mattias Gaertner
}
unit InitialSetupDlgs;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Buttons, Dialogs, EnvironmentOpts,
FileCtrl, LazarusIDEStrConsts, ExtCtrls, StdCtrls, ComCtrls, LazConf,
IDEProcs;
procedure SetupCompilerFilename(var InteractiveSetup: boolean);
procedure SetupFPCSourceDirectory(var InteractiveSetup: boolean);
procedure SetupLazarusDirectory(var InteractiveSetup: boolean);
implementation
procedure SetupCompilerFilename(var InteractiveSetup: boolean);
var
DefaultCompPath: String;
CurCompilerFilename: String;
r: integer;
begin
CurCompilerFilename:=EnvironmentOptions.CompilerFilename;
if CurCompilerFilename='' then
CurCompilerFilename:=FindDefaultCompilerPath;
if not FileIsExecutable(CurCompilerFilename) then begin
if not InteractiveSetup then exit;
if CurCompilerFilename='' then begin
MessageDlg('Free Pascal Compiler not found',
'The Free Pascal compiler (filename: ppc386) was not found.'#13
+'It is recommended that you install fpc.',
mtWarning,[mbIgnore],0);
end else begin
DefaultCompPath:=FindDefaultCompilerPath;
if CompareFilenames(DefaultCompPath,CurCompilerFilename)<>0 then begin
r:=MessageDlg('Invalid Compiler Filename',
'The current compiler filename "'+CurCompilerFilename+'"'#13
+'is not a valid executable.'#13
+'Choose Ok to choose the default "'+DefaultCompPath+'".'#13
+'Otherwise check Environment -> Environment Options -> Files',
mtWarning,[mbOk,mbIgnore],0);
if r=mrOk then
CurCompilerFilename:=DefaultCompPath;
end else begin
MessageDlg('Invalid Compiler Filename',
'The current compiler filename "'+CurCompilerFilename+'"'#13
+'is not a valid executable.'#13
+'Plz check Environment -> Environment Options -> Files',
mtWarning,[mbIgnore],0);
end;
end;
end;
EnvironmentOptions.CompilerFilename:=CurCompilerFilename;
end;
procedure SetupFPCSourceDirectory(var InteractiveSetup: boolean);
var
CurFPCSrcDir: String;
DefaultFPCSrcDir: String;
r: integer;
begin
CurFPCSrcDir:=EnvironmentOptions.FPCSourceDirectory;
if CurFPCSrcDir='' then
CurFPCSrcDir:=FindDefaultFPCSrcDirectory;
if not CheckFPCSourceDir(CurFPCSrcDir) then begin
if (not InteractiveSetup)
or (not FileIsExecutable(EnvironmentOptions.CompilerFilename)) then
exit;
if CurFPCSrcDir='' then begin
MessageDlg('Free Pascal Sources not found',
'The Free Pascal source directory was not found.'#13
+'Some code functions will not work.'#13
+'It is recommended that you install it and set the path'#13
+'Environment -> Environment Options -> Files',
mtWarning,[mbIgnore],0);
end else begin
DefaultFPCSrcDir:=FindDefaultFPCSrcDirectory;
if CompareFilenames(DefaultFPCSrcDir,CurFPCSrcDir)<>0 then begin
r:=MessageDlg('Invalid Free Pascal source directory',
'The current Free Pascal source directory "'+CurFPCSrcDir+'"'#13
+'does not look correct.'#13
+'Choose Ok to choose the default "'+DefaultFPCSrcDir+'".'#13
+'Otherwise check Environment -> Environment Options -> Files',
mtWarning,[mbOk,mbIgnore],0);
if r=mrOk then
CurFPCSrcDir:=DefaultFPCSrcDir;
end else begin
MessageDlg('Invalid Free Pascal source directory',
'The current Free Pascal source directory "'+CurFPCSrcDir+'"'#13
+'does not look correct.'#13
+'Check Environment -> Environment Options -> Files',
mtWarning,[mbIgnore],0);
end;
end;
end;
EnvironmentOptions.FPCSourceDirectory:=CurFPCSrcDir;
end;
procedure SetupLazarusDirectory(var InteractiveSetup: boolean);
var
CurLazDir: String;
DefaultLazDir: String;
r: integer;
begin
CurLazDir:=EnvironmentOptions.LazarusDirectory;
if CurLazDir='' then
CurLazDir:=ProgramDirectory;
if not CheckLazarusDirectory(CurLazDir) then begin
if not InteractiveSetup then exit;
if CurLazDir='' then begin
MessageDlg('Lazarus directory not found',
'The Lazarus directory was not found.'#13
+'You will not be able to create LCL applications.'#13
+'Plz check Environment -> Environment Options -> Files',
mtWarning,[mbIgnore],0);
end else begin
DefaultLazDir:=ProgramDirectory;
if CompareFilenames(DefaultLazDir,CurLazDir)<>0 then begin
r:=MessageDlg('Lazarus directory not found',
'The current Lazarus directory "'+CurLazDir+'"'#13
+'does not look correct.'#13
+'Without it You will not be able to create LCL applications.'#13
+'Choose Ok to choose the default "'+DefaultLazDir+'".'#13
+'Otherwise check Environment -> Environment Options -> Files',
mtWarning,[mbOk,mbIgnore],0);
if r=mrOk then
CurLazDir:=DefaultLazDir;
end else begin
MessageDlg('Lazarus directory not found',
'The current Lazarus directory "'+CurLazDir+'"'#13
+'does not look correct.'#13
+'Without it You will not be able to create LCL applications.'#13
+'Check Environment -> Environment Options -> Files',
mtWarning,[mbIgnore],0);
end;
end;
end;
EnvironmentOptions.LazarusDirectory:=CurLazDir;
end;
end.