From 01d74c39d2652382c763eb058796f6025f7a3461 Mon Sep 17 00:00:00 2001 From: balazs Date: Mon, 3 Dec 2018 07:17:07 +0000 Subject: [PATCH] PackageIntf: Detect if a package is installed or not via the packaging interface, function "IsPackageInstalled". git-svn-id: trunk@59716 - --- components/ideintf/packageintf.pas | 1 + packager/pkgmanager.pas | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/components/ideintf/packageintf.pas b/components/ideintf/packageintf.pas index 602b384f6b..40ea6810ef 100644 --- a/components/ideintf/packageintf.pas +++ b/components/ideintf/packageintf.pas @@ -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; diff --git a/packager/pkgmanager.pas b/packager/pkgmanager.pas index f51ca9ae1f..d3e0b016fa 100644 --- a/packager/pkgmanager.pas +++ b/packager/pkgmanager.pas @@ -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;