* Replaced the global GFFppkg instance at some locations

git-svn-id: trunk@35211 -
This commit is contained in:
joost 2016-12-28 22:35:56 +00:00
parent 5015e85140
commit b9f8c73198
4 changed files with 42 additions and 38 deletions

View File

@ -163,7 +163,7 @@ var
begin
if PackageName='' then
Error(SErrNoPackageSpecified);
P:=GFPpkg.PackageByName(PackageName, pkgpkAvailable);
P:=PackageManager.PackageByName(PackageName, pkgpkAvailable);
log(llProgres,SLogPackageInfoName,[P.Name]);
S := P.Email;
@ -209,7 +209,7 @@ begin
end
else if (PackageName<>CurrentDirPackageName) then
begin
AvailP:=GFPpkg.FindPackage(PackageName, pkgpkAvailable);
AvailP:=PackageManager.FindPackage(PackageName, pkgpkAvailable);
if Assigned(AvailP) then
begin
if AvailP.PackagesStructure.UnzipBeforeUse then
@ -224,9 +224,9 @@ end;
procedure TCommandListSettings.Execute;
begin
GFPpkg.Options.LogValues(llProgres);
GFPpkg.CompilerOptions.LogValues(llProgres,'');
GFPpkg.FPMakeCompilerOptions.LogValues(llProgres,'fpmake-building ');
PackageManager.Options.LogValues(llProgres);
PackageManager.CompilerOptions.LogValues(llProgres,'');
PackageManager.FPMakeCompilerOptions.LogValues(llProgres,'fpmake-building ');
end;
@ -246,27 +246,27 @@ var
begin
// Download and load mirrors.xml
// This can be skipped when a custom RemoteRepository is configured
if (GFPpkg.Options.GlobalSection.RemoteMirrorsURL<>'') and
(GFPpkg.Options.GlobalSection.RemoteRepository='auto') then
if (PackageManager.Options.GlobalSection.RemoteMirrorsURL<>'') and
(PackageManager.Options.GlobalSection.RemoteRepository='auto') then
begin
Log(llCommands,SLogDownloading,[GFPpkg.Options.GlobalSection.RemoteMirrorsURL,GFPpkg.Options.GlobalSection.LocalMirrorsFile]);
DownloadFile(GFPpkg.Options.GlobalSection.RemoteMirrorsURL,GFPpkg.Options.GlobalSection.LocalMirrorsFile);
Log(llCommands,SLogDownloading,[PackageManager.Options.GlobalSection.RemoteMirrorsURL,PackageManager.Options.GlobalSection.LocalMirrorsFile]);
DownloadFile(PackageManager.Options.GlobalSection.RemoteMirrorsURL,PackageManager.Options.GlobalSection.LocalMirrorsFile);
LoadLocalAvailableMirrors;
end;
// Download packages.xml
PackagesURL:=GetRemoteRepositoryURL(PackagesFileName);
Log(llCommands,SLogDownloading,[PackagesURL,GFPpkg.Options.GlobalSection.LocalPackagesFile]);
DownloadFile(PackagesURL,GFPpkg.Options.GlobalSection.LocalPackagesFile);
Log(llCommands,SLogDownloading,[PackagesURL,PackageManager.Options.GlobalSection.LocalPackagesFile]);
DownloadFile(PackagesURL,PackageManager.Options.GlobalSection.LocalPackagesFile);
// Read the repository again
GFPpkg.ScanAvailablePackages;
PackageManager.ScanAvailablePackages;
// no need to log errors again
FindInstalledPackages(GFPpkg.CompilerOptions,False);
FindInstalledPackages(PackageManager.CompilerOptions,False);
end;
procedure TCommandListPackages.Execute;
begin
ListPackages(GFPpkg.Options.CommandLineSection.ShowLocation);
ListPackages(PackageManager.Options.CommandLineSection.ShowLocation);
end;
@ -283,7 +283,7 @@ var
begin
if PackageName='' then
Error(SErrNoPackageSpecified);
P:=GFPpkg.PackageByName(PackageName, pkgpkAvailable);
P:=PackageManager.PackageByName(PackageName, pkgpkAvailable);
if not FileExists(PackageLocalArchive(P)) then
ExecuteAction(PackageName,'downloadpackage');
end;
@ -297,7 +297,7 @@ Var
begin
if PackageName='' then
Error(SErrNoPackageSpecified);
P:=GFPpkg.PackageByName(PackageName, pkgpkAvailable);
P:=PackageManager.PackageByName(PackageName, pkgpkAvailable);
BuildDir:=PackageBuildPath(P);
ArchiveFile:=PackageLocalArchive(P);
if not FileExists(ArchiveFile) then
@ -365,7 +365,7 @@ begin
end
else
begin
P:=GFPpkg.FindPackage(PackageName, pkgpkAvailable);
P:=PackageManager.FindPackage(PackageName, pkgpkAvailable);
if Assigned(P) then
begin
if P.PackagesStructure.UnzipBeforeUse then
@ -418,8 +418,8 @@ begin
begin
ExecuteAction(PackageName,'build');
AvailPackage := GFPpkg.FindPackage(PackageName, pkgpkAvailable);
InstallRepo := GFPpkg.GetInstallRepository(AvailPackage);
AvailPackage := PackageManager.FindPackage(PackageName, pkgpkAvailable);
InstallRepo := PackageManager.GetInstallRepository(AvailPackage);
case InstallRepo.DefaultPackagesStructure.IsInstallationNeeded(AvailPackage) of
fpinInstallationNeeded:
ExecuteAction(PackageName,'fpmakeinstall');
@ -526,7 +526,7 @@ begin
end;
end
else
P:=GFPpkg.PackageByName(PackageName, pkgpkBoth);
P:=PackageManager.PackageByName(PackageName, pkgpkBoth);
MissingDependency:=nil;
while assigned(P) do
@ -536,18 +536,18 @@ begin
for i:=0 to P.Dependencies.Count-1 do
begin
D:=P.Dependencies[i];
if not ((GFPpkg.CompilerOptions.CompilerOS in D.OSes) and (GFPpkg.CompilerOptions.CompilerCPU in D.CPUs)) then
Log(llDebug,SDbgPackageDependencyOtherTarget,[D.PackageName,MakeTargetString(GFPpkg.CompilerOptions.CompilerCPU,GFPpkg.CompilerOptions.CompilerOS)])
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:=GFPpkg.FindPackage(D.PackageName, pkgpkInstalled);
InstalledP:=PackageManager.FindPackage(D.PackageName, pkgpkInstalled);
// Need installation?
if not assigned(InstalledP) or
(InstalledP.Version.CompareVersion(D.MinVersion)<0) then
begin
AvailP:=GFPpkg.FindPackage(D.PackageName, pkgpkAvailable);
AvailP:=PackageManager.FindPackage(D.PackageName, pkgpkAvailable);
if not assigned(AvailP) or
(AvailP.Version.CompareVersion(D.MinVersion)<0) then
begin

