Deterministic Delphi toolchain discovery and normalization for Delphi systems.
# Object mode (default) -- returns PowerShell objects; pipe, filter, or assign directly
$ver = pwsh delphi-inspect.ps1 -Version
$d7 = pwsh delphi-inspect.ps1 -Resolve D7
$all = pwsh delphi-inspect.ps1 -ListKnown
$inst = pwsh delphi-inspect.ps1 -ListInstalled -Platform Win32 -BuildSystem DCC -Readiness all
$best = pwsh delphi-inspect.ps1 -DetectLatest
# Example using MSBuild with Delphi 13 Florence
# Use "Locate" to pin a Delphi version within your script so it can be run
# on developer machines that may have custom RAD Studio installation paths
# Locate with: VER370, Florence, Delphi 13, or 13 Florence...whichever is your preference
./delphi-inspect.ps1 -Locate -Name Florence | ./delphi-msbuild.ps1 -ProjectFile 'MyProj.dproj' -Platform Win64
# Text format -- human-readable output
pwsh delphi-inspect.ps1
pwsh delphi-inspect.ps1 -Version -Format text
pwsh delphi-inspect.ps1 -Resolve D7 -Format text
pwsh delphi-inspect.ps1 -Resolve -Name D7 -Format text
pwsh delphi-inspect.ps1 -Resolve "Delphi 11" -Format text
pwsh delphi-inspect.ps1 -ListKnown -Format text
pwsh delphi-inspect.ps1 -ListInstalled -Platform Win32 -BuildSystem DCC -Format text
pwsh delphi-inspect.ps1 -ListInstalled -Platform Win32 -BuildSystem DCC -Readiness all -Format text
pwsh delphi-inspect.ps1 -DetectLatest -Format text
pwsh delphi-inspect.ps1 -DetectLatest -Platform Win64 -BuildSystem DCC -Format text
# JSON format -- machine envelope for CI pipelines
pwsh delphi-inspect.ps1 -Resolve D7 -Format json
pwsh delphi-inspect.ps1 -ListKnown -Format json
pwsh delphi-inspect.ps1 -ListInstalled -Platform Win32 -BuildSystem MSBuild -Readiness all -Format json
pwsh delphi-inspect.ps1 -DetectLatest -Platform Win64 -BuildSystem DCC -Format jsonContinuous Delphi meets Delphi developers where they are.
Whether you are building manually on a desktop PC, running FinalBuilder scripts on a cloned server, or ready to adopt (or have already adopted) GitHub Actions, the tools here work at your level today without requiring you to change everything at once.
The goal is not to replace your workflow - the goal is to incrementally enhance it.
Runs on the widely available Windows PowerShell 5.1 (powershell.exe)
and the newer PowerShell 7+ (pwsh).
Note: the test suite requires pwsh.
| Command | Description |
|---|---|
Version |
Print tool version and dataset metadata |
ListKnown |
List all known Delphi versions from the dataset |
ListInstalled |
List all Delphi versions with readiness state |
DetectLatest |
Return the single highest-versioned ready install |
Locate |
Return the installation root directory for a specific installed version |
Resolve |
Resolve an alias or VER### to a canonical entry |
See docs/commands.md for full command reference including switches, output formats, exit codes, and any functionality differences between implementations.
-Format controls the output mode. Valid values:
object(default) -- emits PowerShell objects to the pipeline. Pipe, filter, or assign directly. No text formatting is applied.text-- human-readable formatted output, one record per line or block.json-- machine envelope withok/command/tool/resultstructure. Suitable for CI pipelines and non-PowerShell consumers.
Property names in result match the dataset field names exactly.
Success (-Version):
{
"ok": true,
"command": "version",
"tool": {
"name": "delphi-inspect",
"version": "X.Y.Z"
},
"result": {
"schemaVersion": "1.0.0",
"dataVersion": "0.1.0",
"generatedUtcDate": "YYYY-MM-DD"
}
}Success (-Resolve):
{
"ok": true,
"command": "resolve",
"tool": {
"name": "delphi-inspect",
"version": "X.Y.Z"
},
"result": {
"verDefine": "VER150",
"productName": "Delphi 7",
"compilerVersion": "15.0",
"packageVersion": "70",
"regKeyRelativePath": "\\Software\\Borland\\Delphi\\7.0",
"aliases": ["VER150", "Delphi7", "D7"]
}
}All result fields are always present in JSON output; optional fields that are
absent in the dataset appear as null rather than being omitted.
Error:
{
"ok": false,
"command": "version",
"tool": {
"name": "delphi-inspect",
"version": "X.Y.Z"
},
"error": {
"code": 3,
"message": "Data file not found: ..."
}
}The implementations consumes the canonical dataset from delphi-compiler-versions. The JSON dataset is the single source of truth.
todo
The gen/ folder produces a standalone pwsh script with the dataset embedded as a
PowerShell here-string.
Artifacts support the same three-tier dataset resolution priority. A newer
delphi-compiler-versions.json file found will take precedence over
the embedded data without regenerating or recompiling.
This tool is part of the Continuous-Delphi ecosystem, focused on improving engineering discipline for long-lived Delphi systems.

