IDE: fixed updating BuildTarget when rescanning FPC sources

git-svn-id: trunk@14341 -
This commit is contained in:
mattias 2008-03-01 12:35:48 +00:00
parent 0840e778f1
commit 3d96887a31
2 changed files with 18 additions and 14 deletions

View File

@ -122,7 +122,7 @@ type
function GetTargetUnitFilename(AnUnitInfo: TUnitInfo): string; override;
procedure GetFPCCompilerParamsForEnvironmentTest(out Params: string);
procedure RescanCompilerDefines(OnlyIfCompilerChanged: boolean);
procedure RescanCompilerDefines(ResetBuildTarget, OnlyIfCompilerChanged: boolean);
property ScanningCompilerDisabled: boolean read FScanningCompilerDisabled
write FScanningCompilerDisabled;
@ -136,7 +136,8 @@ type
function BackupFile(const Filename: string): TModalResult; override;
// methods for building
procedure SetBuildTarget(const TargetOS, TargetCPU, LCLWidgetType: string);
procedure SetBuildTarget(const TargetOS, TargetCPU, LCLWidgetType: string;
DoNotScanFPCSrc: boolean = false);
procedure SetBuildTargetIDE;
end;
@ -449,7 +450,8 @@ begin
Params:=AddCmdLineParameter(Params,'-P'+CurTargetCPU);
end;
procedure TBuildManager.RescanCompilerDefines(OnlyIfCompilerChanged: boolean);
procedure TBuildManager.RescanCompilerDefines(ResetBuildTarget,
OnlyIfCompilerChanged: boolean);
var
CompilerTemplate, FPCSrcTemplate: TDefineTemplate;
CompilerUnitSearchPath, CompilerUnitLinks: string;
@ -465,6 +467,9 @@ var
begin
if ScanningCompilerDisabled then exit;
if ResetBuildTarget then
SetBuildTarget('','','',true);
GetFPCCompilerParamsForEnvironmentTest(CurOptions);
{$IFDEF VerboseFPCSrcScan}
debugln(['TMainIDE.RescanCompilerDefines A ',CurOptions,
@ -1178,7 +1183,7 @@ begin
end;
procedure TBuildManager.SetBuildTarget(const TargetOS, TargetCPU,
LCLWidgetType: string);
LCLWidgetType: string; DoNotScanFPCSrc: boolean);
var
OldTargetOS: String;
OldTargetCPU: String;
@ -1208,8 +1213,8 @@ begin
if LCLTargetChanged then
CodeToolBoss.SetGlobalValue(ExternalMacroStart+'LCLWidgetType',NewLCLWidgetType);
if FPCTargetChanged then
RescanCompilerDefines(true);
if FPCTargetChanged and (not DoNotScanFPCSrc) then
RescanCompilerDefines(false,true);
if FPCTargetChanged or LCLTargetChanged then begin
IncreaseCompilerParseStamp;

View File

@ -3521,7 +3521,7 @@ begin
frmCompilerOptions.OnTest:=@OnCompilerOptionsDialogTest;
frmCompilerOptions.OnImExportCompilerOptions:=@OnCompilerOptionsImExport;
if frmCompilerOptions.ShowModal=mrOk then begin
MainBuildBoss.RescanCompilerDefines(true);
MainBuildBoss.RescanCompilerDefines(true,true);
Project1.DefineTemplates.AllChanged;
IncreaseCompilerParseStamp;
end;
@ -3548,7 +3548,7 @@ begin
frmCompilerOptions.OnTest:=@OnCompilerOptionsDialogTest;
frmCompilerOptions.OnImExportCompilerOptions:=@OnCompilerOptionsImExport;
if frmCompilerOptions.ShowModal=mrOk then begin
MainBuildBoss.RescanCompilerDefines(true);
MainBuildBoss.RescanCompilerDefines(true,true);
Project1.DefineTemplates.AllChanged;
IncreaseCompilerParseStamp;
end;
@ -3893,7 +3893,7 @@ begin
if MacroValueChanged then CodeToolBoss.DefineTree.ClearCache;
if FPCCompilerChanged or FPCSrcDirChanged then begin
MainBuildBoss.RescanCompilerDefines(false);
MainBuildBoss.RescanCompilerDefines(true,false);
end;
// save to disk
@ -4055,7 +4055,7 @@ Begin
if MacroValueChanged then CodeToolBoss.DefineTree.ClearCache;
if FPCCompilerChanged or FPCSrcDirChanged then begin
MainBuildBoss.RescanCompilerDefines(false);
MainBuildBoss.RescanCompilerDefines(true,false);
end;
// save to disk
@ -4130,7 +4130,7 @@ end;
procedure TMainIDE.mnuEnvRescanFPCSrcDirClicked(Sender: TObject);
begin
MainBuildBoss.RescanCompilerDefines(false);
MainBuildBoss.RescanCompilerDefines(true,false);
end;
procedure TMainIDE.SaveEnvironment;
@ -6264,8 +6264,7 @@ begin
UpdateCaption;
EnvironmentOptions.LastSavedProjectFile:=Project1.ProjectInfoFile;
EnvironmentOptions.Save(false);
MainBuildBoss.SetBuildTarget('','','');
MainBuildBoss.RescanCompilerDefines(true);
MainBuildBoss.RescanCompilerDefines(true,true);
// load required packages
PkgBoss.OpenProjectDependencies(Project1,true);
@ -7600,7 +7599,7 @@ Begin
end;
// rebuild codetools defines
MainBuildBoss.RescanCompilerDefines(true);
MainBuildBoss.RescanCompilerDefines(true,true);
// (i.e. remove old project specific things and create new)
IncreaseCompilerParseStamp;
Project1.DefineTemplates.AllChanged;