mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-20 07:48:15 +02:00
IDE: mode matrix: save enabled options in session modes
git-svn-id: trunk@41461 -
This commit is contained in:
parent
20f62dfb26
commit
422e68c742
@ -19,14 +19,9 @@
|
|||||||
***************************************************************************
|
***************************************************************************
|
||||||
|
|
||||||
ToDo:
|
ToDo:
|
||||||
- save session modes in session
|
|
||||||
- project
|
|
||||||
- IDE
|
|
||||||
- load session modes
|
|
||||||
- project
|
|
||||||
- IDE
|
|
||||||
- save matrix options for old build macro values
|
- save matrix options for old build macro values
|
||||||
- load old build macro values into matrix
|
- load old build macro values into matrix
|
||||||
|
- when rename build mode, update option modes
|
||||||
- ifdef old frame
|
- ifdef old frame
|
||||||
- ifdef old macro value classes
|
- ifdef old macro value classes
|
||||||
- wiki
|
- wiki
|
||||||
|
@ -416,7 +416,7 @@ begin
|
|||||||
if not FileExistsUTF8(AFilename) then
|
if not FileExistsUTF8(AFilename) then
|
||||||
CopySecondaryConfigFile(DefaultProjectOptionsFilename);
|
CopySecondaryConfigFile(DefaultProjectOptionsFilename);
|
||||||
if FileExistsUTF8(AFilename) then begin
|
if FileExistsUTF8(AFilename) then begin
|
||||||
if AProject.ReadProject(AFilename,[prfLoadParts,prfLoadPartBuildModes])<>mrOk then
|
if AProject.ReadProject(AFilename,nil,[prfLoadParts,prfLoadPartBuildModes])<>mrOk then
|
||||||
DebugLn(['TMainIDEBase.DoLoadDefaultCompilerOptions failed']);
|
DebugLn(['TMainIDEBase.DoLoadDefaultCompilerOptions failed']);
|
||||||
end else begin
|
end else begin
|
||||||
// old way (<0.9.31)
|
// old way (<0.9.31)
|
||||||
|
@ -57,6 +57,8 @@ const
|
|||||||
bmgtAll = [low(TBuildMatrixGroupType)..high(TBuildMatrixGroupType)];
|
bmgtAll = [low(TBuildMatrixGroupType)..high(TBuildMatrixGroupType)];
|
||||||
|
|
||||||
type
|
type
|
||||||
|
TIsModeEvent = function(const ModeIdentifier: string): boolean of object;
|
||||||
|
|
||||||
TBuildMatrixOptions = class;
|
TBuildMatrixOptions = class;
|
||||||
|
|
||||||
TBMModesType = (
|
TBMModesType = (
|
||||||
@ -98,10 +100,13 @@ type
|
|||||||
function Equals(Obj: TObject): boolean; override;
|
function Equals(Obj: TObject): boolean; override;
|
||||||
function GetModesSeparatedByComma(aTyp: TBMModesType): string;
|
function GetModesSeparatedByComma(aTyp: TBMModesType): string;
|
||||||
procedure SetModesFromCommaSeparatedList(aList: string; aTyp: TBMModesType);
|
procedure SetModesFromCommaSeparatedList(aList: string; aTyp: TBMModesType);
|
||||||
|
procedure DisableModes(const DisableModeEvent: TIsModeEvent; aTyp: TBMModesType);
|
||||||
|
procedure EnableMode(const aMode: string; aTyp: TBMModesType);
|
||||||
procedure LoadFromConfig(Cfg: TConfigStorage);
|
procedure LoadFromConfig(Cfg: TConfigStorage);
|
||||||
procedure SaveToConfig(Cfg: TConfigStorage);
|
procedure SaveToConfig(Cfg: TConfigStorage);
|
||||||
procedure LoadFromXMLConfig(Cfg: TXMLConfig; const aPath: string);
|
procedure LoadFromXMLConfig(Cfg: TXMLConfig; const aPath: string);
|
||||||
procedure SaveToXMLConfig(Cfg: TXMLConfig; const aPath: string);
|
procedure SaveToXMLConfig(Cfg: TXMLConfig; const aPath: string);
|
||||||
|
function AsString: string;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TBuildMatrixOptions }
|
{ TBuildMatrixOptions }
|
||||||
@ -122,6 +127,7 @@ type
|
|||||||
constructor Create;
|
constructor Create;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
procedure Clear;
|
procedure Clear;
|
||||||
|
procedure DisableModes(const IsModeEvent: TIsModeEvent; aTyp: TBMModesType);
|
||||||
function Count: integer;
|
function Count: integer;
|
||||||
property Items[Index: integer]: TBuildMatrixOption read GetItems; default;
|
property Items[Index: integer]: TBuildMatrixOption read GetItems; default;
|
||||||
function IndexOf(Option: TBuildMatrixOption): integer;
|
function IndexOf(Option: TBuildMatrixOption): integer;
|
||||||
@ -144,6 +150,7 @@ type
|
|||||||
// queries
|
// queries
|
||||||
procedure AppendCustomOptions(Target, ActiveMode: string; var Options: string);
|
procedure AppendCustomOptions(Target, ActiveMode: string; var Options: string);
|
||||||
procedure GetOutputDirectory(Target, ActiveMode: string; var OutDir: string);
|
procedure GetOutputDirectory(Target, ActiveMode: string; var OutDir: string);
|
||||||
|
function FindOption(const ID: string): TBuildMatrixOption;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
EMMMacroSyntaxException = class(Exception)
|
EMMMacroSyntaxException = class(Exception)
|
||||||
@ -458,6 +465,15 @@ begin
|
|||||||
IncreaseChangeStep;
|
IncreaseChangeStep;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TBuildMatrixOptions.DisableModes(const IsModeEvent: TIsModeEvent;
|
||||||
|
aTyp: TBMModesType);
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
for i:=0 to Count-1 do
|
||||||
|
Items[i].DisableModes(IsModeEvent,aTyp);
|
||||||
|
end;
|
||||||
|
|
||||||
function TBuildMatrixOptions.Count: integer;
|
function TBuildMatrixOptions.Count: integer;
|
||||||
begin
|
begin
|
||||||
Result:=fItems.Count;
|
Result:=fItems.Count;
|
||||||
@ -539,11 +555,13 @@ var
|
|||||||
Option: TBuildMatrixOption;
|
Option: TBuildMatrixOption;
|
||||||
begin
|
begin
|
||||||
Clear;
|
Clear;
|
||||||
Cnt:=Cfg.GetValue('Count',0);
|
Cnt:=Cfg.GetValue(aPath+'Count',0);
|
||||||
|
//debugln(['TBuildMatrixOptions.LoadFromXMLConfig Cnt=',Cnt]);
|
||||||
for i:=1 to Cnt do begin
|
for i:=1 to Cnt do begin
|
||||||
Option:=TBuildMatrixOption.Create(Self);
|
Option:=TBuildMatrixOption.Create(Self);
|
||||||
Option.LoadFromXMLConfig(Cfg,aPath+'item'+IntToStr(i)+'/');
|
Option.LoadFromXMLConfig(Cfg,aPath+'item'+IntToStr(i)+'/');
|
||||||
end;
|
end;
|
||||||
|
//debugln(['TBuildMatrixOptions.LoadFromXMLConfig Count=',Count]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBuildMatrixOptions.SaveToXMLConfig(Cfg: TXMLConfig;
|
procedure TBuildMatrixOptions.SaveToXMLConfig(Cfg: TXMLConfig;
|
||||||
@ -551,6 +569,7 @@ procedure TBuildMatrixOptions.SaveToXMLConfig(Cfg: TXMLConfig;
|
|||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
|
//debugln(['TBuildMatrixOptions.SaveToXMLConfig ',aPath]);
|
||||||
Cfg.SetDeleteValue(aPath+'Count',Count,0);
|
Cfg.SetDeleteValue(aPath+'Count',Count,0);
|
||||||
for i:=0 to Count-1 do
|
for i:=0 to Count-1 do
|
||||||
Items[i].SaveToXMLConfig(Cfg,aPath+'item'+IntToStr(i+1)+'/');
|
Items[i].SaveToXMLConfig(Cfg,aPath+'item'+IntToStr(i+1)+'/');
|
||||||
@ -590,6 +609,17 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TBuildMatrixOptions.FindOption(const ID: string): TBuildMatrixOption;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
for i:=0 to Count-1 do begin
|
||||||
|
Result:=Items[i];
|
||||||
|
if Result.ID=ID then exit;
|
||||||
|
end;
|
||||||
|
Result:=nil;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TBuildMatrixOption }
|
{ TBuildMatrixOption }
|
||||||
|
|
||||||
procedure TBuildMatrixOption.SetMacroName(AValue: string);
|
procedure TBuildMatrixOption.SetMacroName(AValue: string);
|
||||||
@ -740,6 +770,38 @@ begin
|
|||||||
Modes[aTyp]:=aList;
|
Modes[aTyp]:=aList;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TBuildMatrixOption.DisableModes(const DisableModeEvent: TIsModeEvent;
|
||||||
|
aTyp: TBMModesType);
|
||||||
|
var
|
||||||
|
CurModes: String;
|
||||||
|
p: PChar;
|
||||||
|
StartP: PChar;
|
||||||
|
CurMode: String;
|
||||||
|
StartPos: integer;
|
||||||
|
begin
|
||||||
|
CurModes:=Modes[aTyp];
|
||||||
|
p:=PChar(CurModes);
|
||||||
|
while p^<>#0 do begin
|
||||||
|
StartP:=p;
|
||||||
|
while not (p^ in [#0,#10,#13]) do inc(p);
|
||||||
|
StartPos:=StartP-PChar(CurModes)+1;
|
||||||
|
CurMode:=copy(CurModes,StartPos,p-StartP);
|
||||||
|
while p^ in [#10,#13] do inc(p);
|
||||||
|
if DisableModeEvent(CurMode) then begin
|
||||||
|
System.Delete(CurModes,StartPos,p-StartP);
|
||||||
|
p:=Pointer(CurModes)+StartPos-1;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Modes[aTyp]:=CurModes;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBuildMatrixOption.EnableMode(const aMode: string; aTyp: TBMModesType
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
if FitsMode(aMode,aTyp) then exit;
|
||||||
|
Modes[aTyp]:=Modes[aTyp]+aMode+LineEnding;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TBuildMatrixOption.LoadFromConfig(Cfg: TConfigStorage);
|
procedure TBuildMatrixOption.LoadFromConfig(Cfg: TConfigStorage);
|
||||||
begin
|
begin
|
||||||
ID:=Cfg.GetValue('ID','');
|
ID:=Cfg.GetValue('ID','');
|
||||||
@ -766,6 +828,7 @@ begin
|
|||||||
ID:=Cfg.GetValue(aPath+'ID','');
|
ID:=Cfg.GetValue(aPath+'ID','');
|
||||||
Targets:=Cfg.GetValue(aPath+'Targets','*');
|
Targets:=Cfg.GetValue(aPath+'Targets','*');
|
||||||
SetModesFromCommaSeparatedList(Cfg.GetValue(aPath+'Modes','*'),bmmtStored);
|
SetModesFromCommaSeparatedList(Cfg.GetValue(aPath+'Modes','*'),bmmtStored);
|
||||||
|
Modes[bmmtActive]:=Modes[bmmtStored];
|
||||||
Typ:=Str2BuildMatrixOptionType(Cfg.GetValue(aPath+'Type',''));
|
Typ:=Str2BuildMatrixOptionType(Cfg.GetValue(aPath+'Type',''));
|
||||||
MacroName:=Cfg.GetValue(aPath+'MacroName','');
|
MacroName:=Cfg.GetValue(aPath+'MacroName','');
|
||||||
Value:=Cfg.GetValue(aPath+'Value','');
|
Value:=Cfg.GetValue(aPath+'Value','');
|
||||||
@ -782,5 +845,10 @@ begin
|
|||||||
Cfg.SetDeleteValue(aPath+'Value',Value,'');
|
Cfg.SetDeleteValue(aPath+'Value',Value,'');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TBuildMatrixOption.AsString: string;
|
||||||
|
begin
|
||||||
|
Result:='ID="'+ID+'" '+BuildMatrixOptionTypeNames[Typ]+' Value="'+Value+'" ActiveModes="'+dbgstr(Modes[bmmtActive])+'"';
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -736,6 +736,7 @@ type
|
|||||||
procedure RemoveOnChangedHandler(const Handler: TNotifyEvent);
|
procedure RemoveOnChangedHandler(const Handler: TNotifyEvent);
|
||||||
function IsModified(InSession: boolean): boolean;
|
function IsModified(InSession: boolean): boolean;
|
||||||
function GetSessionModes: TStringList;
|
function GetSessionModes: TStringList;
|
||||||
|
function IsSessionMode(const ModeIdentifier: string): boolean;
|
||||||
public
|
public
|
||||||
property Items[Index: integer]: TProjectBuildMode read GetItems; default;
|
property Items[Index: integer]: TProjectBuildMode read GetItems; default;
|
||||||
property ChangeStamp: integer read FChangeStamp;
|
property ChangeStamp: integer read FChangeStamp;
|
||||||
@ -912,6 +913,7 @@ type
|
|||||||
function HasProjectInfoFileChangedOnDisk: boolean;
|
function HasProjectInfoFileChangedOnDisk: boolean;
|
||||||
procedure IgnoreProjectInfoFileOnDisk;
|
procedure IgnoreProjectInfoFileOnDisk;
|
||||||
function ReadProject(const NewProjectInfoFile: string;
|
function ReadProject(const NewProjectInfoFile: string;
|
||||||
|
GlobalMatrixOptions: TBuildMatrixOptions;
|
||||||
ReadFlags: TProjectReadFlags = []): TModalResult;
|
ReadFlags: TProjectReadFlags = []): TModalResult;
|
||||||
function WriteProject(ProjectWriteFlags: TProjectWriteFlags;
|
function WriteProject(ProjectWriteFlags: TProjectWriteFlags;
|
||||||
const OverrideProjectInfoFile: string;
|
const OverrideProjectInfoFile: string;
|
||||||
@ -2723,6 +2725,7 @@ function TProject.WriteProject(ProjectWriteFlags: TProjectWriteFlags;
|
|||||||
if not MatrixOption.FitsMode(CurMode.Identifier,bmmtActive) then continue;
|
if not MatrixOption.FitsMode(CurMode.Identifier,bmmtActive) then continue;
|
||||||
inc(Cnt);
|
inc(Cnt);
|
||||||
SubPath:=Path+'Item'+IntToStr(Cnt)+'/';
|
SubPath:=Path+'Item'+IntToStr(Cnt)+'/';
|
||||||
|
//debugln(['SaveSessionEnabledNonSessionMatrixOptions ModeID="',CurMode.Identifier,'" OptionID="',MatrixOption.ID,'"']);
|
||||||
XMLConfig.SetDeleteValue(SubPath+'Mode',CurMode.Identifier,'');
|
XMLConfig.SetDeleteValue(SubPath+'Mode',CurMode.Identifier,'');
|
||||||
XMLConfig.SetDeleteValue(SubPath+'Option',MatrixOption.ID,'');
|
XMLConfig.SetDeleteValue(SubPath+'Option',MatrixOption.ID,'');
|
||||||
end;
|
end;
|
||||||
@ -3183,7 +3186,8 @@ end;
|
|||||||
TProject ReadProject
|
TProject ReadProject
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
function TProject.ReadProject(const NewProjectInfoFile: string;
|
function TProject.ReadProject(const NewProjectInfoFile: string;
|
||||||
ReadFlags: TProjectReadFlags): TModalResult;
|
GlobalMatrixOptions: TBuildMatrixOptions; ReadFlags: TProjectReadFlags
|
||||||
|
): TModalResult;
|
||||||
type
|
type
|
||||||
TOldProjectType = (ptApplication, ptProgram, ptCustomProgram);
|
TOldProjectType = (ptApplication, ptProgram, ptCustomProgram);
|
||||||
const
|
const
|
||||||
@ -3195,6 +3199,50 @@ var
|
|||||||
FileVersion: Integer;
|
FileVersion: Integer;
|
||||||
NewMainUnitID: LongInt;
|
NewMainUnitID: LongInt;
|
||||||
|
|
||||||
|
procedure EnableMatrixMode(MatrixOptions: TBuildMatrixOptions;
|
||||||
|
OptionID, ModeID: string);
|
||||||
|
var
|
||||||
|
MatrixOption: TBuildMatrixOption;
|
||||||
|
begin
|
||||||
|
if MatrixOptions=nil then exit;
|
||||||
|
MatrixOption:=MatrixOptions.FindOption(OptionID);
|
||||||
|
if MatrixOption=nil then exit;
|
||||||
|
//debugln(['EnableMatrixMode OptionID=',OptionID,' ModeID=',ModeID]);
|
||||||
|
MatrixOption.EnableMode(ModeID,bmmtActive);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure LoadSessionEnabledNonSessionMatrixOptions(XMLConfig: TXMLConfig;
|
||||||
|
const Path: string);
|
||||||
|
var
|
||||||
|
Cnt: integer;
|
||||||
|
i: Integer;
|
||||||
|
SubPath: String;
|
||||||
|
ModeID: String;
|
||||||
|
OptionID: String;
|
||||||
|
begin
|
||||||
|
// disable all matrix options in session modes
|
||||||
|
if GlobalMatrixOptions<>nil then
|
||||||
|
GlobalMatrixOptions.DisableModes(@BuildModes.IsSessionMode,bmmtActive);
|
||||||
|
BuildModes.SharedMatrixOptions.DisableModes(@BuildModes.IsSessionMode,bmmtActive);
|
||||||
|
// load
|
||||||
|
Cnt:=XMLConfig.GetValue(Path+'Count',0);
|
||||||
|
for i:=1 to Cnt do begin
|
||||||
|
SubPath:=Path+'Item'+IntToStr(i)+'/';
|
||||||
|
ModeID:=XMLConfig.GetValue(SubPath+'Mode','');
|
||||||
|
if (ModeID='') or (not BuildModes.IsSessionMode(ModeID)) then begin
|
||||||
|
debugln(['LoadSessionEnabledNonSessionMatrixOptions not a session Mode="',dbgstr(ModeID),'" at ',SubPath]);
|
||||||
|
continue;
|
||||||
|
end;
|
||||||
|
OptionID:=XMLConfig.GetValue(SubPath+'Option','');
|
||||||
|
if OptionID='' then begin
|
||||||
|
debugln(['LoadSessionEnabledNonSessionMatrixOptions invalid option at ',SubPath]);
|
||||||
|
continue;
|
||||||
|
end;
|
||||||
|
EnableMatrixMode(GlobalMatrixOptions,OptionID,ModeID);
|
||||||
|
EnableMatrixMode(BuildModes.SharedMatrixOptions,OptionID,ModeID);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure LoadBuildModes(XMLConfig: TXMLConfig; const Path: string;
|
procedure LoadBuildModes(XMLConfig: TXMLConfig; const Path: string;
|
||||||
LoadData: boolean);
|
LoadData: boolean);
|
||||||
var
|
var
|
||||||
@ -3249,7 +3297,7 @@ var
|
|||||||
end else if LoadData then begin
|
end else if LoadData then begin
|
||||||
// no build modes => an old file format
|
// no build modes => an old file format
|
||||||
CompOptsPath:='CompilerOptions/';
|
CompOptsPath:='CompilerOptions/';
|
||||||
// due to an old bug, the XML path can be 'CompilerOptions/' or ''
|
// due to a bug in an old version, the XML path can be 'CompilerOptions/' or ''
|
||||||
if (FileVersion<3)
|
if (FileVersion<3)
|
||||||
and (XMLConfig.GetValue('SearchPaths/CompilerPath/Value','')<>'') then
|
and (XMLConfig.GetValue('SearchPaths/CompilerPath/Value','')<>'') then
|
||||||
CompOptsPath:='';
|
CompOptsPath:='';
|
||||||
@ -3262,18 +3310,17 @@ var
|
|||||||
if LoadData then begin
|
if LoadData then begin
|
||||||
// load matrix options of project (not session)
|
// load matrix options of project (not session)
|
||||||
BuildModes.SharedMatrixOptions.LoadFromXMLConfig(XMLConfig,Path+'BuildModes/SharedMatrixOptions/');
|
BuildModes.SharedMatrixOptions.LoadFromXMLConfig(XMLConfig,Path+'BuildModes/SharedMatrixOptions/');
|
||||||
|
//debugln(['LoadBuildModes BuildModes.SharedMatrixOptions.Count=',BuildModes.SharedMatrixOptions.Count]);
|
||||||
|
//for i:=0 to BuildModes.SharedMatrixOptions.Count-1 do
|
||||||
|
// debugln([' ',BuildModes.SharedMatrixOptions[i].AsString]);
|
||||||
end;
|
end;
|
||||||
if (not LoadData) and (not LoadParts) then begin
|
if (not LoadData) and (not LoadParts) then begin
|
||||||
// load matrix options of session
|
// load matrix options of session
|
||||||
BuildModes.SessionMatrixOptions.LoadFromXMLConfig(XMLConfig,Path+'BuildModes/SessionMatrixOptions/');
|
BuildModes.SessionMatrixOptions.LoadFromXMLConfig(XMLConfig,Path+'BuildModes/SessionMatrixOptions/');
|
||||||
|
|
||||||
// disable matrix options in session build modes
|
|
||||||
// ToDo:
|
|
||||||
|
|
||||||
// load what matrix options are enabled in session build modes
|
// load what matrix options are enabled in session build modes
|
||||||
// ToDo:
|
SubPath:=Path+'BuildModes/SessionMatrixOptions/';
|
||||||
//Cnt:=0;
|
LoadSessionEnabledNonSessionMatrixOptions(XMLConfig,SubPath);
|
||||||
//SubPath:=Path+'BuildModes/SessionMatrixOptions/';
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// set active mode
|
// set active mode
|
||||||
@ -7324,6 +7371,20 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TProjectBuildModes.IsSessionMode(const ModeIdentifier: string
|
||||||
|
): boolean;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
BuildMode: TProjectBuildMode;
|
||||||
|
begin
|
||||||
|
for i:=0 to Count-1 do begin
|
||||||
|
BuildMode:=Items[i];
|
||||||
|
if SysUtils.CompareText(BuildMode.Identifier,ModeIdentifier)=0 then
|
||||||
|
exit(BuildMode.InSession);
|
||||||
|
end;
|
||||||
|
Result:=false;
|
||||||
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
RegisterIDEOptionsGroup(GroupProject, TProject);
|
RegisterIDEOptionsGroup(GroupProject, TProject);
|
||||||
RegisterIDEOptionsGroup(GroupCompiler, TProjectCompilerOptions);
|
RegisterIDEOptionsGroup(GroupCompiler, TProjectCompilerOptions);
|
||||||
|
@ -1935,7 +1935,7 @@ begin
|
|||||||
|
|
||||||
// read project info file
|
// read project info file
|
||||||
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TLazSourceFileManager.OpenProjectFile B3');{$ENDIF}
|
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TLazSourceFileManager.OpenProjectFile B3');{$ENDIF}
|
||||||
Project1.ReadProject(AFilename);
|
Project1.ReadProject(AFilename,EnvironmentOptions.BuildMatrixOptions);
|
||||||
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TLazSourceFileManager.OpenProjectFile B4');{$ENDIF}
|
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TLazSourceFileManager.OpenProjectFile B4');{$ENDIF}
|
||||||
Result:=CompleteLoadingProjectInfo;
|
Result:=CompleteLoadingProjectInfo;
|
||||||
finally
|
finally
|
||||||
|
Loading…
Reference in New Issue
Block a user