diff --git a/components/projectgroups/projectgroup.pp b/components/projectgroups/projectgroup.pp index 9f073970c9..0d15987ab5 100644 --- a/components/projectgroups/projectgroup.pp +++ b/components/projectgroups/projectgroup.pp @@ -592,6 +592,7 @@ var PkgName: String; begin FTarget:=Nil; + PkgName:=ExtractFileUnitname(Filename,true); if PkgName='' then begin debugln(['Warning: (lazarus) [TIDECompileTarget.LoadPackage] invalid package filename "',Filename,'"']); @@ -628,9 +629,28 @@ begin end; procedure TIDECompileTarget.LoadProject; +var + AProject: TLazProject; + i: Integer; + ProjFile: TLazProjectFile; begin UnloadTarget; - // ToDo + + AProject:=LazarusIDE.ActiveProject; + if (AProject<>nil) and (CompareFilenames(AProject.ProjectInfoFile,Filename)=0) + then begin + // load from active project + FFiles:=TStringList.Create; + for i:=0 to AProject.FileCount-1 do begin + ProjFile:=AProject.Files[i]; + if ProjFile.IsPartOfProject then + FFiles.Add(ProjFile.Filename); + end; + // ToDo: dependencies + end else begin + // load from .lpi file + // ToDo + end; end; procedure TIDECompileTarget.LoadProjectGroup; diff --git a/components/projectgroups/projectgroupeditor.pas b/components/projectgroups/projectgroupeditor.pas index dc9ce74a99..9f9637c617 100644 --- a/components/projectgroups/projectgroupeditor.pas +++ b/components/projectgroups/projectgroupeditor.pas @@ -134,7 +134,7 @@ type procedure SetEventCallBacks(AProjectGroup: TProjectGroup); // Some helpers procedure SetProjectGroup(AValue: TProjectGroup); - procedure ShowDependencies(AParent: TTreeNode; AProjectGroup: TProjectGroup; T: TObject; Out PD: TTargetNodes); + procedure ShowDependencies(AParent: TTreeNode; AProjectGroup: TProjectGroup; T: TPGCompileTarget; Out PD: TTargetNodes); procedure ShowFileName; procedure Perform(ATargetAction: TPGTargetAction); function GetActiveTarget: TPGCompileTarget; @@ -919,19 +919,23 @@ begin end; procedure TProjectGroupEditorForm.ShowDependencies(AParent: TTreeNode; - AProjectGroup: TProjectGroup; T: TObject; out PD: TTargetNodes); + AProjectGroup: TProjectGroup; T: TPGCompileTarget; out PD: TTargetNodes); Var - L: TfPList; - I: Integer; - P: TIDEPackage; + i: Integer; + Pkg: TIDEPackage; + PkgName: String; begin PD[False]:=CreateNode(AParent,lisNodeDependencies,ntDependencies,Nil,AProjectGroup); PD[True]:=CreateNode(AParent,lisNodeRemovedDependencies,ntRemovedDependencies,Nil,AProjectGroup); - PackageEditingInterface.GetRequiredPackages(T,L,[pirCompileOrder]); - For I:=0 to L.Count-1 do + For i:=0 to T.RequiredPackageCount-1 do begin - P:=TIDEPackage(L[i]); - CreateNode(PD[False],P.Name,ntDependency,Nil,AProjectGroup); + PkgName:=T.RequiredPackages[i].PackageName; + Pkg:=PackageEditingInterface.FindPackageWithName(PkgName); + if Pkg<>nil then begin + CreateNode(PD[False],Pkg.Name,ntDependency,Nil,AProjectGroup); + end else begin + CreateNode(PD[False],PKgName,ntDependency,Nil,AProjectGroup); + end; end; end;