diff --git a/CHANGELOG.md b/CHANGELOG.md index f8f7dca..7335f23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,15 @@ Note: The `tag-release` script will fail if it does not find a matching version section here. --- + +## [1.4.0] Unreleased + +- Add support for `WinARM64EC` as Delphi 13.1 just started supporting this new platform + Schema + Data versions bumped from `1.0.0` to `1.1.0` due to new platform support. + Latest schema becomes 1.1.0: `https://continuous-delphi.github.io/schemas/delphi-compiler-versions.schema.json` + Added `schemas/1.0.0` and `schemas/1.1.0` to capture version-specific schemas + [#22](https://github.com/continuous-delphi/delphi-compiler-versions/issues/22) + ## [1.3.0] - 2026-03-15 - Corrected iOS+iOSSimulator platforms, will now have iOS32 + iOS64 and diff --git a/data/delphi-compiler-versions.json b/data/delphi-compiler-versions.json index e696872..7352816 100644 --- a/data/delphi-compiler-versions.json +++ b/data/delphi-compiler-versions.json @@ -1,8 +1,8 @@ { - "schemaVersion": "1.0.0", - "dataVersion": "1.0.0", + "schemaVersion": "1.1.0", + "dataVersion": "1.1.0", "meta": { - "generatedUtcDate": "2026-03-05", + "generatedUtcDate": "2026-03-21", "scope": { "includeFromVer": "VER90", "excluded": [ @@ -347,10 +347,11 @@ "packageVersion": "370", "regKeyRelativePath": "\\Software\\Embarcadero\\BDS\\37.0", "supportedBuildSystems": ["DCC", "MSBuild"], - "supportedPlatforms": ["Win32", "Win64", "macOS64", "macOSARM64", "iOS64", "iOSSimulator64", "Android32", "Android64", "Linux64"], + "supportedPlatforms": ["Win32", "Win64", "macOS64", "macOSARM64", "iOS64", "iOSSimulator64", "Android32", "Android64", "Linux64", "WinARM64EC"], "aliases": ["Delphi 13", "Florence", "13 Florence"], "notes": [ - "RAD Studio 13 unifies internal version numbers to 37 (registry, RTL, packages)." + "RAD Studio 13 unifies internal version numbers to 37 (registry, RTL, packages).", + "Update 1 for RAD Studio 13 Florence added support for WinARM64EC" ] } ] diff --git a/generated/DELPHI_COMPILER_VERSIONS.inc b/generated/DELPHI_COMPILER_VERSIONS.inc index 5b21403..a95c4a3 100644 --- a/generated/DELPHI_COMPILER_VERSIONS.inc +++ b/generated/DELPHI_COMPILER_VERSIONS.inc @@ -9,9 +9,9 @@ Metadata --------------------------------------------------------------------------- } -{$DEFINE CD_DELPHI_SCHEMA_1_0_0} -{$DEFINE CD_DELPHI_DATA_1_0_0} -{$DEFINE CD_DELPHI_GENERATED_2026_03_05} +{$DEFINE CD_DELPHI_SCHEMA_1_1_0} +{$DEFINE CD_DELPHI_DATA_1_1_0} +{$DEFINE CD_DELPHI_GENERATED_2026_03_21} { --------------------------------------------------------------------------- Unknown version detection @@ -485,3 +485,7 @@ {$DEFINE CD_DELPHI_SUPPORTS_PLATFORM_WIN64} {$ENDIF} +{$IFDEF CD_DELPHI_13_OR_LATER} + {$DEFINE CD_DELPHI_SUPPORTS_PLATFORM_WINARM64EC} +{$ENDIF} + diff --git a/generated/DelphiCompilerVersions.pas b/generated/DelphiCompilerVersions.pas index 78e70bb..bb0b3b8 100644 --- a/generated/DelphiCompilerVersions.pas +++ b/generated/DelphiCompilerVersions.pas @@ -15,7 +15,8 @@ interface MacOS64Target, MacOSARM64Target, Win32Target, - Win64Target + Win64Target, + WinARM64ECTarget ); TDelphiPlatforms = set of TDelphiPlatform; @@ -41,8 +42,8 @@ TDelphiVersion = record PDelphiVersion = ^TDelphiVersion; const - CD_SCHEMA_VERSION = '1.0.0'; - CD_DATA_VERSION = '1.0.0'; + CD_SCHEMA_VERSION = '1.1.0'; + CD_DATA_VERSION = '1.1.0'; DelphiVersions: array[0..26] of TDelphiVersion = ( @@ -312,7 +313,7 @@ TDelphiVersion = record ProductName: 'Delphi 13 Florence'; PackageVersion: '370'; RegKeyRelativePath: '\Software\Embarcadero\BDS\37.0'; - SupportedPlatforms: [Android32Target, Android64Target, IOS64Target, IOSSimulator64Target, Linux64Target, MacOS64Target, MacOSARM64Target, Win32Target, Win64Target]; + SupportedPlatforms: [Android32Target, Android64Target, IOS64Target, IOSSimulator64Target, Linux64Target, MacOS64Target, MacOSARM64Target, Win32Target, Win64Target, WinARM64ECTarget]; SupportedBuildSystems: [DCCSystem, MSBuildSystem]; AliasesCsv: 'Delphi 13;Florence;13 Florence'; ) diff --git a/generated/PlatformSupport.md b/generated/PlatformSupport.md index 381a6f1..7df627e 100644 --- a/generated/PlatformSupport.md +++ b/generated/PlatformSupport.md @@ -1,5 +1,4 @@ - # Platform Support by Delphi Version @@ -14,6 +13,7 @@ |:--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | Win32 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓⁺ | | Win64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓⁺ | | | | | | | | | | | | | +| WinARM64EC | ✓⁺ | | | | | | | | | | | | | | | | | | | | | | | | | | | | macOS32 | | | | | | ✓⁻ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓⁺ | | | | | | | | | | | | | | macOS64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓⁺ | | | | | | | | | | | | | | | | | | | | macOSARM64 | ✓ | ✓ | ✓⁺ | | | | | | | | | | | | | | | | | | | | | | | | | @@ -28,4 +28,4 @@ --- _Generated from data/delphi-compiler-versions.json -- -dataVersion 1.0.0, schemaVersion 1.0.0._ +dataVersion 1.1.0, schemaVersion 1.1.0._ diff --git a/schemas/1.0.0/delphi-compiler-versions.schema.json b/schemas/1.0.0/delphi-compiler-versions.schema.json new file mode 100644 index 0000000..73beeff --- /dev/null +++ b/schemas/1.0.0/delphi-compiler-versions.schema.json @@ -0,0 +1,212 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://continuous-delphi.github.io/delphi-compiler-versions/schemas/1.0.0/delphi-compiler-versions.schema.json" + "title": "Continuous Delphi - Canonical List of Compiler Versions", + "type": "object", + "additionalProperties": false, + "required": [ + "schemaVersion", + "dataVersion", + "versions" + ], + "properties": { + "schemaVersion": { + "type": "string", + "description": "Schema version for this document (semantic versioning).", + "pattern": "^\\d+\\.\\d+\\.\\d+$", + "examples": [ + "1.0.0" + ] + }, + "dataVersion": { + "type": "string", + "description": "Dataset version for the contents of this file (semantic versioning). Independent of schemaVersion.", + "pattern": "^\\d+\\.\\d+\\.\\d+$", + "examples": [ + "0.3.0" + ] + }, + "meta": { + "type": "object", + "description": "Optional metadata about the dataset generation and scope.", + "additionalProperties": true, + "properties": { + "generatedUtcDate": { + "type": "string", + "description": "UTC date (YYYY-MM-DD) when this file was generated or last updated.", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "examples": [ + "2026-03-01" + ] + }, + "scope": { + "type": "object", + "description": "Scope rules for inclusion/exclusion.", + "additionalProperties": true + } + } + }, + "versions": { + "type": "array", + "description": "Ordered list of Delphi compiler version entries.", + "minItems": 1, + "items": { + "$ref": "#/$defs/versionEntry" + } + } + }, + "$defs": { + "buildSystem": { + "type": "string", + "enum": ["DCC", "MSBuild"], + "description": "A supported build system identifier." + }, + "platform": { + "type": "string", + "enum": [ + "Win32", + "Win64", + "macOS32", + "macOS64", + "macOSARM64", + "Linux64", + "iOS32", + "iOS64", + "iOSSimulator32", + "iOSSimulator64", + "Android32", + "Android64" + ], + "description": "A supported target platform identifier." + }, + "versionEntry": { + "type": "object", + "additionalProperties": false, + "required": [ + "verDefine", + "productName", + "aliases", + "compilerVersion", + "supportedBuildSystems", + "supportedPlatforms" + ], + "properties": { + "verDefine": { + "type": "string", + "description": "Canonical Delphi compiler conditional define symbol.", + "pattern": "^VER\\d+$", + "examples": [ + "VER370" + ] + }, + "compilerVersion": { + "type": "string", + "description": "CompilerVersion value preserving original notation (e.g., \"37.0\"). Stored as string to retain the decimal form exactly as Embarcadero defines it.", + "pattern": "^\\d+\\.\\d+$", + "examples": [ + "37.0" + ] + }, + "productName": { + "type": "string", + "description": "Official product name for this Delphi release.", + "minLength": 1, + "examples": [ + "Delphi 13 Florence" + ] + }, + "packageVersion": { + "type": [ + "string", + "null" + ], + "description": "Package version identifier.", + "examples": [ + "370" + ] + }, + "regKeyRelativePath": { + "type": [ + "string", + "null" + ], + "description": "Relative registry key path beneath HKCU or HKLM.", + "examples": [ + "\\Software\\Embarcadero\\BDS\\37.0" + ] + }, + "supportedBuildSystems": { + "type": "array", + "description": "Build systems supported by this version. DCC = direct command-line compiler invocation. MSBuild = .dproj-based builds via MSBuild. Represents the union of all support across all point releases within this version family.", + "minItems": 1, + "items": { + "$ref": "#/$defs/buildSystem" + }, + "examples": [ + ["DCC", "MSBuild"] + ] + }, + "supportedPlatforms": { + "type": "array", + "description": "Target platforms supported by this version family. Represents the union of all platforms supported across all point releases. See notes for any sub-version platform introductions.", + "minItems": 1, + "items": { + "$ref": "#/$defs/platform" + }, + "examples": [ + ["Win32", "Win64", "macOS64", "macOSARM64", "iOS64", "Android32", "Android64", "Linux64"] + ] + }, + "aliases": { + "type": "array", + "description": "Identifiers that resolve to this entry. The properties verDefine and productName are automatically used as aliases.", + "minItems": 1, + "items": { + "type": "string" + }, + "examples": [ + [ + "Delphi 13", + "Delphi13", + "BDS 37.0", + "CompilerVersion 37.0" + ] + ] + }, + "notes": { + "type": "array", + "description": "Optional notes for special cases, including sub-version platform introductions.", + "items": { + "type": "string" + }, + "default": [] + } + } + } + }, + "examples": [ + { + "schemaVersion": "1.0.0", + "dataVersion": "0.3.0", + "versions": [ + { + "verDefine": "VER370", + "compilerVersion": "37.0", + "productName": "Delphi 13 Florence", + "packageVersion": "370", + "regKeyRelativePath": "\\Software\\Embarcadero\\BDS\\37.0", + "supportedBuildSystems": ["DCC", "MSBuild"], + "supportedPlatforms": ["Win32", "Win64", "macOS64", "macOSARM64", "iOS64", "iOSSimulator64", "Android32", "Android64", "Linux64"], + "aliases": [ + "Delphi 13", + "BDS 37.0", + "CompilerVersion 37.0" + ], + "notes": [ + "RAD Studio 13 unifies internal version numbers to 37 (registry, RTL, packages)." + ] + } + ] + } + ] +} diff --git a/schemas/1.1.0/delphi-compiler-versions.schema.json b/schemas/1.1.0/delphi-compiler-versions.schema.json new file mode 100644 index 0000000..383c7f5 --- /dev/null +++ b/schemas/1.1.0/delphi-compiler-versions.schema.json @@ -0,0 +1,213 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://continuous-delphi.github.io/delphi-compiler-versions/schemas/1.1.0/delphi-compiler-versions.schema.json" + "title": "Continuous Delphi - Canonical List of Compiler Versions", + "type": "object", + "additionalProperties": false, + "required": [ + "schemaVersion", + "dataVersion", + "versions" + ], + "properties": { + "schemaVersion": { + "type": "string", + "description": "Schema version for this document (semantic versioning).", + "pattern": "^\\d+\\.\\d+\\.\\d+$", + "examples": [ + "1.1.0" + ] + }, + "dataVersion": { + "type": "string", + "description": "Dataset version for the contents of this file (semantic versioning). Independent of schemaVersion.", + "pattern": "^\\d+\\.\\d+\\.\\d+$", + "examples": [ + "1.1.0" + ] + }, + "meta": { + "type": "object", + "description": "Optional metadata about the dataset generation and scope.", + "additionalProperties": true, + "properties": { + "generatedUtcDate": { + "type": "string", + "description": "UTC date (YYYY-MM-DD) when this file was generated or last updated.", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "examples": [ + "2026-03-01" + ] + }, + "scope": { + "type": "object", + "description": "Scope rules for inclusion/exclusion.", + "additionalProperties": true + } + } + }, + "versions": { + "type": "array", + "description": "Ordered list of Delphi compiler version entries.", + "minItems": 1, + "items": { + "$ref": "#/$defs/versionEntry" + } + } + }, + "$defs": { + "buildSystem": { + "type": "string", + "enum": ["DCC", "MSBuild"], + "description": "A supported build system identifier." + }, + "platform": { + "type": "string", + "enum": [ + "Win32", + "Win64", + "macOS32", + "macOS64", + "macOSARM64", + "Linux64", + "iOS32", + "iOS64", + "iOSSimulator32", + "iOSSimulator64", + "Android32", + "Android64", + "WinARM64EC" + ], + "description": "A supported target platform identifier." + }, + "versionEntry": { + "type": "object", + "additionalProperties": false, + "required": [ + "verDefine", + "productName", + "aliases", + "compilerVersion", + "supportedBuildSystems", + "supportedPlatforms" + ], + "properties": { + "verDefine": { + "type": "string", + "description": "Canonical Delphi compiler conditional define symbol.", + "pattern": "^VER\\d+$", + "examples": [ + "VER370" + ] + }, + "compilerVersion": { + "type": "string", + "description": "CompilerVersion value preserving original notation (e.g., \"37.0\"). Stored as string to retain the decimal form exactly as Embarcadero defines it.", + "pattern": "^\\d+\\.\\d+$", + "examples": [ + "37.0" + ] + }, + "productName": { + "type": "string", + "description": "Official product name for this Delphi release.", + "minLength": 1, + "examples": [ + "Delphi 13 Florence" + ] + }, + "packageVersion": { + "type": [ + "string", + "null" + ], + "description": "Package version identifier.", + "examples": [ + "370" + ] + }, + "regKeyRelativePath": { + "type": [ + "string", + "null" + ], + "description": "Relative registry key path beneath HKCU or HKLM.", + "examples": [ + "\\Software\\Embarcadero\\BDS\\37.0" + ] + }, + "supportedBuildSystems": { + "type": "array", + "description": "Build systems supported by this version. DCC = direct command-line compiler invocation. MSBuild = .dproj-based builds via MSBuild. Represents the union of all support across all point releases within this version family.", + "minItems": 1, + "items": { + "$ref": "#/$defs/buildSystem" + }, + "examples": [ + ["DCC", "MSBuild"] + ] + }, + "supportedPlatforms": { + "type": "array", + "description": "Target platforms supported by this version family. Represents the union of all platforms supported across all point releases. See notes for any sub-version platform introductions.", + "minItems": 1, + "items": { + "$ref": "#/$defs/platform" + }, + "examples": [ + ["Win32", "Win64", "macOS64", "macOSARM64", "iOS64", "Android32", "Android64", "Linux64"] + ] + }, + "aliases": { + "type": "array", + "description": "Identifiers that resolve to this entry. The properties verDefine and productName are automatically used as aliases.", + "minItems": 1, + "items": { + "type": "string" + }, + "examples": [ + [ + "Delphi 13", + "Delphi13", + "BDS 37.0", + "CompilerVersion 37.0" + ] + ] + }, + "notes": { + "type": "array", + "description": "Optional notes for special cases, including sub-version platform introductions.", + "items": { + "type": "string" + }, + "default": [] + } + } + } + }, + "examples": [ + { + "schemaVersion": "1.1.0", + "dataVersion": "1.1.0", + "versions": [ + { + "verDefine": "VER370", + "compilerVersion": "37.0", + "productName": "Delphi 13 Florence", + "packageVersion": "370", + "regKeyRelativePath": "\\Software\\Embarcadero\\BDS\\37.0", + "supportedBuildSystems": ["DCC", "MSBuild"], + "supportedPlatforms": ["Win32", "Win64", "macOS64", "macOSARM64", "iOS64", "iOSSimulator64", "Android32", "Android64", "Linux64"], + "aliases": [ + "Delphi 13", + "BDS 37.0", + "CompilerVersion 37.0" + ], + "notes": [ + "RAD Studio 13 unifies internal version numbers to 37 (registry, RTL, packages)." + ] + } + ] + } + ] +} diff --git a/schemas/delphi-compiler-versions.schema.json b/schemas/delphi-compiler-versions.schema.json index 1d2f0e3..acc056f 100644 --- a/schemas/delphi-compiler-versions.schema.json +++ b/schemas/delphi-compiler-versions.schema.json @@ -15,7 +15,7 @@ "description": "Schema version for this document (semantic versioning).", "pattern": "^\\d+\\.\\d+\\.\\d+$", "examples": [ - "1.0.0" + "1.1.0" ] }, "dataVersion": { @@ -23,7 +23,7 @@ "description": "Dataset version for the contents of this file (semantic versioning). Independent of schemaVersion.", "pattern": "^\\d+\\.\\d+\\.\\d+$", "examples": [ - "0.3.0" + "1.1.0" ] }, "meta": { @@ -75,7 +75,8 @@ "iOSSimulator32", "iOSSimulator64", "Android32", - "Android64" + "Android64", + "WinARM64EC" ], "description": "A supported target platform identifier." }, @@ -186,8 +187,8 @@ }, "examples": [ { - "schemaVersion": "1.0.0", - "dataVersion": "0.3.0", + "schemaVersion": "1.1.0", + "dataVersion": "1.1.0", "versions": [ { "verDefine": "VER370", diff --git a/tools/generate-platform-support-md.ps1 b/tools/generate-platform-support-md.ps1 index fc8d2e9..4000cfe 100644 --- a/tools/generate-platform-support-md.ps1 +++ b/tools/generate-platform-support-md.ps1 @@ -84,7 +84,7 @@ $versionCount = $versions.Count # --------------------------------------------------------------------------- $platformOrder = @( - 'Win32', 'Win64', + 'Win32', 'Win64', 'WinARM64EC', 'macOS32', 'macOS64', 'macOSARM64', 'iOS32', 'iOSSimulator32', 'iOS64', 'iOSSimulator64', @@ -162,12 +162,10 @@ function Get-Cell([string]$platform, [int]$displayIndex) { $sb = [System.Text.StringBuilder]::new() function Emit([string]$line = '') { [void]$sb.AppendLine($line) } -$genDate = if ($data.meta -and $data.meta.generatedUtcDate) { $data.meta.generatedUtcDate } else { '' } $dataVersion = $data.dataVersion $schemaVersion = $data.schemaVersion Emit '' -Emit "" Emit '' Emit '# Platform Support by Delphi Version' Emit ''