make executable location is a environment option now.

git-svn-id: trunk@5716 -
This commit is contained in:
vincents 2004-07-30 15:38:16 +00:00
parent cf925ed5a5
commit 12f8270c5b
8 changed files with 159 additions and 25 deletions

View File

@ -1,8 +1,8 @@
#
# Don't edit, this file is generated by FPCMake Version 1.1 [2004/05/29]
# Don't edit, this file is generated by FPCMake Version 1.1 [2004/07/25]
#
default: all
MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom
MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
BSDs = freebsd netbsd openbsd darwin
UNIXs = linux $(BSDs) sunos qnx
FORCE:
@ -545,6 +545,11 @@ EXEEXT=
SHAREDLIBEXT=.library
FPCMADE=fpcmade.amg
endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
FPCMADE=fpcmade.mos
endif
ifeq ($(OS_TARGET),atari)
EXEEXT=.ttp
FPCMADE=fpcmade.ata
@ -1369,6 +1374,17 @@ REQUIRE_PACKAGES_NETDB=1
REQUIRE_PACKAGES_LIBASYNC=1
endif
endif
ifeq ($(OS_TARGET),morphos)
ifeq ($(CPU_TARGET),powerpc)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
REQUIRE_PACKAGES_FCL=1
REQUIRE_PACKAGES_REGEXPR=1
REQUIRE_PACKAGES_PASJPEG=1
REQUIRE_PACKAGES_NETDB=1
REQUIRE_PACKAGES_LIBASYNC=1
endif
endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)

View File

@ -112,7 +112,6 @@ type
FItemLCL: TBuildLazarusItem;
FItemPkgReg: TBuildLazarusItem;
FItemSynEdit: TBuildLazarusItem;
fMakeFilename: string;
fExtraOptions: string;
FTargetDirectory: string;
fTargetOS: string;
@ -149,7 +148,7 @@ type
property ItemIDE: TBuildLazarusItem read FItemIDE;
property ItemExamples: TBuildLazarusItem read FItemExamples;
property CleanAll: boolean read fCleanAll write fCleanAll;
property MakeFilename: string read fMakeFilename write fMakeFilename;
//property MakeFilename: string read fMakeFilename write fMakeFilename;
property ExtraOptions: string read fExtraOptions write fExtraOptions;
property TargetOS: string read fTargetOS write SetTargetOS;
property LCLPlatform: TLCLPlatform read fLCLPlatform write fLCLPlatform;
@ -212,7 +211,7 @@ function ShowConfigureBuildLazarusDlg(
function BuildLazarus(Options: TBuildLazarusOptions;
ExternalTools: TExternalToolList; Macros: TTransferMacroList;
const PackageOptions, CompilerPath: string;
const PackageOptions, CompilerPath, MakePath: string;
Flags: TBuildLazarusFlags): TModalResult;
function CreateBuildLazarusOptions(Options: TBuildLazarusOptions;
ItemIndex: integer; Macros: TTransferMacroList;
@ -283,7 +282,7 @@ end;
function BuildLazarus(Options: TBuildLazarusOptions;
ExternalTools: TExternalToolList; Macros: TTransferMacroList;
const PackageOptions, CompilerPath: string;
const PackageOptions, CompilerPath, MakePath: string;
Flags: TBuildLazarusFlags): TModalResult;
var
Tool: TExternalToolOptions;
@ -296,7 +295,7 @@ begin
Tool:=TExternalToolOptions.Create;
try
// setup external tool
Tool.Filename:=Options.MakeFilename;
Tool.Filename:=MakePath;
Tool.EnvironmentOverrides.Values['LCL_PLATFORM']:=
LCLPlatformNames[Options.LCLPlatform];
Tool.EnvironmentOverrides.Values['LANG']:= 'en_US';
@ -955,10 +954,9 @@ begin
XMLConfig.SetDeleteValue(Path+'CleanAll/Value',fCleanAll,true);
XMLConfig.SetDeleteValue(Path+'ExtraOptions/Value',fExtraOptions,'');
XMLConfig.SetDeleteValue(Path+'TargetOS/Value',TargetOS,'');
XMLConfig.SetDeleteValue(Path+'MakeFilename/Value',fMakeFilename,'');
XMLConfig.SetDeleteValue(Path+'LCLPlatform/Value',
LCLPlatformNames[fLCLPlatform],
LCLPlatformNames[lpGtk]);
GetDefaultLCLWidgetType);
XMLConfig.SetDeleteValue(Path+'TargetDirectory/Value',
FTargetDirectory,DefaultTargetDirectory);
XMLConfig.SetDeleteValue(Path+'WithStaticPackages/Value',FWithStaticPackages,
@ -980,7 +978,6 @@ begin
CleanAll:=Source.CleanAll;
ExtraOptions:=Source.ExtraOptions;
TargetOS:=Source.TargetOS;
MakeFilename:=Source.MakeFilename;
LCLPlatform:=Source.LCLPlatform;
TargetDirectory:=Source.TargetDirectory;
WithStaticPackages:=Source.WithStaticPackages;
@ -1045,9 +1042,8 @@ begin
fCleanAll:=XMLConfig.GetValue(Path+'CleanAll/Value',true);
fExtraOptions:=XMLConfig.GetValue(Path+'ExtraOptions/Value','');
TargetOS:=XMLConfig.GetValue(Path+'TargetOS/Value','');
fMakeFilename:=XMLConfig.GetValue(Path+'MakeFilename/Value','');
fLCLPlatform:=StrToLCLPlatform(XMLConfig.GetValue(Path+'LCLPlatform/Value',
LCLPlatformNames[lpGtk]));
GetDefaultLCLWidgetType));
FTargetDirectory:=AppendPathDelim(SetDirSeparators(
XMLConfig.GetValue(Path+'TargetDirectory/Value',
DefaultTargetDirectory)));
@ -1111,11 +1107,10 @@ var
i: Integer;
begin
fCleanAll:=true;
fMakeFilename:='';
fExtraOptions:='';
FTargetDirectory:=DefaultTargetDirectory;
TargetOS:='';
fLCLPlatform:=lpGtk;
fLCLPlatform:=StrToLCLPlatform(GetDefaultLCLWidgetType);
// auto install packages
fStaticAutoInstallPackages.Clear;

