mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-13 12:59:19 +02:00
merge r51068 #a7367c97d9: ide: fix Options changed through "Change Build Mode" CoolBar button isn't respected by the compiler. Issue #28059
git-svn-id: branches/fixes_1_6@51069 -
This commit is contained in:
parent
6f2a1d05b7
commit
b2b3cd958d
69
ide/main.pp
69
ide/main.pp
@ -434,6 +434,7 @@ type
|
||||
procedure DoCodeExplorerOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||
procedure DoProjectOptionsBeforeRead(Sender: TObject);
|
||||
procedure DoProjectOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||
procedure DoCompilerOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||
procedure OnCompilerOptionsDialogTest(Sender: TObject);
|
||||
function DoTestCompilerSettings(TheCompilerOptions: TCompilerOptions): TModalResult;
|
||||
function OnCheckCompOptsAndMainSrcForNewUnit(CompOpts: TLazCompilerOptions): TModalResult;
|
||||
@ -4811,7 +4812,6 @@ end;
|
||||
procedure TMainIDE.DoProjectOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||
var
|
||||
AProject: TProject;
|
||||
aFilename: String;
|
||||
|
||||
function GetTitle: String;
|
||||
begin
|
||||
@ -4910,36 +4910,11 @@ begin
|
||||
mtWarning, [mbOk]);
|
||||
end;
|
||||
UpdateCaption;
|
||||
AProject.DefineTemplates.AllChanged;
|
||||
end;
|
||||
if Restore then
|
||||
begin
|
||||
AProject.RestoreBuildModes;
|
||||
AProject.RestoreSession;
|
||||
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.ComponentPaletteClassSelected(Sender: TObject);
|
||||
@ -6063,6 +6038,7 @@ begin
|
||||
Result.OnChangeProjectInfoFile:=@OnProjectChangeInfoFile;
|
||||
Result.IDEOptions.OnBeforeRead:=@DoProjectOptionsBeforeRead;
|
||||
Result.IDEOptions.OnAfterWrite:=@DoProjectOptionsAfterWrite;
|
||||
Result.OnCompilerOptionsAfterWrite := @DoCompilerOptionsAfterWrite;
|
||||
end;
|
||||
|
||||
function TMainIDE.DoNewProject(ProjectDesc: TProjectDescriptor): TModalResult;
|
||||
@ -6773,6 +6749,47 @@ begin
|
||||
DoBuildProject(crCompile, []);
|
||||
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;
|
||||
begin
|
||||
DoBuildProject(crCompile,[pbfSkipLinking,pbfSkipTools,pbfSkipAssembler]);
|
||||
|
@ -550,6 +550,7 @@ type
|
||||
property BuildMode: TProjectBuildMode read FBuildMode;
|
||||
published
|
||||
property CompileReasons: TCompileReasons read FCompileReasons write FCompileReasons;
|
||||
property Project: TProject read FProject;
|
||||
end;
|
||||
|
||||
{ TProjectDefineTemplates }
|
||||
@ -615,6 +616,7 @@ type
|
||||
function GetItems(Index: integer): TProjectBuildMode;
|
||||
function GetModified: boolean;
|
||||
procedure OnItemChanged(Sender: TObject);
|
||||
procedure CompilerOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||
procedure SetModified(const AValue: boolean);
|
||||
// Used by LoadFromXMLConfig
|
||||
procedure AddMatrixMacro(const MacroName, MacroValue, ModeIdentifier: string; InSession: boolean);
|
||||
@ -736,6 +738,7 @@ type
|
||||
FOnLoadProjectInfo: TOnLoadProjectInfo;
|
||||
FOnSaveProjectInfo: TOnSaveProjectInfo;
|
||||
FOnSaveUnitSessionInfo: TOnSaveUnitSessionInfoInfo;
|
||||
FOnCompilerOptionsAfterWrite: TIDEOptionsWriteEvent;
|
||||
fPathDelimChanged: boolean; // PathDelim in system and current config differ (see StorePathDelim and SessionStorePathDelim)
|
||||
FPOOutputDirectory: string;
|
||||
fProjectDirectory: string;
|
||||
@ -833,6 +836,7 @@ type
|
||||
procedure SaveToLPI;
|
||||
procedure SaveToSession;
|
||||
function DoWrite(Filename: String; IsLpi: Boolean): TModalResult;
|
||||
procedure CompilerOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||
protected
|
||||
function GetActiveBuildModeID: string; override;
|
||||
function GetDefineTemplates: TProjPackDefineTemplates;
|
||||
@ -1079,6 +1083,8 @@ type
|
||||
write FOnSaveProjectInfo;
|
||||
property OnSaveUnitSessionInfo: TOnSaveUnitSessionInfoInfo
|
||||
read FOnSaveUnitSessionInfo write FOnSaveUnitSessionInfo;
|
||||
property OnCompilerOptionsAfterWrite: TIDEOptionsWriteEvent
|
||||
read FOnCompilerOptionsAfterWrite write FOnCompilerOptionsAfterWrite;
|
||||
property POOutputDirectory: string read FPOOutputDirectory write SetPOOutputDirectory;
|
||||
property ProjectDirectory: string read fProjectDirectory;
|
||||
property ProjectInfoFile: string read GetProjectInfoFile write SetProjectInfoFile;
|
||||
@ -4725,6 +4731,12 @@ begin
|
||||
Units[i].ClearUnitComponentDependencies(ClearTypes);
|
||||
end;
|
||||
|
||||
procedure TProject.CompilerOptionsAfterWrite(Sender: TObject; Restore: boolean);
|
||||
begin
|
||||
if Assigned(FOnCompilerOptionsAfterWrite) then
|
||||
FOnCompilerOptionsAfterWrite(Sender, Restore);
|
||||
end;
|
||||
|
||||
procedure TProject.FindUnitsUsingSubComponent(SubComponent: TComponent;
|
||||
List: TFPList; IgnoreOwner: boolean);
|
||||
|
||||
@ -6750,6 +6762,12 @@ begin
|
||||
SessionMatrixOptions.Clear;
|
||||
end;
|
||||
|
||||
procedure TProjectBuildModes.CompilerOptionsAfterWrite(Sender: TObject;
|
||||
Restore: boolean);
|
||||
begin
|
||||
LazProject.CompilerOptionsAfterWrite(Sender, Restore);
|
||||
end;
|
||||
|
||||
function TProjectBuildModes.IsEqual(OtherModes: TProjectBuildModes): boolean;
|
||||
var
|
||||
i: Integer;
|
||||
@ -6833,6 +6851,7 @@ begin
|
||||
if LazProject<>nil then
|
||||
Result.CompilerOptions.BaseDirectory:=LazProject.ProjectDirectory;
|
||||
Result.AddOnChangedHandler(@OnItemChanged);
|
||||
Result.CompilerOptions.OnAfterWrite:=@CompilerOptionsAfterWrite;
|
||||
fItems.Add(Result);
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user