Просмотр исходного кода

* Added procedure-events to TPackage
* Added public property TBuildEngine.Startdir
* Made TCustomInstaller.BuildEngine public (to be able to use it to copy files in fpmake.pp files)

git-svn-id: trunk@18050 -

joost 14 лет назад
Родитель
Сommit
6d5e16d9e6
1 измененных файлов с 39 добавлено и 1 удалено
  1. 39 1
      packages/fpmkunit/src/fpmkunit.pp

+ 39 - 1
packages/fpmkunit/src/fpmkunit.pp

@@ -101,6 +101,7 @@ Type
   TDependencyTypes = set of TDependencyType;
   TDependencyTypes = set of TDependencyType;
 
 
   TLogEvent = Procedure (Level : TVerboseLevel; Const Msg : String) of Object;
   TLogEvent = Procedure (Level : TVerboseLevel; Const Msg : String) of Object;
+  TNotifyProcEvent = procedure(Sender: TObject);
 
 
   TRunMode = (rmCompile,rmBuild,rmInstall,rmArchive,rmClean,rmDistClean,rmManifest);
   TRunMode = (rmCompile,rmBuild,rmInstall,rmArchive,rmClean,rmDistClean,rmManifest);
 
 
@@ -527,15 +528,25 @@ Type
   TPackage = Class(TNamedItem)
   TPackage = Class(TNamedItem)
   private
   private
     FAfterArchive: TNotifyEvent;
     FAfterArchive: TNotifyEvent;
+    FAfterArchiveProc: TNotifyProcEvent;
     FAfterClean: TNotifyEvent;
     FAfterClean: TNotifyEvent;
+    FAfterCleanProc: TNotifyProcEvent;
     FAfterCompile: TNotifyEvent;
     FAfterCompile: TNotifyEvent;
+    FAfterCompileProc: TNotifyProcEvent;
     FAfterInstall: TNotifyEvent;
     FAfterInstall: TNotifyEvent;
+    FAfterInstallProc: TNotifyProcEvent;
     FAfterManifest: TNotifyEvent;
     FAfterManifest: TNotifyEvent;
+    FAfterManifestProc: TNotifyProcEvent;
     FBeforeArchive: TNotifyEvent;
     FBeforeArchive: TNotifyEvent;
+    FBeforeArchiveProc: TNotifyProcEvent;
     FBeforeClean: TNotifyEvent;
     FBeforeClean: TNotifyEvent;
+    FBeforeCleanProc: TNotifyProcEvent;
     FBeforeCompile: TNotifyEvent;
     FBeforeCompile: TNotifyEvent;
+    FBeforeCompileProc: TNotifyProcEvent;
     FBeforeInstall: TNotifyEvent;
     FBeforeInstall: TNotifyEvent;
+    FBeforeInstallProc: TNotifyProcEvent;
     FBeforeManifest: TNotifyEvent;
     FBeforeManifest: TNotifyEvent;
+    FBeforeManifestProc: TNotifyProcEvent;
     FFPDocFormat: TFPDocFormats;
     FFPDocFormat: TFPDocFormats;
     FIsFPMakeAddIn: boolean;
     FIsFPMakeAddIn: boolean;
     FUnitPath,
     FUnitPath,
@@ -626,15 +637,25 @@ Type
     Property UnitDir : String Read FUnitDir Write FUnitDir;
     Property UnitDir : String Read FUnitDir Write FUnitDir;
     // events
     // events
     Property BeforeCompile : TNotifyEvent Read FBeforeCompile Write FBeforeCompile;
     Property BeforeCompile : TNotifyEvent Read FBeforeCompile Write FBeforeCompile;
+    Property BeforeCompileProc : TNotifyProcEvent Read FBeforeCompileProc write FBeforeCompileProc;
     Property AfterCompile : TNotifyEvent Read FAfterCompile Write FAfterCompile;
     Property AfterCompile : TNotifyEvent Read FAfterCompile Write FAfterCompile;
+    Property AfterCompileProc : TNotifyProcEvent Read FAfterCompileProc Write FAfterCompileProc;
     Property BeforeInstall : TNotifyEvent Read FBeforeInstall Write FBeforeInstall;
     Property BeforeInstall : TNotifyEvent Read FBeforeInstall Write FBeforeInstall;
+    Property BeforeInstallProc : TNotifyProcEvent Read FBeforeInstallProc Write FBeforeInstallProc;
     Property AfterInstall : TNotifyEvent Read FAfterInstall Write FAfterInstall;
     Property AfterInstall : TNotifyEvent Read FAfterInstall Write FAfterInstall;