View File

@ -23,7 +23,8 @@ uses
{$ifdef HAS_UNIT_PROCESS}
process,
{$endif HAS_UNIT_PROCESS}
fprepos;
fprepos,
pkgFppkg;
type
{ TPackageHandler }
@ -31,6 +32,7 @@ type
TPackageHandler = Class(TComponent)
private
FPackageName : string;
FPackageManager: tpkgFPpkg;
Protected
Procedure Log(Level: TLogLevel;Msg : String);
Procedure Log(Level: TLogLevel;Fmt : String; const Args : array of const);
@ -38,8 +40,9 @@ type
Procedure Error(Fmt : String; const Args : array of const);
Function ExecuteProcess(Const Prog,Args:String):Integer;
Procedure SetCurrentDir(Const ADir:String);
Property PackageManager:TpkgFPpkg Read FPackageManager;
Public
Constructor Create(AOwner:TComponent;const APackageName:string); virtual;
Constructor Create(AOwner:TComponent; APackageManager:TpkgFPpkg; const APackageName:string); virtual;
function PackageLogPrefix:String;
procedure ExecuteAction(const APackageName,AAction:string);
procedure Execute; virtual; abstract;
@ -52,7 +55,7 @@ type
// Actions/PkgHandler
procedure RegisterPkgHandler(const AAction:string;pkghandlerclass:TPackageHandlerClass);
function GetPkgHandler(const AAction:string):TPackageHandlerClass;
procedure ExecuteAction(const APackageName,AAction:string);
procedure ExecuteAction(const APackageName,AAction:string; PackageManager: TpkgFPpkg);
function PackageBuildPath(APackage:TFPPackage):String;
function PackageRemoteArchive(APackage:TFPPackage): String;
@ -94,7 +97,7 @@ begin
end;
procedure ExecuteAction(const APackageName,AAction:string);
procedure ExecuteAction(const APackageName,AAction:string; PackageManager: TpkgFPpkg);
var
pkghandlerclass : TPackageHandlerClass;
FullActionName : string;
@ -111,7 +114,7 @@ begin
// Create action handler class
pkghandlerclass:=GetPkgHandler(AAction);
With pkghandlerclass.Create(nil,APackageName) do
With pkghandlerclass.Create(nil,PackageManager,APackageName) do
try
Log(llDebug,SLogRunAction+' start',[AAction]);
Execute;
@ -169,10 +172,12 @@ end;
{ TPackageHandler }
constructor TPackageHandler.Create(AOwner:TComponent;const APackageName:string);
Constructor TPackageHandler.Create(AOwner: TComponent; APackageManager: TpkgFPpkg;
const APackageName: string);
begin
inherited Create(AOwner);
FPackageName:=APackageName;
FPackageManager:=APackageManager;
end;
{$ifdef HAS_UNIT_PROCESS}
@ -290,8 +295,7 @@ end;
procedure TPackageHandler.ExecuteAction(const APackageName,AAction:string);
begin
// Needed to override TComponent.ExecuteAction method
pkghandler.ExecuteAction(APackageName,AAction);
pkghandler.ExecuteAction(APackageName,AAction,PackageManager);
end;

