mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-17 14:30:35 +01:00
ide: fix Options changed through "Change Build Mode" CoolBar button isn't respected by the compiler. Issue #28059
git-svn-id: trunk@51068 -
This commit is contained in:
parent
f2db2ee23e
commit
a7367c97d9
69
ide/main.pp
69
ide/main.pp
@ -434,6 +434,7 @@ type
|
|||||||
procedure DoCodeExplorerOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
procedure DoCodeExplorerOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||||
procedure DoProjectOptionsBeforeRead(Sender: TObject);
|
procedure DoProjectOptionsBeforeRead(Sender: TObject);
|
||||||
procedure DoProjectOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
procedure DoProjectOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||||
|
procedure DoCompilerOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||||
procedure OnCompilerOptionsDialogTest(Sender: TObject);
|
procedure OnCompilerOptionsDialogTest(Sender: TObject);
|
||||||
function DoTestCompilerSettings(TheCompilerOptions: TCompilerOptions): TModalResult;
|
function DoTestCompilerSettings(TheCompilerOptions: TCompilerOptions): TModalResult;
|
||||||
function OnCheckCompOptsAndMainSrcForNewUnit(CompOpts: TLazCompilerOptions): TModalResult;
|
function OnCheckCompOptsAndMainSrcForNewUnit(CompOpts: TLazCompilerOptions): TModalResult;
|
||||||
@ -4823,7 +4824,6 @@ end;
|
|||||||
procedure TMainIDE.DoProjectOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
procedure TMainIDE.DoProjectOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||||
var
|
var
|
||||||
AProject: TProject;
|
AProject: TProject;
|
||||||
aFilename: String;
|
|
||||||
|
|
||||||
function GetTitle: String;
|
function GetTitle: String;
|
||||||
begin
|
begin
|
||||||
@ -4922,36 +4922,11 @@ begin
|
|||||||
mtWarning, [mbOk]);
|
mtWarning, [mbOk]);
|
||||||
end;
|
end;
|
||||||
UpdateCaption;
|
UpdateCaption;
|
||||||
AProject.DefineTemplates.AllChanged;
|
|
||||||
end;
|
end;
|
||||||
if Restore then
|
if Restore then
|
||||||
begin
|
begin
|
||||||
AProject.RestoreBuildModes;
|
|
||||||
AProject.RestoreSession;
|
AProject.RestoreSession;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
IncreaseCompilerParseStamp;
|
|
||||||
MainBuildBoss.SetBuildTargetProject1(false);
|
|
||||||
|
|
||||||
if not Restore then
|
|
||||||
begin
|
|
||||||
if AProject.UseAsDefault then
|
|
||||||
begin
|
|
||||||
// save as default
|
|
||||||
aFilename:=AppendPathDelim(GetPrimaryConfigPath)+DefaultProjectOptionsFilename;
|
|
||||||
AProject.WriteProject([pwfSkipSeparateSessionInfo,pwfIgnoreModified],
|
|
||||||
aFilename,EnvironmentOptions.BuildMatrixOptions);
|
|
||||||
end;
|
|
||||||
|
|
||||||
Project1.UpdateAllSyntaxHighlighter;
|
|
||||||
SourceEditorManager.BeginGlobalUpdate;
|
|
||||||
try
|
|
||||||
UpdateHighlighters(True);
|
|
||||||
SourceEditorManager.ReloadEditorOptions;
|
|
||||||
finally
|
|
||||||
SourceEditorManager.EndGlobalUpdate;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainIDE.ComponentPaletteClassSelected(Sender: TObject);
|
procedure TMainIDE.ComponentPaletteClassSelected(Sender: TObject);
|
||||||
@ -6075,6 +6050,7 @@ begin
|
|||||||
Result.OnChangeProjectInfoFile:=@OnProjectChangeInfoFile;
|
Result.OnChangeProjectInfoFile:=@OnProjectChangeInfoFile;
|
||||||
Result.IDEOptions.OnBeforeRead:=@DoProjectOptionsBeforeRead;
|
Result.IDEOptions.OnBeforeRead:=@DoProjectOptionsBeforeRead;
|
||||||
Result.IDEOptions.OnAfterWrite:=@DoProjectOptionsAfterWrite;
|
Result.IDEOptions.OnAfterWrite:=@DoProjectOptionsAfterWrite;
|
||||||
|
Result.OnCompilerOptionsAfterWrite := @DoCompilerOptionsAfterWrite;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TMainIDE.DoNewProject(ProjectDesc: TProjectDescriptor): TModalResult;
|
function TMainIDE.DoNewProject(ProjectDesc: TProjectDescriptor): TModalResult;
|
||||||
@ -6785,6 +6761,47 @@ begin
|
|||||||
DoBuildProject(crCompile, []);
|
DoBuildProject(crCompile, []);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TMainIDE.DoCompilerOptionsAfterWrite(Sender: TObject; Restore: boolean
|
||||||
|
);
|
||||||
|
var
|
||||||
|
AProject: TProject;
|
||||||
|
aFilename: string;
|
||||||
|
begin
|
||||||
|
AProject:=(Sender as TProjectCompilerOptions).Project;
|
||||||
|
|
||||||
|
if not Restore then
|
||||||
|
begin
|
||||||
|
AProject.DefineTemplates.AllChanged;
|
||||||
|
end;
|
||||||
|
if Restore then
|
||||||
|
begin
|
||||||
|
AProject.RestoreBuildModes;
|
||||||
|
end;
|
||||||
|
|
||||||
|
IncreaseCompilerParseStamp;
|
||||||
|
MainBuildBoss.SetBuildTargetProject1(false);
|
||||||
|
|
||||||
|
if not Restore then
|
||||||
|
begin
|
||||||
|
if AProject.UseAsDefault then
|
||||||
|
begin
|
||||||
|
// save as default
|
||||||
|
aFilename:=AppendPathDelim(GetPrimaryConfigPath)+DefaultProjectOptionsFilename;
|
||||||
|
AProject.WriteProject([pwfSkipSeparateSessionInfo,pwfIgnoreModified],
|
||||||
|
aFilename,EnvironmentOptions.BuildMatrixOptions);
|
||||||
|
end;
|
||||||
|
|
||||||
|
Project1.UpdateAllSyntaxHighlighter;
|
||||||
|
SourceEditorManager.BeginGlobalUpdate;
|
||||||
|
try
|
||||||
|
UpdateHighlighters(True);
|
||||||
|
SourceEditorManager.ReloadEditorOptions;
|
||||||
|
finally
|
||||||
|
SourceEditorManager.EndGlobalUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TMainIDE.DoQuickCompile;
|
procedure TMainIDE.DoQuickCompile;
|
||||||
begin
|
begin
|
||||||
DoBuildProject(crCompile,[pbfSkipLinking,pbfSkipTools,pbfSkipAssembler]);
|
DoBuildProject(crCompile,[pbfSkipLinking,pbfSkipTools,pbfSkipAssembler]);
|
||||||
|
|||||||
@ -550,6 +550,7 @@ type
|
|||||||
property BuildMode: TProjectBuildMode read FBuildMode;
|
property BuildMode: TProjectBuildMode read FBuildMode;
|
||||||
published
|
published
|
||||||
property CompileReasons: TCompileReasons read FCompileReasons write FCompileReasons;
|
property CompileReasons: TCompileReasons read FCompileReasons write FCompileReasons;
|
||||||
|
property Project: TProject read FProject;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TProjectDefineTemplates }
|
{ TProjectDefineTemplates }
|
||||||
@ -615,6 +616,7 @@ type
|
|||||||
function GetItems(Index: integer): TProjectBuildMode;
|
function GetItems(Index: integer): TProjectBuildMode;
|
||||||
function GetModified: boolean;
|
function GetModified: boolean;
|
||||||
procedure OnItemChanged(Sender: TObject);
|
procedure OnItemChanged(Sender: TObject);
|
||||||
|
procedure CompilerOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||||
procedure SetModified(const AValue: boolean);
|
procedure SetModified(const AValue: boolean);
|
||||||
// Used by LoadFromXMLConfig
|
// Used by LoadFromXMLConfig
|
||||||
procedure AddMatrixMacro(const MacroName, MacroValue, ModeIdentifier: string; InSession: boolean);
|
procedure AddMatrixMacro(const MacroName, MacroValue, ModeIdentifier: string; InSession: boolean);
|
||||||
@ -736,6 +738,7 @@ type
|
|||||||
FOnLoadProjectInfo: TOnLoadProjectInfo;
|
FOnLoadProjectInfo: TOnLoadProjectInfo;
|
||||||
FOnSaveProjectInfo: TOnSaveProjectInfo;
|
FOnSaveProjectInfo: TOnSaveProjectInfo;
|
||||||
FOnSaveUnitSessionInfo: TOnSaveUnitSessionInfoInfo;
|
FOnSaveUnitSessionInfo: TOnSaveUnitSessionInfoInfo;
|
||||||
|
FOnCompilerOptionsAfterWrite: TIDEOptionsWriteEvent;
|
||||||
fPathDelimChanged: boolean; // PathDelim in system and current config differ (see StorePathDelim and SessionStorePathDelim)
|
fPathDelimChanged: boolean; // PathDelim in system and current config differ (see StorePathDelim and SessionStorePathDelim)
|
||||||
FPOOutputDirectory: string;
|
FPOOutputDirectory: string;
|
||||||
fProjectDirectory: string;
|
fProjectDirectory: string;
|
||||||
@ -833,6 +836,7 @@ type
|
|||||||
procedure SaveToLPI;
|
procedure SaveToLPI;
|
||||||
procedure SaveToSession;
|
procedure SaveToSession;
|
||||||
function DoWrite(Filename: String; IsLpi: Boolean): TModalResult;
|
function DoWrite(Filename: String; IsLpi: Boolean): TModalResult;
|
||||||
|
procedure CompilerOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||||
protected
|
protected
|
||||||
function GetActiveBuildModeID: string; override;
|
function GetActiveBuildModeID: string; override;
|
||||||
function GetDefineTemplates: TProjPackDefineTemplates;
|
function GetDefineTemplates: TProjPackDefineTemplates;
|
||||||
@ -1079,6 +1083,8 @@ type
|
|||||||
write FOnSaveProjectInfo;
|
write FOnSaveProjectInfo;
|
||||||
property OnSaveUnitSessionInfo: TOnSaveUnitSessionInfoInfo
|
property OnSaveUnitSessionInfo: TOnSaveUnitSessionInfoInfo
|
||||||
read FOnSaveUnitSessionInfo write FOnSaveUnitSessionInfo;
|
read FOnSaveUnitSessionInfo write FOnSaveUnitSessionInfo;
|
||||||
|
property OnCompilerOptionsAfterWrite: TIDEOptionsWriteEvent
|
||||||
|
read FOnCompilerOptionsAfterWrite write FOnCompilerOptionsAfterWrite;
|
||||||
property POOutputDirectory: string read FPOOutputDirectory write SetPOOutputDirectory;
|
property POOutputDirectory: string read FPOOutputDirectory write SetPOOutputDirectory;
|
||||||
property ProjectDirectory: string read fProjectDirectory;
|
property ProjectDirectory: string read fProjectDirectory;
|
||||||
property ProjectInfoFile: string read GetProjectInfoFile write SetProjectInfoFile;
|
property ProjectInfoFile: string read GetProjectInfoFile write SetProjectInfoFile;
|
||||||
@ -4727,6 +4733,12 @@ begin
|
|||||||
Units[i].ClearUnitComponentDependencies(ClearTypes);
|
Units[i].ClearUnitComponentDependencies(ClearTypes);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TProject.CompilerOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||||
|
begin
|
||||||
|
if Assigned(FOnCompilerOptionsAfterWrite) then
|
||||||
|
FOnCompilerOptionsAfterWrite(Sender, Restore);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TProject.FindUnitsUsingSubComponent(SubComponent: TComponent;
|
procedure TProject.FindUnitsUsingSubComponent(SubComponent: TComponent;
|
||||||
List: TFPList; IgnoreOwner: boolean);
|
List: TFPList; IgnoreOwner: boolean);
|
||||||
|
|
||||||
@ -6752,6 +6764,12 @@ begin
|
|||||||
SessionMatrixOptions.Clear;
|
SessionMatrixOptions.Clear;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TProjectBuildModes.CompilerOptionsAfterWrite(Sender: TObject;
|
||||||
|
Restore: boolean);
|
||||||
|
begin
|
||||||
|
LazProject.CompilerOptionsAfterWrite(Sender, Restore);
|
||||||
|
end;
|
||||||
|
|
||||||
function TProjectBuildModes.IsEqual(OtherModes: TProjectBuildModes): boolean;
|
function TProjectBuildModes.IsEqual(OtherModes: TProjectBuildModes): boolean;
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
@ -6835,6 +6853,7 @@ begin
|
|||||||
if LazProject<>nil then
|
if LazProject<>nil then
|
||||||
Result.CompilerOptions.BaseDirectory:=LazProject.ProjectDirectory;
|
Result.CompilerOptions.BaseDirectory:=LazProject.ProjectDirectory;
|
||||||
Result.AddOnChangedHandler(@OnItemChanged);
|
Result.AddOnChangedHandler(@OnItemChanged);
|
||||||
|
Result.CompilerOptions.OnAfterWrite:=@CompilerOptionsAfterWrite;
|
||||||
fItems.Add(Result);
|
fItems.Add(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user