mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 16:09:25 +02:00
* Replaced the global GFFppkg instance at some locations
git-svn-id: trunk@35211 -
This commit is contained in:
parent
5015e85140
commit
b9f8c73198
@ -163,7 +163,7 @@ var
|
|||||||
begin
|
begin
|
||||||
if PackageName='' then
|
if PackageName='' then
|
||||||
Error(SErrNoPackageSpecified);
|
Error(SErrNoPackageSpecified);
|
||||||
P:=GFPpkg.PackageByName(PackageName, pkgpkAvailable);
|
P:=PackageManager.PackageByName(PackageName, pkgpkAvailable);
|
||||||
|
|
||||||
log(llProgres,SLogPackageInfoName,[P.Name]);
|
log(llProgres,SLogPackageInfoName,[P.Name]);
|
||||||
S := P.Email;
|
S := P.Email;
|
||||||
@ -209,7 +209,7 @@ begin
|
|||||||
end
|
end
|
||||||
else if (PackageName<>CurrentDirPackageName) then
|
else if (PackageName<>CurrentDirPackageName) then
|
||||||
begin
|
begin
|
||||||
AvailP:=GFPpkg.FindPackage(PackageName, pkgpkAvailable);
|
AvailP:=PackageManager.FindPackage(PackageName, pkgpkAvailable);
|
||||||
if Assigned(AvailP) then
|
if Assigned(AvailP) then
|
||||||
begin
|
begin
|
||||||
if AvailP.PackagesStructure.UnzipBeforeUse then
|
if AvailP.PackagesStructure.UnzipBeforeUse then
|
||||||
@ -224,9 +224,9 @@ end;
|
|||||||
|
|
||||||
procedure TCommandListSettings.Execute;
|
procedure TCommandListSettings.Execute;
|
||||||
begin
|
begin
|
||||||
GFPpkg.Options.LogValues(llProgres);
|
PackageManager.Options.LogValues(llProgres);
|
||||||
GFPpkg.CompilerOptions.LogValues(llProgres,'');
|
PackageManager.CompilerOptions.LogValues(llProgres,'');
|
||||||
GFPpkg.FPMakeCompilerOptions.LogValues(llProgres,'fpmake-building ');
|
PackageManager.FPMakeCompilerOptions.LogValues(llProgres,'fpmake-building ');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -246,27 +246,27 @@ var
|
|||||||
begin
|
begin
|
||||||
// Download and load mirrors.xml
|
// Download and load mirrors.xml
|
||||||
// This can be skipped when a custom RemoteRepository is configured
|
// This can be skipped when a custom RemoteRepository is configured
|
||||||
if (GFPpkg.Options.GlobalSection.RemoteMirrorsURL<>'') and
|
if (PackageManager.Options.GlobalSection.RemoteMirrorsURL<>'') and
|
||||||
(GFPpkg.Options.GlobalSection.RemoteRepository='auto') then
|
(PackageManager.Options.GlobalSection.RemoteRepository='auto') then
|
||||||
begin
|
begin
|
||||||
Log(llCommands,SLogDownloading,[GFPpkg.Options.GlobalSection.RemoteMirrorsURL,GFPpkg.Options.GlobalSection.LocalMirrorsFile]);
|
Log(llCommands,SLogDownloading,[PackageManager.Options.GlobalSection.RemoteMirrorsURL,PackageManager.Options.GlobalSection.LocalMirrorsFile]);
|
||||||
DownloadFile(GFPpkg.Options.GlobalSection.RemoteMirrorsURL,GFPpkg.Options.GlobalSection.LocalMirrorsFile);
|
DownloadFile(PackageManager.Options.GlobalSection.RemoteMirrorsURL,PackageManager.Options.GlobalSection.LocalMirrorsFile);
|
||||||
LoadLocalAvailableMirrors;
|
LoadLocalAvailableMirrors;
|
||||||
end;
|
end;
|
||||||
// Download packages.xml
|
// Download packages.xml
|
||||||
PackagesURL:=GetRemoteRepositoryURL(PackagesFileName);
|
PackagesURL:=GetRemoteRepositoryURL(PackagesFileName);
|
||||||
Log(llCommands,SLogDownloading,[PackagesURL,GFPpkg.Options.GlobalSection.LocalPackagesFile]);
|
Log(llCommands,SLogDownloading,[PackagesURL,PackageManager.Options.GlobalSection.LocalPackagesFile]);
|
||||||
DownloadFile(PackagesURL,GFPpkg.Options.GlobalSection.LocalPackagesFile);
|
DownloadFile(PackagesURL,PackageManager.Options.GlobalSection.LocalPackagesFile);
|
||||||
// Read the repository again
|
// Read the repository again
|
||||||
GFPpkg.ScanAvailablePackages;
|
PackageManager.ScanAvailablePackages;
|
||||||
// no need to log errors again
|
// no need to log errors again
|
||||||
FindInstalledPackages(GFPpkg.CompilerOptions,False);
|
FindInstalledPackages(PackageManager.CompilerOptions,False);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TCommandListPackages.Execute;
|
procedure TCommandListPackages.Execute;
|
||||||
begin
|
begin
|
||||||
ListPackages(GFPpkg.Options.CommandLineSection.ShowLocation);
|
ListPackages(PackageManager.Options.CommandLineSection.ShowLocation);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -283,7 +283,7 @@ var
|
|||||||
begin
|
begin
|
||||||
if PackageName='' then
|
if PackageName='' then
|
||||||
Error(SErrNoPackageSpecified);
|
Error(SErrNoPackageSpecified);
|
||||||
P:=GFPpkg.PackageByName(PackageName, pkgpkAvailable);
|
P:=PackageManager.PackageByName(PackageName, pkgpkAvailable);
|
||||||
if not FileExists(PackageLocalArchive(P)) then
|
if not FileExists(PackageLocalArchive(P)) then
|
||||||
ExecuteAction(PackageName,'downloadpackage');
|
ExecuteAction(PackageName,'downloadpackage');
|
||||||
end;
|
end;
|
||||||
@ -297,7 +297,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
if PackageName='' then
|
if PackageName='' then
|
||||||
Error(SErrNoPackageSpecified);
|
Error(SErrNoPackageSpecified);
|
||||||
P:=GFPpkg.PackageByName(PackageName, pkgpkAvailable);
|
P:=PackageManager.PackageByName(PackageName, pkgpkAvailable);
|
||||||
BuildDir:=PackageBuildPath(P);
|
BuildDir:=PackageBuildPath(P);
|
||||||
ArchiveFile:=PackageLocalArchive(P);
|
ArchiveFile:=PackageLocalArchive(P);
|
||||||
if not FileExists(ArchiveFile) then
|
if not FileExists(ArchiveFile) then
|
||||||
@ -365,7 +365,7 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
P:=GFPpkg.FindPackage(PackageName, pkgpkAvailable);
|
P:=PackageManager.FindPackage(PackageName, pkgpkAvailable);
|
||||||
if Assigned(P) then
|
if Assigned(P) then
|
||||||
begin
|
begin
|
||||||
if P.PackagesStructure.UnzipBeforeUse then
|
if P.PackagesStructure.UnzipBeforeUse then
|
||||||
@ -418,8 +418,8 @@ begin
|
|||||||
begin
|
begin
|
||||||
ExecuteAction(PackageName,'build');
|
ExecuteAction(PackageName,'build');
|
||||||
|
|
||||||
AvailPackage := GFPpkg.FindPackage(PackageName, pkgpkAvailable);
|
AvailPackage := PackageManager.FindPackage(PackageName, pkgpkAvailable);
|
||||||
InstallRepo := GFPpkg.GetInstallRepository(AvailPackage);
|
InstallRepo := PackageManager.GetInstallRepository(AvailPackage);
|
||||||
case InstallRepo.DefaultPackagesStructure.IsInstallationNeeded(AvailPackage) of
|
case InstallRepo.DefaultPackagesStructure.IsInstallationNeeded(AvailPackage) of
|
||||||
fpinInstallationNeeded:
|
fpinInstallationNeeded:
|
||||||
ExecuteAction(PackageName,'fpmakeinstall');
|
ExecuteAction(PackageName,'fpmakeinstall');
|
||||||
@ -526,7 +526,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
P:=GFPpkg.PackageByName(PackageName, pkgpkBoth);
|
P:=PackageManager.PackageByName(PackageName, pkgpkBoth);
|
||||||
|
|
||||||
MissingDependency:=nil;
|
MissingDependency:=nil;
|
||||||
while assigned(P) do
|
while assigned(P) do
|
||||||
@ -536,18 +536,18 @@ begin
|
|||||||
for i:=0 to P.Dependencies.Count-1 do
|
for i:=0 to P.Dependencies.Count-1 do
|
||||||
begin
|
begin
|
||||||
D:=P.Dependencies[i];
|
D:=P.Dependencies[i];
|
||||||
if not ((GFPpkg.CompilerOptions.CompilerOS in D.OSes) and (GFPpkg.CompilerOptions.CompilerCPU in D.CPUs)) then
|
if not ((PackageManager.CompilerOptions.CompilerOS in D.OSes) and (PackageManager.CompilerOptions.CompilerCPU in D.CPUs)) then
|
||||||
Log(llDebug,SDbgPackageDependencyOtherTarget,[D.PackageName,MakeTargetString(GFPpkg.CompilerOptions.CompilerCPU,GFPpkg.CompilerOptions.CompilerOS)])
|
Log(llDebug,SDbgPackageDependencyOtherTarget,[D.PackageName,MakeTargetString(PackageManager.CompilerOptions.CompilerCPU,PackageManager.CompilerOptions.CompilerOS)])
|
||||||
// Skip dependencies that are available within the fpmake-file itself
|
// Skip dependencies that are available within the fpmake-file itself
|
||||||
else if not (assigned(ManifestPackages) and assigned(ManifestPackages.FindPackage(D.PackageName))) then
|
else if not (assigned(ManifestPackages) and assigned(ManifestPackages.FindPackage(D.PackageName))) then
|
||||||
begin
|
begin
|
||||||
AvailP := nil;
|
AvailP := nil;
|
||||||
InstalledP:=GFPpkg.FindPackage(D.PackageName, pkgpkInstalled);
|
InstalledP:=PackageManager.FindPackage(D.PackageName, pkgpkInstalled);
|
||||||
// Need installation?
|
// Need installation?
|
||||||
if not assigned(InstalledP) or
|
if not assigned(InstalledP) or
|
||||||
(InstalledP.Version.CompareVersion(D.MinVersion)<0) then
|
(InstalledP.Version.CompareVersion(D.MinVersion)<0) then
|
||||||
begin
|
begin
|
||||||
AvailP:=GFPpkg.FindPackage(D.PackageName, pkgpkAvailable);
|
AvailP:=PackageManager.FindPackage(D.PackageName, pkgpkAvailable);
|
||||||
if not assigned(AvailP) or
|
if not assigned(AvailP) or
|
||||||
(AvailP.Version.CompareVersion(D.MinVersion)<0) then
|
(AvailP.Version.CompareVersion(D.MinVersion)<0) then
|
||||||
begin
|
begin
|
||||||
|
@ -23,7 +23,8 @@ uses
|
|||||||
{$ifdef HAS_UNIT_PROCESS}
|
{$ifdef HAS_UNIT_PROCESS}
|
||||||
process,
|
process,
|
||||||
{$endif HAS_UNIT_PROCESS}
|
{$endif HAS_UNIT_PROCESS}
|
||||||
fprepos;
|
fprepos,
|
||||||
|
pkgFppkg;
|
||||||
|
|
||||||
type
|
type
|
||||||
{ TPackageHandler }
|
{ TPackageHandler }
|
||||||
@ -31,6 +32,7 @@ type
|
|||||||
TPackageHandler = Class(TComponent)
|
TPackageHandler = Class(TComponent)
|
||||||
private
|
private
|
||||||
FPackageName : string;
|
FPackageName : string;
|
||||||
|
FPackageManager: tpkgFPpkg;
|
||||||
Protected
|
Protected
|
||||||
Procedure Log(Level: TLogLevel;Msg : String);
|
Procedure Log(Level: TLogLevel;Msg : String);
|
||||||
Procedure Log(Level: TLogLevel;Fmt : String; const Args : array of const);
|
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);
|
Procedure Error(Fmt : String; const Args : array of const);
|
||||||
Function ExecuteProcess(Const Prog,Args:String):Integer;
|
Function ExecuteProcess(Const Prog,Args:String):Integer;
|
||||||
Procedure SetCurrentDir(Const ADir:String);
|
Procedure SetCurrentDir(Const ADir:String);
|
||||||
|
Property PackageManager:TpkgFPpkg Read FPackageManager;
|
||||||
Public
|
Public
|
||||||
Constructor Create(AOwner:TComponent;const APackageName:string); virtual;
|
Constructor Create(AOwner:TComponent; APackageManager:TpkgFPpkg; const APackageName:string); virtual;
|
||||||
function PackageLogPrefix:String;
|
function PackageLogPrefix:String;
|
||||||
procedure ExecuteAction(const APackageName,AAction:string);
|
procedure ExecuteAction(const APackageName,AAction:string);
|
||||||
procedure Execute; virtual; abstract;
|
procedure Execute; virtual; abstract;
|
||||||
@ -52,7 +55,7 @@ type
|
|||||||
// Actions/PkgHandler
|
// Actions/PkgHandler
|
||||||
procedure RegisterPkgHandler(const AAction:string;pkghandlerclass:TPackageHandlerClass);
|
procedure RegisterPkgHandler(const AAction:string;pkghandlerclass:TPackageHandlerClass);
|
||||||
function GetPkgHandler(const AAction:string):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 PackageBuildPath(APackage:TFPPackage):String;
|
||||||
function PackageRemoteArchive(APackage:TFPPackage): String;
|
function PackageRemoteArchive(APackage:TFPPackage): String;
|
||||||
@ -94,7 +97,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure ExecuteAction(const APackageName,AAction:string);
|
procedure ExecuteAction(const APackageName,AAction:string; PackageManager: TpkgFPpkg);
|
||||||
var
|
var
|
||||||
pkghandlerclass : TPackageHandlerClass;
|
pkghandlerclass : TPackageHandlerClass;
|
||||||
FullActionName : string;
|
FullActionName : string;
|
||||||
@ -111,7 +114,7 @@ begin
|
|||||||
|
|
||||||
// Create action handler class
|
// Create action handler class
|
||||||
pkghandlerclass:=GetPkgHandler(AAction);
|
pkghandlerclass:=GetPkgHandler(AAction);
|
||||||
With pkghandlerclass.Create(nil,APackageName) do
|
With pkghandlerclass.Create(nil,PackageManager,APackageName) do
|
||||||
try
|
try
|
||||||
Log(llDebug,SLogRunAction+' start',[AAction]);
|
Log(llDebug,SLogRunAction+' start',[AAction]);
|
||||||
Execute;
|
Execute;
|
||||||
@ -169,10 +172,12 @@ end;
|
|||||||
|
|
||||||
{ TPackageHandler }
|
{ TPackageHandler }
|
||||||
|
|
||||||
constructor TPackageHandler.Create(AOwner:TComponent;const APackageName:string);
|
Constructor TPackageHandler.Create(AOwner: TComponent; APackageManager: TpkgFPpkg;
|
||||||
|
const APackageName: string);
|
||||||
begin
|
begin
|
||||||
inherited Create(AOwner);
|
inherited Create(AOwner);
|
||||||
FPackageName:=APackageName;
|
FPackageName:=APackageName;
|
||||||
|
FPackageManager:=APackageManager;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$ifdef HAS_UNIT_PROCESS}
|
{$ifdef HAS_UNIT_PROCESS}
|
||||||
@ -290,8 +295,7 @@ end;
|
|||||||
|
|
||||||
procedure TPackageHandler.ExecuteAction(const APackageName,AAction:string);
|
procedure TPackageHandler.ExecuteAction(const APackageName,AAction:string);
|
||||||
begin
|
begin
|
||||||
// Needed to override TComponent.ExecuteAction method
|
pkghandler.ExecuteAction(APackageName,AAction,PackageManager);
|
||||||
pkghandler.ExecuteAction(APackageName,AAction);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -259,7 +259,7 @@ begin
|
|||||||
TempPackagesStructure.SetTempPath(FPath+SR.Name);
|
TempPackagesStructure.SetTempPath(FPath+SR.Name);
|
||||||
PackageName := SR.Name + '_create_manifest';
|
PackageName := SR.Name + '_create_manifest';
|
||||||
TempPackagesStructure.TempPackageName := PackageName;
|
TempPackagesStructure.TempPackageName := PackageName;
|
||||||
pkghandler.ExecuteAction(PackageName,'fpmakemanifest');
|
pkghandler.ExecuteAction(PackageName,'fpmakemanifest',GFPpkg);
|
||||||
except
|
except
|
||||||
on E: Exception do
|
on E: Exception do
|
||||||
begin
|
begin
|
||||||
|
@ -332,7 +332,7 @@ begin
|
|||||||
if not FileExists(GFPpkg.Options.GlobalSection.LocalPackagesFile) then
|
if not FileExists(GFPpkg.Options.GlobalSection.LocalPackagesFile) then
|
||||||
begin
|
begin
|
||||||
try
|
try
|
||||||
pkghandler.ExecuteAction('','update');
|
pkghandler.ExecuteAction('','update', GFPpkg);
|
||||||
except
|
except
|
||||||
on E: Exception do
|
on E: Exception do
|
||||||
pkgglobals.Log(llWarning,E.Message);
|
pkgglobals.Log(llWarning,E.Message);
|
||||||
@ -374,7 +374,7 @@ begin
|
|||||||
InstPackages.AddPackagesToRepository(Repo);
|
InstPackages.AddPackagesToRepository(Repo);
|
||||||
Repo.DefaultPackagesStructure := InstPackages;
|
Repo.DefaultPackagesStructure := InstPackages;
|
||||||
end;
|
end;
|
||||||
pkghandler.ExecuteAction(CurrentDirPackageName,ParaAction);
|
pkghandler.ExecuteAction(CurrentDirPackageName,ParaAction,GFPpkg);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
@ -383,19 +383,19 @@ begin
|
|||||||
begin
|
begin
|
||||||
if sametext(ExtractFileExt(ParaPackages[i]),'.zip') and FileExists(ParaPackages[i]) then
|
if sametext(ExtractFileExt(ParaPackages[i]),'.zip') and FileExists(ParaPackages[i]) then
|
||||||
begin
|
begin
|
||||||
pkghandler.ExecuteAction(CmdLinePackageName,ParaAction);
|
pkghandler.ExecuteAction(CmdLinePackageName,ParaAction,GFPpkg);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
pkgglobals.Log(llDebug,SLogCommandLineAction,['['+ParaPackages[i]+']',ParaAction]);
|
pkgglobals.Log(llDebug,SLogCommandLineAction,['['+ParaPackages[i]+']',ParaAction]);
|
||||||
pkghandler.ExecuteAction(ParaPackages[i],ParaAction);
|
pkghandler.ExecuteAction(ParaPackages[i],ParaAction,GFPpkg);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Recompile all packages dependent on this package
|
// Recompile all packages dependent on this package
|
||||||
if (ParaAction='install') and not GFPpkg.Options.CommandLineSection.SkipFixBrokenAfterInstall then
|
if (ParaAction='install') and not GFPpkg.Options.CommandLineSection.SkipFixBrokenAfterInstall then
|
||||||
pkghandler.ExecuteAction('','fixbroken');
|
pkghandler.ExecuteAction('','fixbroken',GFPpkg);
|
||||||
|
|
||||||
Terminate;
|
Terminate;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user