Sign in Join
FPDoc Onlineexperiment

TBuildEngine class

In unit fpMkUnit

Main build engine for compiling and installing packages

Declaration

pascal
TBuildEngine = class(TComponent)

Inheritance

  1. TBuildEngine
  2. TComponent
  3. TPersistent
  4. 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

VerbosepublicControls verbose output during build operations
InteractivepublicWhether the build engine runs in interactive mode
ListModepublicMode for listing package information
ForceCompilepublicWhether to force recompilation of all targets
ExternalPackagespublicCollection of external package dependencies
StartDirpublicStarting directory for build operations
NotifyEventCollectionpublicCollection of notification event handlers

Methods

Errorprotected
SysDirectoryExistsprotected
SysFileExistsprotected
SysCopyFileprotected
SysMoveFileprotected
SysDeleteFileprotected
SysDeleteDirectoryprotected
SysDeleteTreeprotected
SysArchiveFilesprotected
LogIndentprotected
LogUnIndentprotected
EnterDirprotected
GetCompilerprotected
InstallPackageFilesprotected
InstallUnitConfigFileprotected
GetUnitConfigFilesInstallDirprotected
InstallPackageSourceFilesprotected
FileNewerprotected
LogSearchPathprotected
FindFileInPathprotected
GetDirectoriesFromFilelistprotected
AddPackageMacrosToDictionaryprotected
GetUnitDirprotected
ResolvePackagePathsprotected
AddDependencyPathsprotected
AddDependencyUnitPathsprotected
AddDependencyTransmittedOptionsprotected
GetDocProjectprotected
CreatepublicCreates a new build engine instance
DestroypublicDestroys the build engine and frees resources
AddPathPrefixpublicAdds package-specific path prefix to a path
ResolveFileNamespublicResolves and validates file paths for package targets
ClearResolvedFileNamespublicClears resolved file name cache for a package
ExecuteCommandpublicExecutes a command with arguments and environment variables
GetExecuteCommandOutputpublicExecutes command and captures output text
CmdCopyFilespublicCopies files to destination directory
CmdCreateDirpublicCreates a directory with necessary parent directories
CmdMoveFilespublicMoves files to destination directory
CmdDeleteFilespublicDeletes files from filesystem
CmdDeleteDestFilespublicDeletes files from destination directory
CmdArchiveFilespublicCreates archive file containing specified files
CmdRenameFilepublicRenames or moves a file to new location
CmdRemoveDirspublicRemoves directories from the filesystem
CmdRemoveTreespublicRemoves directory trees from the filesystem
ExecuteCommandspublicExecutes a collection of build commands
DependencyOKpublicChecks if dependency is satisfied
GetCompilerCommandpublicGets compiler command for target
TargetOKpublicChecks if target is valid for platform
TargetInstallOKpublicChecks if target can be installed on platform
NeedsCompilepublicChecks if target needs compilation
CompilepublicCompiles a specific target within a package
MaybeCompilepublicCompiles target if compilation is needed
CompileDependenciespublicCompiles all dependencies for a target
PackageOKpublicChecks if package is valid for compilation
DoBeforeCompilepublicExecutes actions before package compilation
DoAfterCompilepublicExecutes actions after package compilation
DoBeforeInstallpublicExecutes actions before package installation
DoAfterInstallpublicExecutes actions after package installation
DoBeforeArchivepublicExecutes actions before package archiving
DoAfterArchivepublicExecutes actions after package archiving
DoBeforeCleanpublicExecutes actions before package cleaning
DoAfterCleanpublicExecutes actions after package cleaning
ReadyToCompilepublicChecks if package is ready for compilation
InstallpublicInstalls package files to target location
UnInstallpublicUninstalls package files from target location
ArchivepublicCreates archive of package files
PkgListpublicLists package contents and information
CleanpublicCleans compiled files and outputs
CheckDependenciespublicChecks package dependencies are satisfied
CheckExternalPackagepublicChecks if external package is available
CreateOutputDirpublicCreates output directory for package
ZipInstallpublicCreates ZIP archive during installation
ManifestpublicCreates manifest of package contents
FPDocProjectpublicGenerates FPDoc documentation project
LogpublicLogs message with specified level and formatting

Events

OnLogpublicEvent 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.