diff --git a/components/projectgroups/projectgroup.pp b/components/projectgroups/projectgroup.pp index d0b6ce88fd..bb86d520a2 100644 --- a/components/projectgroups/projectgroup.pp +++ b/components/projectgroups/projectgroup.pp @@ -211,6 +211,7 @@ end; procedure TIDEProjectGroupManager.DoNewClick(Sender: TObject); var AProject: TLazProject; + T: TIDECompileTarget; begin if Not CheckSaved then Exit; @@ -220,8 +221,10 @@ begin // add current project AProject:=LazarusIDE.ActiveProject; if (AProject<>nil) and FilenameIsAbsolute(AProject.ProjectInfoFile) - and FileExistsCached(AProject.ProjectInfoFile) then - FProjectGroup.AddTarget(AProject.ProjectInfoFile); + and FileExistsCached(AProject.ProjectInfoFile) then begin + T:=FProjectGroup.AddTarget(AProject.ProjectInfoFile) as TIDECompileTarget; + if T<>nil then T.LoadTarget; + end; ShowProjectGroupEditor; end; @@ -633,6 +636,9 @@ var AProject: TLazProject; i: Integer; ProjFile: TLazProjectFile; + PkgList: TFPList; + Pkg: TIDEPackage; + PkgName: String; begin UnloadTarget; @@ -648,6 +654,21 @@ begin FFiles.Add(ProjFile.Filename); end; // 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 // load from .lpi file // ToDo diff --git a/components/projectgroups/projectgroupintf.pp b/components/projectgroups/projectgroupintf.pp index f22b641531..e1279afc7a 100644 --- a/components/projectgroups/projectgroupintf.pp +++ b/components/projectgroups/projectgroupintf.pp @@ -36,9 +36,12 @@ Type TProjectGroup = class; + { TPGDependency } + TPGDependency = class public PackageName: string; + constructor Create(const aPkgName: string); end; { TPGCompileTarget - a node in the tree, see TPGTargetType } @@ -190,6 +193,13 @@ begin Result:=AAction in [taCompile,taCompileClean]; end; +{ TPGDependency } + +constructor TPGDependency.Create(const aPkgName: string); +begin + PackageName:=aPkgName; +end; + { TProjectGroup }