+    Property AfterInstallProc : TNotifyProcEvent Read FAfterInstallProc Write FAfterInstallProc;
     Property BeforeClean : TNotifyEvent Read FBeforeClean Write FBeforeClean;
     Property BeforeClean : TNotifyEvent Read FBeforeClean Write FBeforeClean;
+    Property BeforeCleanProc : TNotifyProcEvent Read FBeforeCleanProc Write FBeforeCleanProc;
     Property AfterClean : TNotifyEvent Read FAfterClean Write FAfterClean;
     Property AfterClean : TNotifyEvent Read FAfterClean Write FAfterClean;
+    Property AfterCleanProc : TNotifyProcEvent Read FAfterCleanProc Write FAfterCleanProc;
     Property BeforeArchive : TNotifyEvent Read FBeforeArchive Write FBeforeArchive;
     Property BeforeArchive : TNotifyEvent Read FBeforeArchive Write FBeforeArchive;
+    Property BeforeArchiveProc : TNotifyProcEvent Read FBeforeArchiveProc Write FBeforeArchiveProc;
     Property AfterArchive : TNotifyEvent Read FAfterArchive Write FAfterArchive;
     Property AfterArchive : TNotifyEvent Read FAfterArchive Write FAfterArchive;
+    Property AfterArchiveProc : TNotifyProcEvent Read FAfterArchiveProc Write FAfterArchiveProc;
     Property BeforeManifest : TNotifyEvent Read FBeforeManifest Write FBeforeManifest;
     Property BeforeManifest : TNotifyEvent Read FBeforeManifest Write FBeforeManifest;
+    Property BeforeManifestProc : TNotifyProcEvent Read FBeforeManifestProc Write FBeforeManifestProc;
     Property AfterManifest : TNotifyEvent Read FAfterManifest Write FAfterManifest;
     Property AfterManifest : TNotifyEvent Read FAfterManifest Write FAfterManifest;
+    Property AfterManifestProc : TNotifyProcEvent Read FAfterManifestProc Write FAfterManifestProc;
   end;
   end;
 
 
   { TPackages }
   { TPackages }
@@ -868,6 +889,7 @@ Type
     Property ListMode : Boolean Read FListMode Write FListMode;
     Property ListMode : Boolean Read FListMode Write FListMode;
     Property ForceCompile : Boolean Read FForceCompile Write FForceCompile;
     Property ForceCompile : Boolean Read FForceCompile Write FForceCompile;
     Property ExternalPackages: TPackages Read FExternalPackages;
     Property ExternalPackages: TPackages Read FExternalPackages;
+    Property StartDir: String Read FStartDir;
     // Events
     // Events
     Property BeforeCompile : TNotifyEvent Read FBeforeCompile Write FBeforeCompile;
     Property BeforeCompile : TNotifyEvent Read FBeforeCompile Write FBeforeCompile;
     Property AfterCompile : TNotifyEvent Read FAfterCompile Write FAfterCompile;
     Property AfterCompile : TNotifyEvent Read FAfterCompile Write FAfterCompile;
@@ -908,13 +930,13 @@ Type
     Procedure Install; virtual;
     Procedure Install; virtual;
     Procedure Archive; virtual;
     Procedure Archive; virtual;
     Procedure Manifest; virtual;
     Procedure Manifest; virtual;
-    Property BuildEngine : TBuildEngine Read FBuildEngine;
   Public
   Public
     Constructor Create(AOwner : TComponent); virtual;
     Constructor Create(AOwner : TComponent); virtual;
     Destructor destroy; override;
     Destructor destroy; override;
     Function AddPackage(Const AName : String) : TPackage;
     Function AddPackage(Const AName : String) : TPackage;
     Function Run : Boolean;
     Function Run : Boolean;
     Property FPMakeOptionsString: string read FFPMakeOptionsString;
     Property FPMakeOptionsString: string read FFPMakeOptionsString;
+    Property BuildEngine : TBuildEngine Read FBuildEngine;
     //files in package
     //files in package
     Property Packages : TPackages Read GetPackages;
     Property Packages : TPackages Read GetPackages;
     Property RunMode : TRunMode Read FRunMode;
     Property RunMode : TRunMode Read FRunMode;
