PackageIntf: Detect if a package is installed or not via the packaging interface, function "IsPackageInstalled".

git-svn-id: trunk@59716 -
This commit is contained in:
balazs 2018-12-03 07:17:07 +00:00
parent 4ae9277231
commit 01d74c39d2
2 changed files with 12 additions and 0 deletions

View File

@ -296,6 +296,7 @@ type
function GetPackages(Index: integer): TIDEPackage; virtual; abstract;
function FindPackageWithName(const PkgName: string; IgnorePackage: TIDEPackage = nil): TIDEPackage; virtual; abstract;
function FindInstalledPackageWithUnit(const AnUnitName: string): TIDEPackage; virtual; abstract;
function IsPackageInstalled(const PkgName: string): TIDEPackage; virtual; abstract;
// dependencies
function IsOwnerDependingOnPkg(AnOwner: TObject; const PkgName: string;

View File

@ -259,6 +259,7 @@ type
function FindPackageWithName(const PkgName: string; IgnorePackage: TIDEPackage = nil): TIDEPackage; override;
function FindInstalledPackageWithUnit(const AnUnitName: string
): TIDEPackage; override;
function IsPackageInstalled(const PkgName: string): TIDEPackage; override;
function IsOwnerDependingOnPkg(AnOwner: TObject; const PkgName: string;
out DependencyOwner: TObject): boolean; override;
procedure GetRequiredPackages(AnOwner: TObject; out PkgList: TFPList;
@ -4169,6 +4170,16 @@ begin
Result:=PkgFile.LazPackage;
end;
function TPkgManager.IsPackageInstalled(const PkgName: string): TIDEPackage;
var
LazPackage: TLazPackage;
begin
Result := nil;
LazPackage:=PackageGraph.FindPackageWithName(PkgName, nil);
if (LazPackage<>nil) and (LazPackage.Installed<>pitNope) then
Result:=LazPackage
end;
function TPkgManager.RedirectPackageDependency(APackage: TIDEPackage): TIDEPackage;
begin
Result:=APackage;