Unit 'fpmkunit' Package
[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] [#fcl]

TBuildEngine

[Properties (by Name)] [Methods (by Name)] [Events (by Name)]

Main build engine for compiling and installing packages

Declaration

Source position: fpmkunit.pp line 1343

type TBuildEngine = class(TComponent)

public

  constructor Create(); override;

  

Creates a new build engine instance

  destructor Destroy; override;

  

Destroys the build engine and frees resources

  function AddPathPrefix();

  

Adds package-specific path prefix to a path

  property Verbose: Boolean; [rw]

  

Controls verbose output during build operations

  property Interactive: Boolean; [rw]

  

Whether the build engine runs in interactive mode

  procedure ResolveFileNames();

  

Resolves and validates file paths for package targets

  procedure ClearResolvedFileNames();

  

Clears resolved file name cache for a package

  procedure ExecuteCommand(); virtual;

  

Executes a command with arguments and environment variables

  function GetExecuteCommandOutput(); virtual;

  

Executes command and captures output text

  procedure CmdCopyFiles();

  

Copies files to destination directory

  procedure CmdCreateDir();

  

Creates a directory with necessary parent directories

  procedure CmdMoveFiles();

  

Moves files to destination directory

  procedure CmdDeleteFiles();

  

Deletes files from filesystem

  procedure CmdDeleteDestFiles();

  

Deletes files from destination directory

  procedure CmdArchiveFiles();

  

Creates archive file containing specified files

  procedure CmdRenameFile();

  

Renames or moves a file to new location

  procedure CmdRemoveDirs();

  

Removes directories from the filesystem

  procedure CmdRemoveTrees();

  

Removes directory trees from the filesystem

  procedure ExecuteCommands();

  

Executes a collection of build commands

  function DependencyOK();

  

Checks if dependency is satisfied

  function GetCompilerCommand(); deprecated ;

  

Gets compiler command for target

  function TargetOK(); deprecated ;

  

Checks if target is valid for platform

  function TargetInstallOK(); deprecated ;

  

Checks if target can be installed on platform

  function NeedsCompile();

  

Checks if target needs compilation

  procedure Compile();

  

Compiles a specific target within a package

  procedure MaybeCompile();

  

Compiles target if compilation is needed

  procedure CompileDependencies();

  

Compiles all dependencies for a target

  function PackageOK(); virtual;

  

Checks if package is valid for compilation

  procedure DoBeforeCompile(); virtual;

  

Executes actions before package compilation

  procedure DoAfterCompile(); virtual;

  

Executes actions after package compilation

  procedure DoBeforeInstall(); virtual;

  

Executes actions before package installation

  procedure DoAfterInstall(); virtual;

  

Executes actions after package installation

  procedure DoBeforeArchive(); virtual;

  

Executes actions before package archiving

  procedure DoAfterArchive(); virtual;

  

Executes actions after package archiving

  procedure DoBeforeClean(); virtual;

  

Executes actions before package cleaning

  procedure DoAfterClean(); virtual;

  

Executes actions after package cleaning

  function ReadyToCompile();

  

Checks if package is ready for compilation

  procedure Install();

  

Installs package files to target location

  procedure UnInstall();

  

Uninstalls package files from target location

  procedure Archive();

  

Creates archive of package files

  procedure PkgList();

  

Lists package contents and information

  procedure Clean();

  

Cleans compiled files and outputs

  function CheckDependencies();

  

Checks package dependencies are satisfied

  function CheckExternalPackage();

  

Checks if external package is available

  procedure CreateOutputDir();

  

Creates output directory for package

  procedure ZipInstall();

  

Creates ZIP archive during installation

  procedure Manifest();

  

Creates manifest of package contents

  procedure FPDocProject();

  

Generates FPDoc documentation project

  procedure Log();

  

Logs message with specified level and formatting

  property ListMode: Boolean; [rw]

  

Mode for listing package information

  property ForceCompile: Boolean; [rw]

  

Whether to force recompilation of all targets

  property ExternalPackages: TPackages; [r]

  

Collection of external package dependencies

  property StartDir: string; [r]

  

Starting directory for build operations

  property NotifyEventCollection: TNotifyEventCollection; [r]

  

Collection of notification event handlers

  property OnLog: TLogEvent; [rw]

  

Event handler for logging messages

end;

Inheritance

TBuildEngine

  

Main build engine for compiling and installing packages

|

TComponent

|

TPersistent,IUnknown,IInterfaceComponentReference

|

TObject,IFPObserved

Description

TBuildEngine is the central component that orchestrates the entire build process for fpmake packages. It manages compilation, dependency resolution, file operations, and installation procedures.

The build engine provides the following functionality:

The engine works with TPackage objects to compile targets, resolve dependencies, and manage the entire build lifecycle from compilation through installation.

See also

TPackage

  

Central class for package management and building

TTarget

  

Build target representation in the fpmake system

TCustomDefaults

  

Base class for build system default configurations

TCustomInstaller

  

Base class for package installers


Documentation generated on: Dec 15 2025