View File

@ -259,7 +259,7 @@ begin
TempPackagesStructure.SetTempPath(FPath+SR.Name);
PackageName := SR.Name + '_create_manifest';
TempPackagesStructure.TempPackageName := PackageName;
pkghandler.ExecuteAction(PackageName,'fpmakemanifest');
pkghandler.ExecuteAction(PackageName,'fpmakemanifest',GFPpkg);
except
on E: Exception do
begin

View File

@ -332,7 +332,7 @@ begin
if not FileExists(GFPpkg.Options.GlobalSection.LocalPackagesFile) then
begin
try
pkghandler.ExecuteAction('','update');
pkghandler.ExecuteAction('','update', GFPpkg);
except
on E: Exception do
pkgglobals.Log(llWarning,E.Message);
@ -374,7 +374,7 @@ begin
InstPackages.AddPackagesToRepository(Repo);
Repo.DefaultPackagesStructure := InstPackages;
end;
pkghandler.ExecuteAction(CurrentDirPackageName,ParaAction);
pkghandler.ExecuteAction(CurrentDirPackageName,ParaAction,GFPpkg);
end
else
begin
@ -383,19 +383,19 @@ begin
begin
if sametext(ExtractFileExt(ParaPackages[i]),'.zip') and FileExists(ParaPackages[i]) then
begin
pkghandler.ExecuteAction(CmdLinePackageName,ParaAction);
pkghandler.ExecuteAction(CmdLinePackageName,ParaAction,GFPpkg);
end
else
begin
pkgglobals.Log(llDebug,SLogCommandLineAction,['['+ParaPackages[i]+']',ParaAction]);
pkghandler.ExecuteAction(ParaPackages[i],ParaAction);
pkghandler.ExecuteAction(ParaPackages[i],ParaAction,GFPpkg);
end;
end;
end;
// Recompile all packages dependent on this package
if (ParaAction='install') and not GFPpkg.Options.CommandLineSection.SkipFixBrokenAfterInstall then
pkghandler.ExecuteAction('','fixbroken');
pkghandler.ExecuteAction('','fixbroken',GFPpkg);
Terminate;