* Do not try to resolve dependencies for packages that not meet the target

git-svn-id: trunk@44470 -
This commit is contained in:
joost 2020-03-31 20:15:08 +00:00
parent 81887a2eb3
commit 625e847e56
2 changed files with 47 additions and 42 deletions

View File

@ -585,48 +585,52 @@ begin
begin
// Find and List dependencies
L:=TStringList.Create;
for i:=0 to P.Dependencies.Count-1 do
begin
D:=P.Dependencies[i];
if not ((PackageManager.CompilerOptions.CompilerOS in D.OSes) and (PackageManager.CompilerOptions.CompilerCPU in D.CPUs)) then
Log(llDebug,SDbgPackageDependencyOtherTarget,[D.PackageName,MakeTargetString(PackageManager.CompilerOptions.CompilerCPU,PackageManager.CompilerOptions.CompilerOS)])
// Skip dependencies that are available within the fpmake-file itself
else if not (assigned(ManifestPackages) and assigned(ManifestPackages.FindPackage(D.PackageName))) then
begin
AvailP := nil;
InstalledP:=PackageManager.FindPackage(D.PackageName, pkgpkInstalled);
// Need installation?
if not assigned(InstalledP) or
(InstalledP.Version.CompareVersion(D.MinVersion)<0) then
begin
AvailP:=PackageManager.FindPackage(D.PackageName, pkgpkAvailable);
if not assigned(AvailP) or
(AvailP.Version.CompareVersion(D.MinVersion)<0) then
begin
status:='Not Available!';
MissingDependency:=D;
end
else
begin
status:='Updating';
L.Add(D.PackageName);
end;
end
else
begin
if PackageManager.PackageIsBroken(InstalledP, s, nil) then
begin
status:='Broken, recompiling';
L.Add(D.PackageName);
end
else
status:='OK';
end;
Log(llInfo,SLogPackageDependency,
[D.PackageName,D.MinVersion.AsString,PackageVersionStr(InstalledP),
PackageVersionStr(AvailP),status])
end
end;
if not ((PackageManager.CompilerOptions.CompilerOS in P.OSes) and (PackageManager.CompilerOptions.CompilerCPU in P.CPUs)) then
Log(llDebug,SDbgPackageDependencyOtherTarget,[P.Name,MakeTargetString(PackageManager.CompilerOptions.CompilerCPU,PackageManager.CompilerOptions.CompilerOS)])
else
for i:=0 to P.Dependencies.Count-1 do
begin
D:=P.Dependencies[i];
if not ((PackageManager.CompilerOptions.CompilerOS in D.OSes) and (PackageManager.CompilerOptions.CompilerCPU in D.CPUs)) then
Log(llDebug,SDbgPackageDependencyOtherTarget,[D.PackageName,MakeTargetString(PackageManager.CompilerOptions.CompilerCPU,PackageManager.CompilerOptions.CompilerOS)])
// Skip dependencies that are available within the fpmake-file itself
else if not (assigned(ManifestPackages) and assigned(ManifestPackages.FindPackage(D.PackageName))) then
begin
AvailP := nil;
InstalledP:=PackageManager.FindPackage(D.PackageName, pkgpkInstalled);
// Need installation?
if not assigned(InstalledP) or
(InstalledP.Version.CompareVersion(D.MinVersion)<0) then
begin
AvailP:=PackageManager.FindPackage(D.PackageName, pkgpkAvailable);
if not assigned(AvailP) or
(AvailP.Version.CompareVersion(D.MinVersion)<0) then
begin
status:='Not Available!';
MissingDependency:=D;
end
else
begin
status:='Updating';
L.Add(D.PackageName);
end;
end
else
begin
if PackageManager.PackageIsBroken(InstalledP, s, nil) then
begin
status:='Broken, recompiling';
L.Add(D.PackageName);
end
else
status:='OK';
end;
Log(llInfo,SLogPackageDependency,
[D.PackageName,D.MinVersion.AsString,PackageVersionStr(InstalledP),
PackageVersionStr(AvailP),status])
end
end;
if assigned(ManifestPackages) and (PackNr<ManifestPackages.Count-1) then
begin
inc(PackNr);

View File

@ -158,6 +158,7 @@ Resourcestring
SDbgBackupFile = 'Creating Backup File "%s"';
SDbgPackageMultipleLocations = 'Multiple installations found for package %s, using installation "%s"';
SDbgPackageDependencyOtherTarget = 'Dependency on package %s is not for %s';
SDbgPackageDepOtherTarget = 'Package %s is not for %s, skipping it''s dependencies';
SDbgObsoleteDependency = 'Package %s depends on package %s which is not installed anymore';
SDbgForcePackageInstall = 'Installation of package "%s" forced';
SDbgPackageInstallRequired = 'Installation of package "%s" required for repository "%s"';