From b9f8c73198aa4acb9786fb359c8147ccdeb0848f Mon Sep 17 00:00:00 2001 From: joost Date: Wed, 28 Dec 2016 22:35:56 +0000 Subject: [PATCH] * Replaced the global GFFppkg instance at some locations git-svn-id: trunk@35211 - --- packages/fppkg/src/pkgcommands.pp | 48 +++++++++---------- packages/fppkg/src/pkghandler.pp | 20 ++++---- .../src/pkguninstalledsourcesrepository.pp | 2 +- utils/fppkg/fppkg.pp | 10 ++-- 4 files changed, 42 insertions(+), 38 deletions(-) diff --git a/packages/fppkg/src/pkgcommands.pp b/packages/fppkg/src/pkgcommands.pp index 1bc21f3783..cc4f3843a0 100644 --- a/packages/fppkg/src/pkgcommands.pp +++ b/packages/fppkg/src/pkgcommands.pp @@ -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 diff --git a/packages/fppkg/src/pkghandler.pp b/packages/fppkg/src/pkghandler.pp index e0b3a276c5..59f20c636a 100644 --- a/packages/fppkg/src/pkghandler.pp +++ b/packages/fppkg/src/pkghandler.pp @@ -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; diff --git a/packages/fppkg/src/pkguninstalledsourcesrepository.pp b/packages/fppkg/src/pkguninstalledsourcesrepository.pp index 2b9a71d064..220aef29fa 100644 --- a/packages/fppkg/src/pkguninstalledsourcesrepository.pp +++ b/packages/fppkg/src/pkguninstalledsourcesrepository.pp @@ -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 diff --git a/utils/fppkg/fppkg.pp b/utils/fppkg/fppkg.pp index 7b505a3b70..316f49070c 100644 --- a/utils/fppkg/fppkg.pp +++ b/utils/fppkg/fppkg.pp @@ -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;