Packager: For a newly created component add a package dependency only when needed. Issue #36876.

git-svn-id: trunk@62907 -
This commit is contained in:
juha 2020-04-07 21:28:40 +00:00
parent 37c5baa6a6
commit 811cb08fd5

View File

@ -41,7 +41,7 @@ uses
IDEDialogs,
// IDE
LazarusIDEStrConsts, InputHistory, EnvironmentOpts,
PackageSystem, PackageDefs;
PackageSystem, PackageDefs, ProjPackChecks;
type
@ -414,6 +414,7 @@ var
PkgFile: TPkgFile;
PkgComponent: TPkgComponent;
ARequiredPackage: TLazPackage;
NewDependency: TPkgDependency;
ThePath: String;
begin
fParams.Clear;
@ -518,10 +519,15 @@ begin
fParams.UsedUnitname:=PkgComponent.GetUnitName;
ARequiredPackage:=PkgComponent.PkgFile.LazPackage;
ARequiredPackage:=TLazPackage(PackageEditingInterface.RedirectPackageDependency(ARequiredPackage));
if (LazPackage<>ARequiredPackage)
and not LazPackage.Requires(PkgComponent.PkgFile.LazPackage)
then
PackageGraph.AddDependencyToPackage(LazPackage, ARequiredPackage);
NewDependency:=TPkgDependency.Create;
try
NewDependency.DependencyType:=pdtLazarus;
NewDependency.PackageName:=ARequiredPackage.Name;
if CheckAddingPackageDependency(LazPackage,NewDependency,false,false)=mrOK then
PackageGraph.AddDependencyToPackage(LazPackage, NewDependency);
finally
NewDependency.Free;
end;
end;
ModalResult:=mrOk;
end;