Browse Source

* Replaced the global GFFppkg instance at some locations

git-svn-id: trunk@35211 -
joost 8 years ago
parent
commit
b9f8c73198

+ 24 - 24
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

+ 12 - 8
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;
 
 

+ 1 - 1
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

+ 5 - 5
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;