IDE: what needs building: skip designtime packages for project

git-svn-id: trunk@40288 -
This commit is contained in:
mattias 2013-02-13 09:34:57 +00:00
parent 1fa926c402
commit aa18d686ac

View File

@ -32,7 +32,7 @@ interface
uses uses
Classes, SysUtils, FileUtil, AvgLvlTree, FileProcs, Forms, Controls, Graphics, Classes, SysUtils, FileUtil, AvgLvlTree, FileProcs, Forms, Controls, Graphics,
Dialogs, StdCtrls, Buttons, ButtonPanel, LCLType, Dialogs, StdCtrls, Buttons, ButtonPanel, LCLType,
IDEWindowIntf, LazIDEIntf, ProjectIntf, IDEWindowIntf, LazIDEIntf, ProjectIntf, PackageIntf,
LazarusIDEStrConsts, PackageDefs, PackageSystem, Project, InputHistory, LazarusIDEStrConsts, PackageDefs, PackageSystem, Project, InputHistory,
EnvironmentOpts, IDEProcs, BuildManager; EnvironmentOpts, IDEProcs, BuildManager;
@ -340,11 +340,12 @@ end;
function TIDEInfoNeedBuildDlg.GetTargets(Target: string): TFPList; function TIDEInfoNeedBuildDlg.GetTargets(Target: string): TFPList;
function GetList(Main: TObject; FirstDependency: TPkgDependency): TFPList; function GetList(Main: TObject; FirstDependency: TPkgDependency;
ReqFlags: TPkgIntfRequiredFlags): TFPList;
begin begin
Result:=nil; Result:=nil;
if Main=nil then exit; if Main=nil then exit;
PackageGraph.GetAllRequiredPackages(nil,FirstDependency,Result); PackageGraph.GetAllRequiredPackages(nil,FirstDependency,Result,ReqFlags);
if Result<>nil then begin if Result<>nil then begin
// PackageGraph.GetAllRequiredPackages starts with the inner nodes // PackageGraph.GetAllRequiredPackages starts with the inner nodes
// => reverse order // => reverse order
@ -357,14 +358,18 @@ function TIDEInfoNeedBuildDlg.GetTargets(Target: string): TFPList;
var var
Pkg: TLazPackage; Pkg: TLazPackage;
ReqFlags: TPkgIntfRequiredFlags;
begin begin
ReqFlags:=[];
if Target=IDEAsTarget then begin if Target=IDEAsTarget then begin
Result:=GetList(LazarusIDE,PackageGraph.FirstAutoInstallDependency); Result:=GetList(LazarusIDE,PackageGraph.FirstAutoInstallDependency,ReqFlags);
end else if Target=ProjectAsTarget(Project1) then begin end else if Target=ProjectAsTarget(Project1) then begin
Result:=GetList(Project1,Project1.FirstRequiredDependency); if not (pfUseDesignTimePackages in Project1.Flags) then
Include(ReqFlags,pirSkipDesignTimeOnly);
Result:=GetList(Project1,Project1.FirstRequiredDependency,ReqFlags);
end else begin end else begin
Pkg:=PackageGraph.FindPackageWithName(Target,nil); Pkg:=PackageGraph.FindPackageWithName(Target,nil);
Result:=GetList(Pkg,Pkg.FirstRequiredDependency); Result:=GetList(Pkg,Pkg.FirstRequiredDependency,ReqFlags);
end; end;
end; end;