@@ -4341,6 +4363,8 @@ begin
   ExecuteCommands(APackage.Commands,caBeforeCompile);
   ExecuteCommands(APackage.Commands,caBeforeCompile);
   If Assigned(APackage.BeforeCompile) then
   If Assigned(APackage.BeforeCompile) then
     APackage.BeforeCompile(APackage);
     APackage.BeforeCompile(APackage);
+  If Assigned(APackage.BeforeCompileProc) then
+    APackage.BeforeCompileProc(APackage);
 end;
 end;
 
 
 
 
@@ -4348,6 +4372,8 @@ procedure TBuildEngine.DoAfterCompile(APackage: TPackage);
 begin
 begin
   If Assigned(APackage.AfterCompile) then
   If Assigned(APackage.AfterCompile) then
     APackage.AfterCompile(APackage);
     APackage.AfterCompile(APackage);
+  If Assigned(APackage.AfterCompileProc) then
+    APackage.AfterCompileProc(APackage);
   ExecuteCommands(APackage.Commands,caAfterCompile);
   ExecuteCommands(APackage.Commands,caAfterCompile);
 end;
 end;
 
 
@@ -4835,6 +4861,8 @@ begin
   ExecuteCommands(APackage.Commands,caBeforeInstall);
   ExecuteCommands(APackage.Commands,caBeforeInstall);
   If Assigned(APackage.BeforeInstall) then
   If Assigned(APackage.BeforeInstall) then
     APackage.BeforeInstall(APackage);
     APackage.BeforeInstall(APackage);
+  If Assigned(APackage.BeforeInstallProc) then
+    APackage.BeforeInstallProc(APackage);
 end;
 end;
 
 
 
 
@@ -4842,6 +4870,8 @@ procedure TBuildEngine.DoAfterInstall(APackage: TPackage);
 begin
 begin
   If Assigned(APackage.AfterInstall) then
   If Assigned(APackage.AfterInstall) then
     APackage.AfterInstall(APackage);
     APackage.AfterInstall(APackage);
+  If Assigned(APackage.AfterInstallProc) then
+    APackage.AfterInstallProc(APackage);
   ExecuteCommands(APackage.Commands,caAfterInstall);
   ExecuteCommands(APackage.Commands,caAfterInstall);
 end;
 end;
 
 
@@ -4896,6 +4926,8 @@ begin
   ExecuteCommands(APackage.Commands,caBeforeArchive);
   ExecuteCommands(APackage.Commands,caBeforeArchive);
   If Assigned(APackage.BeforeArchive) then
   If Assigned(APackage.BeforeArchive) then
     APackage.BeforeArchive(APackage);
     APackage.BeforeArchive(APackage);
+  If Assigned(APackage.BeforeArchiveProc) then
+    APackage.BeforeArchiveProc(APackage);
 end;
 end;
 
 
 
 
@@ -4903,6 +4935,8 @@ procedure TBuildEngine.DoAfterArchive(APackage: TPackage);
 begin
 begin
   If Assigned(APackage.AfterArchive) then
   If Assigned(APackage.AfterArchive) then
     APackage.AfterArchive(APackage);
     APackage.AfterArchive(APackage);
+  If Assigned(APackage.AfterArchiveProc) then
+    APackage.AfterArchiveProc(APackage);
   ExecuteCommands(APackage.Commands,caAfterArchive);
   ExecuteCommands(APackage.Commands,caAfterArchive);
 end;
 end;
 
 
@@ -4973,6 +5007,8 @@ begin
   ExecuteCommands(APackage.Commands,caBeforeClean);
   ExecuteCommands(APackage.Commands,caBeforeClean);
   If Assigned(APackage.BeforeClean) then
   If Assigned(APackage.BeforeClean) then
     APackage.BeforeClean(APackage);
     APackage.BeforeClean(APackage);
+  If Assigned(APackage.BeforeCleanProc) then
+    APackage.BeforeCleanProc(APackage);
 end;
 end;
 
 
 
 
@@ -4980,6 +5016,8 @@ procedure TBuildEngine.DoAfterClean(APackage: TPackage);
 begin
 begin
   If Assigned(APackage.AfterClean) then
   If Assigned(APackage.AfterClean) then
     APackage.AfterClean(APackage);
     APackage.AfterClean(APackage);
+  If Assigned(APackage.AfterInstallProc) then
+    APackage.AfterCleanProc(APackage);
   ExecuteCommands(APackage.Commands,caAfterClean);
   ExecuteCommands(APackage.Commands,caAfterClean);
 end;
 end;