Build, Deployment, Package Managers and CI/CD

49.1 Build Configurations and Command-Line Builds

Debug vs Release configurations (optimization, debug info, assertions, range checking), target platforms, output directories, version info (Project → Options → Version Info, auto-increment build).

Compiler executables: dcc32 (Win32), dcc64 (Win64), dccaarm64 (Android 64), dccosxarm64 (macOS ARM), dcciosarm64 (iOS), dcclinux64 (Linux).

call "C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\rsvars.bat"
msbuild MyApp.dproj /t:Build /p:Config=Release /p:Platform=Win64
dcc64 -B -$O+ -E.\bin MyApp.dpr

49.2 Deployment

Windows: single EXE (static linking by default, no runtime needed unless you build with packages). Include DLLs for databases (e.g., libpq.dll, fbclient.dll) and OpenSSL if you use Indy TLS.

Installers: Inno Setup (written in Delphi, free), InstallAware, Advanced Installer, WiX, MSIX packaging (supported via the IDE).

Code signing (Authenticode, signtool) to avoid SmartScreen warnings. Auto-update mechanisms (custom, or libraries such as TMS components).

macOS: .app bundles, notarization, App Store. iOS: IPA via Xcode/App Store Connect. Android: AAB/APK to Google Play. Linux: console/daemon apps (systemd) and FMXLinux GUI apps.

49.3 Package Managers

Built into the IDE (Tools → GetIt Package Manager) Dependency manager for Delphi (npm-like, boss.json), popular for Horse IDE package manager (GitHub-based) DPM (Delphi Package Manager) NuGet-like package manager by VSoft MultiInstaller / manual For complex component suites

49.4 CI/CD

Build servers: Jenkins, GitHub Actions (self-hosted Windows runner with RAD Studio installed), Azure DevOps, TeamCity, FinalBuilder (VSoft, Delphi-friendly), Continua CI.

Pipeline: checkout → rsvars.bat + msbuild → run DUnitX tests (console runner, NUnit XML output) → code analysis → sign → build the installer → publish artifacts.

Static analysis: Pascal Analyzer (Peganza), FixInsight (TMS), SonarDelphi (community/IntegraDev plugin for SonarQube), Delphi LSP errors in CI. Formatting: the IDE formatter or pasfmt.