feat(tools): Added cmake and ninja arm binaries

Closes https://github.com/espressif/esp-idf/issues/18272
This commit is contained in:
Marek Fiala
2026-02-25 12:52:34 +01:00
committed by BOT
parent d13bbd4b2b
commit b4fd738389
3 changed files with 32 additions and 4 deletions
+7 -1
View File
@@ -202,6 +202,7 @@ PYTHON_PLATFORM = f'{platform.system()}-{platform.machine()}'
# Identifiers used in tools.json for different platforms.
PLATFORM_WIN32 = 'win32'
PLATFORM_WIN64 = 'win64'
PLATFORM_WIN_ARM64 = 'win-arm64'
PLATFORM_MACOS = 'macos'
PLATFORM_MACOS_ARM64 = 'macos-arm64'
PLATFORM_LINUX32 = 'linux-i686'
@@ -232,7 +233,8 @@ class Platforms:
'Windows-x86_64': PLATFORM_WIN64,
'Windows-AMD64': PLATFORM_WIN64,
'x86_64-w64-mingw32': PLATFORM_WIN64,
'Windows-ARM64': PLATFORM_WIN64,
PLATFORM_WIN_ARM64: PLATFORM_WIN_ARM64,
'Windows-ARM64': PLATFORM_WIN_ARM64,
# macOS
PLATFORM_MACOS: PLATFORM_MACOS,
'osx': PLATFORM_MACOS,
@@ -773,11 +775,15 @@ class IDFToolVersion:
def get_download_for_platform(self, platform_name: str | None) -> IDFToolDownload | None:
"""
Get download for given platform if usable download already exists.
On win-arm64, falls back to win64 when no native build is available.
"""
try:
platform_name = Platforms.get(platform_name)
if platform_name in self.downloads.keys():
return self.downloads[platform_name]
# On Windows ARM64, use win64 (x86_64) build when no native win-arm64 exists
if platform_name == PLATFORM_WIN_ARM64 and PLATFORM_WIN64 in self.downloads:
return self.downloads[PLATFORM_WIN64]
# exception can be omitted, as not detected platform is handled without err message
except ValueError:
pass
+21 -2
View File
@@ -538,7 +538,8 @@
"install": "always",
"platforms": [
"win32",
"win64"
"win64",
"win-arm64"
]
},
{
@@ -598,6 +599,11 @@
},
"name": "4.0.3",
"status": "recommended",
"win-arm64": {
"sha256": "86ccd6485bbd4bb41a1a858db397be5bca5e0de96858bf8dbba7a64407bd6c00",
"size": 46495761,
"url": "https://github.com/Kitware/CMake/releases/download/v4.0.3/cmake-4.0.3-windows-arm64.zip"
},
"win32": {
"sha256": "b59a31dfbfa376a4aaea9ff560ff2b29f78ee5f9fb15447fc71ae7bf9fea9379",
"size": 47717299,
@@ -735,7 +741,8 @@
"install": "always",
"platforms": [
"win32",
"win64"
"win64",
"win-arm64"
]
}
],
@@ -755,6 +762,12 @@
"size": 123084,
"url": "https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-linux.zip"
},
"linux-arm64": {
"rename_dist": "ninja-linux-arm64-v1.12.1.zip",
"sha256": "5c25c6570b0155e95fce5918cb95f1ad9870df5768653afe128db822301a05a1",
"size": 121787,
"url": "https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-linux-aarch64.zip"
},
"macos": {
"rename_dist": "ninja-mac-v1.12.1.zip",
"sha256": "89a287444b5b3e98f88a945afa50ce937b8ffd1dcc59c555ad9b1baf855298c9",
@@ -769,6 +782,12 @@
},
"name": "1.12.1",
"status": "recommended",
"win-arm64": {
"rename_dist": "ninja-win-arm64-v1.12.1.zip",
"sha256": "79c96a50e0deafec212cfa85aa57c6b74003f52d9d1673ddcd1eab1c958c5900",
"size": 254317,
"url": "https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-winarm64.zip"
},
"win64": {
"rename_dist": "ninja-win-v1.12.1.zip",
"sha256": "f550fec705b6d6ff58f2db3c374c2277a37691678d6aba463adcbb129108467a",
+4 -1
View File
@@ -174,6 +174,9 @@
"win64": {
"$ref": "#/definitions/platformDownloadInfo"
},
"win-arm64": {
"$ref": "#/definitions/platformDownloadInfo"
},
"any": {
"$ref": "#/definitions/platformDownloadInfo"
}
@@ -222,7 +225,7 @@
"type": "array",
"items": {
"type": "string",
"enum": ["linux-i686", "linux-amd64", "linux-armel", "linux-armhf", "linux-arm64", "macos", "macos-arm64", "win32", "win64"]
"enum": ["linux-i686", "linux-amd64", "linux-armel", "linux-armhf", "linux-arm64", "macos", "macos-arm64", "win32", "win64", "win-arm64"]
}
},
"export_paths": {