View File

@ -215,7 +215,9 @@ type
FCompilerFileHistory: TStringList;
FFPCSourceDirectory: string;
FFPCSourceDirHistory: TStringList;
// TODO: store per debuggerclass options
FMakeFileName: string;
FMakeFileHistory: TStringList;
// TODO: store per debuggerclass options
// Maybe these should go to a new TDebuggerOptions class
FDebuggerClass: string;
FDebuggerFilename: string; // per debugger class
@ -249,6 +251,7 @@ type
fLanguage: TLazarusLanguage;
procedure SetCompilerFilename(const AValue: string);
procedure SetMakeFilename(const AValue: string);
procedure SetDebuggerFilename(const AValue: string);
procedure SetFPCSourceDirectory(const AValue: string);
procedure SetLazarusDirectory(const AValue: string);
@ -347,6 +350,10 @@ type
write SetFPCSourceDirectory;
property FPCSourceDirHistory: TStringList read FFPCSourceDirHistory
write FFPCSourceDirHistory;
property MakeFilename: string read FMakeFilename
write SetMakeFilename;
property MakeFileHistory: TStringList read FMakeFileHistory
write FMakeFileHistory;
property DebuggerClass: String read FDebuggerClass write FDebuggerClass;
property DebuggerFilename: string read FDebuggerFilename
write SetDebuggerFilename;
@ -509,6 +516,9 @@ type
FPCSourceDirGroupBox: TGroupBox;
FPCSourceDirComboBox: TComboBox;
FPCSourceDirButton: TButton;
MakePathGroupBox: TGroupBox;
MakePathComboBox: TComboBox;
MakePathButton: TButton;
TestBuildDirGroupBox: TGroupBox;
TestBuildDirComboBox: TComboBox;
TestBuildDirButton: TButton;
@ -547,6 +557,7 @@ type
procedure BakTypeRadioGroupClick(Sender: TObject);
procedure CompilerPathGroupBoxResize(Sender: TObject);
procedure FPCSourceDirGroupBoxResize(Sender: TObject);
procedure MakePathGroupBoxResize(Sender: TObject);
procedure FilesButtonClick(Sender: TObject);
procedure DirectoriesButtonClick(Sender: TObject);
procedure FormEditMiscGroupBoxResize(Sender: TObject);
@ -579,6 +590,7 @@ type
FOldLazarusDir: string;
FOldCompilerFilename: string;
FOldFPCSourceDir: string;
FOldMakeFilename: string;
FOldTestDir: string;
procedure SetCategoryPage(const AValue: TEnvOptsDialogPage);
procedure SetupFilesPage(Page: integer);
@ -844,6 +856,8 @@ begin
FCompilerFileHistory:=TStringList.Create;
FPCSourceDirectory:='';
FFPCSourceDirHistory:=TStringList.Create;
MakeFilename:='';
FMakeFileHistory:=TStringList.Create;
DebuggerFilename:='';
FDebuggerFileHistory:=TStringList.Create;
TestBuildDirectory:=GetDefaultTestBuildDirectory;
@ -891,6 +905,7 @@ begin
FLazarusDirsHistory.Free;
FCompilerFileHistory.Free;
FFPCSourceDirHistory.Free;
FMakeFileHistory.Free;
FDebuggerFileHistory.Free;
FTestBuildDirHistory.Free;
if IDEOptionDefs.IDEDialogLayoutList=FIDEDialogLayoutList then
@ -1079,7 +1094,13 @@ begin
if FFPCSourceDirHistory.Count=0 then begin
end;
MakeFilename:=TrimFilename(XMLConfig.GetValue(
Path+'MakeFilename/Value',FMakeFilename));
LoadRecentList(XMLConfig,FMakeFileHistory,
Path+'MakeFilename/History/');
if FMakeFileHistory.Count=0 then
GetDefaultMakeFilenames(FMakeFileHistory);
TestBuildDirectory:=XMLConfig.GetValue(
Path+'TestBuildDirectory/Value',FTestBuildDirectory);
LoadRecentList(XMLConfig,FTestBuildDirHistory,
@ -1284,6 +1305,10 @@ begin
Path+'FPCSourceDirectory/Value',FFPCSourceDirectory);
SaveRecentList(XMLConfig,FFPCSourceDirHistory,
Path+'FPCSourceDirectory/History/');
XMLConfig.SetDeleteValue(
Path+'MakeFilename/Value',FMakeFilename,'');
SaveRecentList(XMLConfig,FMakeFileHistory,
Path+'MakeFilename/History/');
XMLConfig.SetValue(
Path+'TestBuildDirectory/Value',FTestBuildDirectory);
SaveRecentList(XMLConfig,FTestBuildDirHistory,
@ -1481,6 +1506,12 @@ begin
FCompilerFilename:=TrimFilename(AValue);
end;
procedure TEnvironmentOptions.SetMakeFilename(const AValue: string);
begin
if FMakeFilename=AValue then exit;
FMakeFilename:=TrimFilename(AValue);
end;
procedure TEnvironmentOptions.SetDebuggerFilename(const AValue: string);
var
SpacePos: Integer;
@ -2205,6 +2236,33 @@ begin
OnClick:=@DirectoriesButtonClick;
end;
MakePathGroupBox:=TGroupBox.Create(Self);
with MakePathGroupBox do begin
Name:='MakePathGroupBox';
Parent:=NoteBook.Page[Page];
Caption:=dlgMakePath;
OnResize:=@MakePathGroupBoxResize;
end;
MakePathComboBox:=TComboBox.Create(Self);
with MakePathComboBox do begin
Name:='MakePathComboBox';
Parent:=MakePathGroupBox;
with Items do begin
BeginUpdate;
Add('/usr/bin/make');
EndUpdate;
end;
end;
MakePathButton:=TButton.Create(Self);
with MakePathButton do begin
Name:='MakePathButton';
Parent:=MakePathGroupBox;
Caption:='...';
OnClick:=@FilesButtonClick;
end;
TestBuildDirGroupBox:=TGroupBox.Create(Self);
with TestBuildDirGroupBox do begin
Name:='TestBuildDirGroupBox';
@ -2929,6 +2987,10 @@ begin
SetBounds(x,y,w,h);
inc(y,h+SpaceH);
with MakePathGroupBox do
SetBounds(x,y,w,h);
inc(y,h+SpaceH);
with TestBuildDirGroupBox do
SetBounds(x,y,w,h);
inc(y,h+SpaceH);
@ -3070,6 +3132,18 @@ begin
SetBounds(x+1,0,w-2-x-1,FPCSourceDirComboBox.Height);
end;
procedure TEnvironmentOptionsDialog.MakePathGroupBoxResize(Sender: TObject);
var
x: Integer;
w: Integer;
begin
w:=MakePathGroupBox.ClientWidth;
x:=w-25;
with MakePathComboBox do
SetBounds(2,0,x-1-2,Height);
with MakePathButton do
SetBounds(x+1,0,w-2-x-1,MakePathComboBox.Height);end;
procedure TEnvironmentOptionsDialog.FilesButtonClick(Sender: TObject);
var
OpenDialog: TOpenDialog;
@ -3080,16 +3154,29 @@ begin
InputHistories.ApplyFileDialogSettings(OpenDialog);
OpenDialog.Options:=OpenDialog.Options+[ofPathMustExist];
// set title
OpenDialog.Title:=lisChooseCompilerPath;
if Sender=CompilerPathButton then
OpenDialog.Title:=lisChooseCompilerPath
else if Sender=MakePathButton then
OpenDialog.Title:=lisChooseMakePath
else
exit;
if OpenDialog.Execute then begin
AFilename:=CleanAndExpandFilename(OpenDialog.Filename);
// check compiler filename
SetComboBoxText(CompilerPathComboBox,AFilename);
CheckExecutable(FOldCompilerFilename,CompilerPathComboBox.Text,
lisEnvOptDlgInvalidCompilerFilename,
lisEnvOptDlgInvalidCompilerFilenameMsg);
if Sender=CompilerPathButton then begin
// check compiler filename
SetComboBoxText(CompilerPathComboBox,AFilename);
CheckExecutable(FOldCompilerFilename,CompilerPathComboBox.Text,
lisEnvOptDlgInvalidCompilerFilename,
lisEnvOptDlgInvalidCompilerFilenameMsg);
end else if Sender=MakePathButton then begin
//check make filename
SetComboBoxText(MakePathComboBox,AFilename);
CheckExecutable(FOldMakeFilename,MakePathComboBox.Text,
lisEnvOptDlgInvalidMakeFilename,
lisEnvOptDlgInvalidMakeFilenameMsg);
end;
end;
InputHistories.StoreFileDialogSettings(OpenDialog);
finally
@ -3607,6 +3694,9 @@ begin
FPCSourceDirComboBox.Items.Assign(FPCSourceDirHistory);
FOldFPCSourceDir:=FPCSourceDirectory;
SetComboBoxText(FPCSourceDirComboBox,FPCSourceDirectory,MaxComboBoxCount);
MakePathComboBox.Items.Assign(MakeFileHistory);
FOldMakeFilename:=MakeFilename;
SetComboBoxText(MakePathComboBox,MakeFilename,MaxComboBoxCount);
TestBuildDirComboBox.Items.Assign(TestBuildDirHistory);
FOldTestDir:=TestBuildDirectory;
SetComboBoxText(TestBuildDirComboBox,TestBuildDirectory,MaxComboBoxCount);
@ -3732,6 +3822,8 @@ begin
CompilerFileHistory.Assign(CompilerPathComboBox.Items);
FPCSourceDirectory:=FPCSourceDirComboBox.Text;
FPCSourceDirHistory.Assign(FPCSourceDirComboBox.Items);
MakeFilename:=MakePathComboBox.Text;
MakeFileHistory.Assign(MakePathComboBox.Items);
TestBuildDirHistory.Assign(TestBuildDirComboBox.Items);
TestBuildDirectory:=TestBuildDirComboBox.Text;
@ -3947,14 +4039,18 @@ end;
function TEnvironmentOptionsDialog.CheckValues: boolean;
begin
Result:=false;
// check lazarus directory
if not CheckLazarusDir then exit;
// check compiler filename
if not CheckExecutable(FOldCompilerFilename,CompilerPathComboBox.Text,
lisEnvOptDlgInvalidCompilerFilename,lisEnvOptDlgInvalidCompilerFilenameMsg)
then exit;
// check lazarus directory
if not CheckLazarusDir then exit;
// check fpc source directory
if not IsFPCSourceDir then exit;
// check make filename
if not CheckExecutable(FOldMakeFilename,MakePathComboBox.Text,
lisEnvOptDlgInvalidMakeFilename,lisEnvOptDlgInvalidMakeFilenameMsg)
then exit;
// check test directory
if not CheckTestDir then exit;

View File

@ -174,6 +174,11 @@ begin
List.Add('/opt/fpc/ppc386');
end;
procedure GetDefaultMakeFilenames(List: TStrings);
begin
List.Add('/usr/bin/make');
end;
procedure GetDefaultTestBuildDirs(List: TStrings);
begin
List.Add('/tmp/');

View File

@ -163,6 +163,11 @@ begin
List.Add('c:\pp\bin\win32\ppc386.exe');
end;
procedure GetDefaultMakeFilenames(List: TStrings);
begin
List.Add('c:\pp\bin\win32\make.exe');
end;
procedure GetDefaultTestBuildDirs(List: TStrings);
begin
List.Add('c:\tmp\');
@ -187,6 +192,9 @@ end;
{
$Log$
Revision 1.21 2004/07/30 15:34:09 vincents
make executable location is a environment option now.
Revision 1.20 2003/12/21 13:58:06 mattias
renamed DirectoryExists to DirPathExists to reduce ambigiousity

View File

@ -471,6 +471,7 @@ resourcestring
lisChooseLazarusSourceDirectory = 'Choose Lazarus Directory';
lisChooseCompilerPath = 'Choose compiler filename (ppc386)';
lisChooseFPCSourceDir = 'Choose FPC source directory';
lisChooseMakePath = 'Choose make path';
lisChooseDebuggerPath = 'Choose debugger filename';
lisChooseTestBuildDir = 'Choose the directory for tests';
@ -624,6 +625,7 @@ resourcestring
dlgLazarusDir = 'Lazarus directory (default for all projects)';
dlgFpcPath = 'Compiler path (ppc386)';
dlgFpcSrcPath = 'FPC source directory';
dlgMakePath = 'Make path';
dlgDebugType = 'Debugger type and path';
dlgTestPrjDir = 'Directory for building test projects';
dlgQShowGrid = 'Show grid';
@ -668,6 +670,9 @@ resourcestring
lisEnvOptDlgInvalidCompilerFilename = 'Invalid compiler filename';
lisEnvOptDlgInvalidCompilerFilenameMsg =
'The compiler file "%s" is not an executable.';
lisEnvOptDlgInvalidMakeFilename = 'Invalid make filename';
lisEnvOptDlgInvalidMakeFilenameMsg =
'The make file "%s" is not an executable.';
lisEnvOptDlgInvalidDebuggerFilename = 'Invalid debugger filename';
lisEnvOptDlgInvalidDebuggerFilenameMsg =
'The debugger file "%s" is not an executable.';

View File

@ -83,6 +83,7 @@ uses
function GetDefaultCompiledUnitExt(FPCVersion, FPCRelease: integer): string;
procedure GetDefaultCompilerFilenames(List: TStrings);
procedure GetDefaultMakeFilenames(List: TStrings);
procedure GetDefaultTestBuildDirs(List: TStrings);
function GetDefaultLCLWidgetType: string;
@ -156,6 +157,9 @@ end.
{
$Log$
Revision 1.26 2004/07/30 15:38:16 vincents
make executable location is a environment option now.
Revision 1.25 2004/07/25 12:59:49 mattias
added codetools defines and lazconf support for powerpc

View File

@ -5979,7 +5979,7 @@ begin
FRunProcess.Options:= [poNewConsole]
else
FRunProcess.Options:= [poNoConsole];
FRunProcess.ShowWindow := swoNone;
FRunProcess.ShowWindow := swoShowNormal;
except
on e: Exception do
MessageDlg(Format(lisErrorInitializingProgramSErrorS,
@ -6113,6 +6113,7 @@ begin
Result:=BuildLazarus(MiscellaneousOptions.BuildLazOpts,
EnvironmentOptions.ExternalTools,MacroList,
'',EnvironmentOptions.CompilerFilename,
EnvironmentOptions.MakeFilename,
Flags+[blfWithoutLinkingIDE]);
if Result<>mrOk then exit;
@ -6159,6 +6160,7 @@ begin
Result:=BuildLazarus(MiscellaneousOptions.BuildLazOpts,
EnvironmentOptions.ExternalTools,MacroList,
PkgOptions,EnvironmentOptions.CompilerFilename,
EnvironmentOptions.MakeFilename,
IDEBuildFlags+[blfUseMakeIDECfg,blfDontClean]);
if Result<>mrOk then exit;
finally
@ -10486,6 +10488,9 @@ end.
{ =============================================================================
$Log$
Revision 1.740 2004/07/30 15:38:16 vincents
make executable location is a environment option now.
Revision 1.739 2004/07/25 22:43:18 mattias
added IDE cmd line option --skip-last-project