project groups: editor: show dependencies of loaded project

git-svn-id: trunk@50362 -
This commit is contained in:
mattias 2015-11-17 13:54:11 +00:00
parent 3628131a81
commit 19c203dd22
2 changed files with 33 additions and 2 deletions

View File

@ -211,6 +211,7 @@ end;
procedure TIDEProjectGroupManager.DoNewClick(Sender: TObject); procedure TIDEProjectGroupManager.DoNewClick(Sender: TObject);
var var
AProject: TLazProject; AProject: TLazProject;
T: TIDECompileTarget;
begin begin
if Not CheckSaved then if Not CheckSaved then
Exit; Exit;
@ -220,8 +221,10 @@ begin
// add current project // add current project
AProject:=LazarusIDE.ActiveProject; AProject:=LazarusIDE.ActiveProject;
if (AProject<>nil) and FilenameIsAbsolute(AProject.ProjectInfoFile) if (AProject<>nil) and FilenameIsAbsolute(AProject.ProjectInfoFile)
and FileExistsCached(AProject.ProjectInfoFile) then and FileExistsCached(AProject.ProjectInfoFile) then begin
FProjectGroup.AddTarget(AProject.ProjectInfoFile); T:=FProjectGroup.AddTarget(AProject.ProjectInfoFile) as TIDECompileTarget;
if T<>nil then T.LoadTarget;
end;
ShowProjectGroupEditor; ShowProjectGroupEditor;
end; end;
@ -633,6 +636,9 @@ var
AProject: TLazProject; AProject: TLazProject;
i: Integer; i: Integer;
ProjFile: TLazProjectFile; ProjFile: TLazProjectFile;
PkgList: TFPList;
Pkg: TIDEPackage;
PkgName: String;
begin begin
UnloadTarget; UnloadTarget;
@ -648,6 +654,21 @@ begin
FFiles.Add(ProjFile.Filename); FFiles.Add(ProjFile.Filename);
end; end;
// ToDo: dependencies // ToDo: dependencies
PkgList:=nil;
try
PackageEditingInterface.GetRequiredPackages(AProject,PkgList,[pirCompileOrder]);
if PkgList<>nil then begin
FRequiredPackages:=TObjectList.Create(True);
for i:=0 to PkgList.Count-1 do begin
Pkg:=TIDEPackage(PkgList[i]);
PkgName:=ExtractFileUnitname(Pkg.Filename,true);
FRequiredPackages.Add(TPGDependency.Create(PkgName));
end;
end;
finally
PkgList.Free;
end;
end else begin end else begin
// load from .lpi file // load from .lpi file
// ToDo // ToDo

View File

@ -36,9 +36,12 @@ Type
TProjectGroup = class; TProjectGroup = class;
{ TPGDependency }
TPGDependency = class TPGDependency = class
public public
PackageName: string; PackageName: string;
constructor Create(const aPkgName: string);
end; end;
{ TPGCompileTarget - a node in the tree, see TPGTargetType } { TPGCompileTarget - a node in the tree, see TPGTargetType }
@ -190,6 +193,13 @@ begin
Result:=AAction in [taCompile,taCompileClean]; Result:=AAction in [taCompile,taCompileClean];
end; end;
{ TPGDependency }
constructor TPGDependency.Create(const aPkgName: string);
begin
PackageName:=aPkgName;
end;
{ TProjectGroup } { TProjectGroup }