TBuildEngine class
Main build engine for compiling and installing packages
Declaration
TBuildEngine = class(TComponent)Inheritance
- TBuildEngine
- TComponent
- TPersistent
- TObject
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:
- Package compilation with dependency resolution
- Cross-platform build support
- File operations (copy, move, delete, archive)
- Installation and uninstallation procedures
- Clean and archive operations
- Multi-threaded compilation support
- Command execution and logging
The engine works with TPackage objects to compile targets, resolve dependencies, and manage the entire build lifecycle from compilation through installation.
See also
Properties
Verbose | public | Controls verbose output during build operations |
Interactive | public | Whether the build engine runs in interactive mode |
ListMode | public | Mode for listing package information |
ForceCompile | public | Whether to force recompilation of all targets |
ExternalPackages | public | Collection of external package dependencies |
StartDir | public | Starting directory for build operations |
NotifyEventCollection | public | Collection of notification event handlers |
Methods
Error | protected | |
SysDirectoryExists | protected | |
SysFileExists | protected | |
SysCopyFile | protected | |
SysMoveFile | protected | |
SysDeleteFile | protected | |
SysDeleteDirectory | protected | |
SysDeleteTree | protected | |
SysArchiveFiles | protected | |
LogIndent | protected | |
LogUnIndent | protected | |
EnterDir | protected | |
GetCompiler | protected | |
InstallPackageFiles | protected | |
InstallUnitConfigFile | protected | |
GetUnitConfigFilesInstallDir | protected | |
InstallPackageSourceFiles | protected | |
FileNewer | protected | |
LogSearchPath | protected | |
FindFileInPath | protected | |
GetDirectoriesFromFilelist | protected | |
AddPackageMacrosToDictionary | protected | |
GetUnitDir | protected | |
ResolvePackagePaths | protected | |
AddDependencyPaths | protected | |
AddDependencyUnitPaths | protected | |
AddDependencyTransmittedOptions | protected | |
GetDocProject | protected | |
Create | public | Creates a new build engine instance |
Destroy | public | Destroys the build engine and frees resources |
AddPathPrefix | public | Adds package-specific path prefix to a path |
ResolveFileNames | public | Resolves and validates file paths for package targets |
ClearResolvedFileNames | public | Clears resolved file name cache for a package |
ExecuteCommand | public | Executes a command with arguments and environment variables |
GetExecuteCommandOutput | public | Executes command and captures output text |
CmdCopyFiles | public | Copies files to destination directory |
CmdCreateDir | public | Creates a directory with necessary parent directories |
CmdMoveFiles | public | Moves files to destination directory |
CmdDeleteFiles | public | Deletes files from filesystem |
CmdDeleteDestFiles | public | Deletes files from destination directory |
CmdArchiveFiles | public | Creates archive file containing specified files |
CmdRenameFile | public | Renames or moves a file to new location |
CmdRemoveDirs | public | Removes directories from the filesystem |
CmdRemoveTrees | public | Removes directory trees from the filesystem |
ExecuteCommands | public | Executes a collection of build commands |
DependencyOK | public | Checks if dependency is satisfied |
GetCompilerCommand | public | Gets compiler command for target |
TargetOK | public | Checks if target is valid for platform |
TargetInstallOK | public | Checks if target can be installed on platform |
NeedsCompile | public | Checks if target needs compilation |
Compile | public | Compiles a specific target within a package |
MaybeCompile | public | Compiles target if compilation is needed |
CompileDependencies | public | Compiles all dependencies for a target |
PackageOK | public | Checks if package is valid for compilation |
DoBeforeCompile | public | Executes actions before package compilation |
DoAfterCompile | public | Executes actions after package compilation |
DoBeforeInstall | public | Executes actions before package installation |
DoAfterInstall | public | Executes actions after package installation |
DoBeforeArchive | public | Executes actions before package archiving |
DoAfterArchive | public | Executes actions after package archiving |
DoBeforeClean | public | Executes actions before package cleaning |
DoAfterClean | public | Executes actions after package cleaning |
ReadyToCompile | public | Checks if package is ready for compilation |
Install | public | Installs package files to target location |
UnInstall | public | Uninstalls package files from target location |
Archive | public | Creates archive of package files |
PkgList | public | Lists package contents and information |
Clean | public | Cleans compiled files and outputs |
CheckDependencies | public | Checks package dependencies are satisfied |
CheckExternalPackage | public | Checks if external package is available |
CreateOutputDir | public | Creates output directory for package |
ZipInstall | public | Creates ZIP archive during installation |
Manifest | public | Creates manifest of package contents |
FPDocProject | public | Generates FPDoc documentation project |
Log | public | Logs message with specified level and formatting |
Events
OnLog | public | Event handler for logging messages |
Inherited
From TComponent (74)
_AddRef _Release BeforeDestruction CanObserve ChangeName ComObject ComponentCount ComponentIndex Components ComponentState ComponentStyle DefineProperties DesignInfo DestroyComponents Destroying ExecuteAction FindComponent FreeNotification FreeOnRelease GetChildOwner GetChildParent GetChildren GetDeltaStreams GetEnumerator GetIDsOfNames GetNamePath GetObservers GetOwner GetParentComponent GetTypeInfo GetTypeInfoCount HasParent iicrGetComponent InsertComponent Invoke IsImplementorOf Loaded Loading Name Notification ObserverAdded Observers OnGetDeltaStreams Owner PaletteCreated QueryInterface ReadDeltaState ReadDeltaStream ReadState ReferenceInterface RemoveComponent RemoveFreeNotification RemoveFreeNotifications SafeCallException SetAncestor SetChildOrder SetDesigning SetDesignInstance SetInline SetName SetParentComponent SetSubComponent Tag ToString TToStringNameMode UpdateAction Updated UpdateRegistry Updating ValidateContainer ValidateInsert ValidateRename VCLComObject WriteState
From TPersistent (5)
Assign AssignTo FPOAttachObserver FPODetachObserver FPONotifyObservers
From TObject (37)
AfterConstruction CheckDisposed ClassInfo ClassName ClassNameIs ClassParent ClassType CleanupInstance DefaultHandler DefaultHandlerStr Dispatch DispatchStr Disposed DisposeOf Equals FieldAddress Free FreeInstance GetDisposed GetHashCode GetInterface GetInterfaceByStr GetInterfaceEntry GetInterfaceEntryByStr GetInterfaceTable GetInterfaceWeak GetLastCastErrorInfo InheritsFrom InitInstance InstanceSize MethodAddress MethodName newinstance QualifiedClassName StringMessageTable SystemHasExtendedRTTI UnitName
An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.
