Add OS suffix support for all tool properties (#1761)
We had specific hardcoded support for OS-specific URLs. This change
makes that generic and allows `_windows` / `_linux` / `_mac` suffixes to
work with any key.
This change is really a no-op that makes way to using a windows specific
activated_path for now (allowing us to use the upstream windows node
archive, rather than re-packaging/hacking it in
(scripts/update_node.py). See #1760.
Also, remove support for `os: "all"`.. this is not used and doesn't seem
useful (since you can just omit it).
diff --git a/emsdk.py b/emsdk.py
index 436f701..7ced946 100644
--- a/emsdk.py
+++ b/emsdk.py
@@ -174,15 +174,24 @@
KEEP_DOWNLOADS = get_env_boolean('EMSDK_KEEP_DOWNLOADS')
-def os_name():
+def os_name_short():
if WINDOWS:
return 'win'
elif LINUX:
return 'linux'
elif MACOS:
return 'mac'
- else:
- raise Exception('unknown OS')
+ assert False, 'unknown OS'
+
+
+def os_name():
+ if WINDOWS:
+ return 'windows'
+ if LINUX:
+ return 'linux'
+ if MACOS:
+ return 'macos'
+ assert False, 'unknown OS'
def debug_print(msg):
@@ -1090,7 +1099,7 @@
debug_print(f'build_llvm({tool})')
llvm_root = tool.installation_path()
llvm_src_root = os.path.join(llvm_root, 'src')
- success = git_clone_checkout_and_pull(tool.download_url(), llvm_src_root, tool.git_branch)
+ success = git_clone_checkout_and_pull(tool.url, llvm_src_root, tool.git_branch)
if not success:
return False
@@ -1150,7 +1159,7 @@
debug_print(f'build_ninja({tool})')
root = os.path.normpath(tool.installation_path())
src_root = os.path.join(root, 'src')
- success = git_clone_checkout_and_pull(tool.download_url(), src_root, tool.git_branch)
+ success = git_clone_checkout_and_pull(tool.url, src_root, tool.git_branch)
if not success:
return False
@@ -1185,7 +1194,7 @@
debug_print(f'build_ccache({tool})')
root = os.path.normpath(tool.installation_path())
src_root = os.path.join(root, 'src')
- success = git_clone_checkout_and_pull(tool.download_url(), src_root, tool.git_branch)
+ success = git_clone_checkout_and_pull(tool.url, src_root, tool.git_branch)
if not success:
return False
@@ -1827,18 +1836,29 @@
emscripten_releases_hash = None
git_branch = None
url = None
- macos_url = None
- linux_url = None
- windows_url = None
def __init__(self, data):
self.uses = []
# Convert the dictionary representation of the tool in 'data' to members of
- # this class for convenience.
+ # this class. Base attributes are assigned first, then host OS-matching suffixed
+ # attributes (e.g. url_windows, activated_path_windows) are applied on top as overrides.
+ # Foreign OS keys are ignored.
+ os_overrides = {}
+ all_os_names = {'windows', 'macos', 'linux'}
+
for key, value in data.items():
+ if '_' in key:
+ prefix, suffix = key.rsplit('_', 1)
+ if suffix in all_os_names:
+ if suffix == os_name():
+ os_overrides[prefix] = value
+ continue
setattr(self, key, value)
+ for prefix, value in os_overrides.items():
+ setattr(self, prefix, value)
+
# Cache the name ID of this Tool (these are read very often)
self.name = self.id
if self.version:
@@ -1939,24 +1959,8 @@
return False
if self.os:
- assert self.os in {'all', 'linux', 'win', 'macos'}
- if self.os == 'all':
- return True
- if (WINDOWS and self.os == 'win') or (LINUX and self.os == 'linux') or (MACOS and self.os == 'macos'):
- return True
- return False
-
- if not any((self.macos_url, self.windows_url, self.linux_url)):
- return True
-
- if MACOS and self.macos_url:
- return True
-
- if LINUX and self.linux_url:
- return True
-
- if WINDOWS and self.windows_url:
- return True
+ assert self.os in {'linux', 'windows', 'macos'}
+ return self.os == os_name()
return self.url is not None
@@ -1990,7 +1994,7 @@
if not tool.is_installed():
return False
- if self.download_url() is None:
+ if self.url is None:
debug_print(f'{self} has no files to download, so is installed by default.')
return True
@@ -2072,15 +2076,6 @@
return "this tool is only provided for 64-bit OSes"
return True
- def download_url(self):
- if WINDOWS and self.windows_url:
- return self.windows_url
- elif MACOS and self.macos_url:
- return self.macos_url
- elif LINUX and self.linux_url:
- return self.linux_url
- return self.url
-
def install(self):
"""Returns True if the Tool was installed of False if was skipped due to
already being installed.
@@ -2130,7 +2125,6 @@
return False
print(f"Installing tool '{self}'..")
- url = self.download_url()
custom_install_scripts = {
'build_llvm': build_llvm,
@@ -2142,12 +2136,12 @@
if self.custom_install_script in custom_install_scripts:
success = custom_install_scripts[self.custom_install_script](self)
elif self.git_branch:
- success = git_clone_checkout_and_pull(url, self.installation_path(), self.git_branch, getattr(self, 'remote_name', 'origin'))
- elif url.endswith(ARCHIVE_SUFFIXES):
- success = download_and_extract(url, self.installation_path(),
+ success = git_clone_checkout_and_pull(self.url, self.installation_path(), self.git_branch, getattr(self, 'remote_name', 'origin'))
+ elif self.url.endswith(ARCHIVE_SUFFIXES):
+ success = download_and_extract(self.url, self.installation_path(),
filename_prefix=getattr(self, 'download_prefix', ''))
else:
- assert False, 'unhandled url type: ' + url
+ assert False, 'unhandled url type: ' + self.url
if not success:
exit_with_error("installation failed!")
@@ -2190,9 +2184,8 @@
def cleanup_temp_install_files(self):
if KEEP_DOWNLOADS:
return
- url = self.download_url()
- if url.endswith(ARCHIVE_SUFFIXES):
- download_target = get_download_target(url, download_dir, getattr(self, 'download_prefix', ''))
+ if self.url.endswith(ARCHIVE_SUFFIXES):
+ download_target = get_download_target(self.url, download_dir, getattr(self, 'download_prefix', ''))
debug_print(f"Deleting temporary download: {download_target}")
rmfile(download_target)
@@ -2342,7 +2335,7 @@
def make_url(ext):
return emscripten_releases_download_url_template % (
- os_name(),
+ os_name_short(),
release,
arch,
ext,
diff --git a/emsdk_manifest.json b/emsdk_manifest.json
index b1f880f..af3ad3c 100644
--- a/emsdk_manifest.json
+++ b/emsdk_manifest.json
@@ -34,9 +34,9 @@
"version": "%releases-tag%",
"bitness": 64,
"arch": "x86_64",
- "linux_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/%releases-tag%/wasm-binaries.tar.xz",
- "macos_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/%releases-tag%/wasm-binaries.tar.xz",
- "windows_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/win/%releases-tag%/wasm-binaries.zip",
+ "url_linux": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/%releases-tag%/wasm-binaries.tar.xz",
+ "url_macos": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/%releases-tag%/wasm-binaries.tar.xz",
+ "url_windows": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/win/%releases-tag%/wasm-binaries.zip",
"download_prefix": "%releases-tag%-",
"install_path": "upstream",
"activated_path": "%installation_dir%/emscripten",
@@ -48,8 +48,8 @@
"version": "%releases-tag%",
"bitness": 64,
"arch": "arm64",
- "macos_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/%releases-tag%/wasm-binaries-arm64.tar.xz",
- "linux_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/%releases-tag%/wasm-binaries-arm64.tar.xz",
+ "url_macos": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/%releases-tag%/wasm-binaries-arm64.tar.xz",
+ "url_linux": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/%releases-tag%/wasm-binaries-arm64.tar.xz",
"download_prefix": "%releases-tag%-",
"install_path": "upstream",
"activated_path": "%installation_dir%/emscripten",
@@ -62,7 +62,7 @@
"version": "18.20.3",
"bitness": 32,
"arch": "x86",
- "windows_url": "node-v18.20.3-win-x86.zip",
+ "url_windows": "node-v18.20.3-win-x86.zip",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -73,7 +73,7 @@
"version": "18.20.3",
"arch": "arm",
"bitness": 32,
- "linux_url": "node-v18.20.3-linux-armv7l.tar.xz",
+ "url_linux": "node-v18.20.3-linux-armv7l.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -84,9 +84,9 @@
"version": "18.20.3",
"bitness": 64,
"arch": "x86_64",
- "macos_url": "node-v18.20.3-darwin-x64.tar.gz",
- "windows_url": "node-v18.20.3-win-x64.zip",
- "linux_url": "node-v18.20.3-linux-x64.tar.xz",
+ "url_macos": "node-v18.20.3-darwin-x64.tar.gz",
+ "url_windows": "node-v18.20.3-win-x64.zip",
+ "url_linux": "node-v18.20.3-linux-x64.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -97,8 +97,8 @@
"version": "18.20.3",
"arch": "arm64",
"bitness": 64,
- "macos_url": "node-v18.20.3-darwin-arm64.tar.gz",
- "linux_url": "node-v18.20.3-linux-arm64.tar.xz",
+ "url_macos": "node-v18.20.3-darwin-arm64.tar.gz",
+ "url_linux": "node-v18.20.3-linux-arm64.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -111,7 +111,7 @@
"version": "20.18.0",
"bitness": 32,
"arch": "x86",
- "windows_url": "node-v20.18.0-win-x86.zip",
+ "url_windows": "node-v20.18.0-win-x86.zip",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -122,7 +122,7 @@
"version": "20.18.0",
"arch": "arm",
"bitness": 32,
- "linux_url": "node-v20.18.0-linux-armv7l.tar.xz",
+ "url_linux": "node-v20.18.0-linux-armv7l.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -133,9 +133,9 @@
"version": "20.18.0",
"bitness": 64,
"arch": "x86_64",
- "macos_url": "node-v20.18.0-darwin-x64.tar.gz",
- "windows_url": "node-v20.18.0-win-x64.zip",
- "linux_url": "node-v20.18.0-linux-x64.tar.xz",
+ "url_macos": "node-v20.18.0-darwin-x64.tar.gz",
+ "url_windows": "node-v20.18.0-win-x64.zip",
+ "url_linux": "node-v20.18.0-linux-x64.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -146,9 +146,9 @@
"version": "20.18.0",
"arch": "arm64",
"bitness": 64,
- "windows_url": "node-v20.18.0-win-arm64.zip",
- "macos_url": "node-v20.18.0-darwin-arm64.tar.gz",
- "linux_url": "node-v20.18.0-linux-arm64.tar.xz",
+ "url_windows": "node-v20.18.0-win-arm64.zip",
+ "url_macos": "node-v20.18.0-darwin-arm64.tar.gz",
+ "url_linux": "node-v20.18.0-linux-arm64.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -161,7 +161,7 @@
"version": "22.16.0",
"bitness": 32,
"arch": "x86",
- "windows_url": "node-v22.16.0-win-x86.zip",
+ "url_windows": "node-v22.16.0-win-x86.zip",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -172,7 +172,7 @@
"version": "22.16.0",
"arch": "arm",
"bitness": 32,
- "linux_url": "node-v22.16.0-linux-armv7l.tar.xz",
+ "url_linux": "node-v22.16.0-linux-armv7l.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -183,9 +183,9 @@
"version": "22.16.0",
"bitness": 64,
"arch": "x86_64",
- "windows_url": "node-v22.16.0-win-x64.zip",
- "macos_url": "node-v22.16.0-darwin-x64.tar.gz",
- "linux_url": "node-v22.16.0-linux-x64.tar.xz",
+ "url_windows": "node-v22.16.0-win-x64.zip",
+ "url_macos": "node-v22.16.0-darwin-x64.tar.gz",
+ "url_linux": "node-v22.16.0-linux-x64.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -196,9 +196,9 @@
"version": "22.16.0",
"arch": "arm64",
"bitness": 64,
- "windows_url": "node-v22.16.0-win-arm64.zip",
- "macos_url": "node-v22.16.0-darwin-arm64.tar.gz",
- "linux_url": "node-v22.16.0-linux-arm64.tar.xz",
+ "url_windows": "node-v22.16.0-win-arm64.zip",
+ "url_macos": "node-v22.16.0-darwin-arm64.tar.gz",
+ "url_linux": "node-v22.16.0-linux-arm64.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -209,7 +209,7 @@
"version": "22.16.0",
"arch": "x86_64",
"bitness": 64,
- "linux_url": "https://nodejs.org/download/release/v22.16.0/node-v22.16.0-linux-s390x.tar.gz",
+ "url_linux": "https://nodejs.org/download/release/v22.16.0/node-v22.16.0-linux-s390x.tar.gz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS_TEST=['qemu-s390x', '-L', '/usr/s390x-linux-gnu/', '%installation_dir%/bin/node']"
@@ -220,9 +220,9 @@
"version": "24.7.0",
"bitness": 64,
"arch": "x86_64",
- "windows_url": "node-v24.7.0-win-x64.zip",
- "macos_url": "node-v24.7.0-darwin-x64.tar.gz",
- "linux_url": "node-v24.7.0-linux-x64.tar.xz",
+ "url_windows": "node-v24.7.0-win-x64.zip",
+ "url_macos": "node-v24.7.0-darwin-x64.tar.gz",
+ "url_linux": "node-v24.7.0-linux-x64.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -233,9 +233,9 @@
"version": "24.7.0",
"arch": "arm64",
"bitness": 64,
- "windows_url": "node-v24.7.0-win-arm64.zip",
- "macos_url": "node-v24.7.0-darwin-arm64.tar.gz",
- "linux_url": "node-v24.7.0-linux-arm64.tar.xz",
+ "url_windows": "node-v24.7.0-win-arm64.zip",
+ "url_macos": "node-v24.7.0-darwin-arm64.tar.gz",
+ "url_linux": "node-v24.7.0-linux-arm64.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
@@ -246,7 +246,7 @@
"version": "24.7.0",
"arch": "x86_64",
"bitness": 64,
- "linux_url": "node-v24.7.0-linux-s390x.tar.gz",
+ "url_linux": "node-v24.7.0-linux-s390x.tar.gz",
"activated_path": "%installation_dir%/bin",
"activated_path_skip": "node",
"activated_cfg": "NODE_JS_TEST=['qemu-s390x', '-L', '/usr/s390x-linux-gnu/', '%installation_dir%/bin/node']"
@@ -274,8 +274,8 @@
"arch": "x86_64",
"activated_cfg": "EMSDK_CMAKE='%installation_dir%/bin/cmake%.exe%'",
"activated_path": "%installation_dir%/bin",
- "windows_url": "https://github.com/Kitware/CMake/releases/download/v4.2.0-rc3/cmake-4.2.0-rc3-windows-x86_64.zip",
- "linux_url": "https://github.com/Kitware/CMake/releases/download/v4.2.0-rc3/cmake-4.2.0-rc3-linux-x86_64.tar.gz"
+ "url_windows": "https://github.com/Kitware/CMake/releases/download/v4.2.0-rc3/cmake-4.2.0-rc3-windows-x86_64.zip",
+ "url_linux": "https://github.com/Kitware/CMake/releases/download/v4.2.0-rc3/cmake-4.2.0-rc3-linux-x86_64.tar.gz"
},
{
"id": "cmake",
@@ -284,7 +284,7 @@
"arch": "x86_64",
"activated_cfg": "EMSDK_CMAKE='%installation_dir%/CMake.app/Contents/bin/cmake%.exe%'",
"activated_path": "%installation_dir%/CMake.app/Contents/bin",
- "macos_url": "https://github.com/Kitware/CMake/releases/download/v4.2.0-rc3/cmake-4.2.0-rc3-macos-universal.tar.gz"
+ "url_macos": "https://github.com/Kitware/CMake/releases/download/v4.2.0-rc3/cmake-4.2.0-rc3-macos-universal.tar.gz"
},
{
"id": "cmake",
@@ -293,8 +293,8 @@
"arch": "arm64",
"activated_cfg": "EMSDK_CMAKE='%installation_dir%/bin/cmake%.exe%'",
"activated_path": "%installation_dir%/bin",
- "windows_url": "https://github.com/Kitware/CMake/releases/download/v4.2.0-rc3/cmake-4.2.0-rc3-windows-arm64.zip",
- "linux_url": "https://github.com/Kitware/CMake/releases/download/v4.2.0-rc3/cmake-4.2.0-rc3-linux-aarch64.tar.gz"
+ "url_windows": "https://github.com/Kitware/CMake/releases/download/v4.2.0-rc3/cmake-4.2.0-rc3-windows-arm64.zip",
+ "url_linux": "https://github.com/Kitware/CMake/releases/download/v4.2.0-rc3/cmake-4.2.0-rc3-linux-aarch64.tar.gz"
},
{
"id": "cmake",
@@ -303,7 +303,7 @@
"arch": "arm64",
"activated_cfg": "EMSDK_CMAKE='%installation_dir%/CMake.app/Contents/bin/cmake%.exe%'",
"activated_path": "%installation_dir%/CMake.app/Contents/bin",
- "macos_url": "https://github.com/Kitware/CMake/releases/download/v4.2.0-rc3/cmake-4.2.0-rc3-macos-universal.tar.gz"
+ "url_macos": "https://github.com/Kitware/CMake/releases/download/v4.2.0-rc3/cmake-4.2.0-rc3-macos-universal.tar.gz"
},
{
@@ -311,7 +311,7 @@
"version": "3.9.2-nuget",
"bitness": 64,
"arch": "x86_64",
- "windows_url": "python-3.9.2-4-amd64+pywin32.zip",
+ "url_windows": "python-3.9.2-4-amd64+pywin32.zip",
"activated_cfg": "PYTHON='%installation_dir%/python.exe'",
"activated_env": "EMSDK_PYTHON=%installation_dir%/python.exe"
},
@@ -320,7 +320,7 @@
"version": "3.9.2",
"bitness": 64,
"arch": "x86_64",
- "windows_url": "python-3.9.2-1-embed-amd64+pywin32.zip",
+ "url_windows": "python-3.9.2-1-embed-amd64+pywin32.zip",
"activated_cfg": "PYTHON='%installation_dir%/python.exe'",
"activated_env": "EMSDK_PYTHON=%installation_dir%/python.exe"
},
@@ -329,7 +329,7 @@
"version": "3.9.2",
"bitness": 64,
"arch": "x86_64",
- "macos_url": "python-3.9.2-3-macos-x86_64.tar.gz",
+ "url_macos": "python-3.9.2-3-macos-x86_64.tar.gz",
"activated_cfg": "PYTHON='%installation_dir%/bin/python3'",
"activated_env": "EMSDK_PYTHON=%installation_dir%/bin/python3;SSL_CERT_FILE=%installation_dir%/lib/python3.9/site-packages/certifi/cacert.pem"
},
@@ -338,7 +338,7 @@
"version": "3.9.2",
"bitness": 64,
"arch": "arm64",
- "macos_url": "python-3.9.2-1-macos-arm64.tar.gz",
+ "url_macos": "python-3.9.2-1-macos-arm64.tar.gz",
"activated_cfg": "PYTHON='%installation_dir%/bin/python3'",
"activated_env": "EMSDK_PYTHON=%installation_dir%/bin/python3;SSL_CERT_FILE=%installation_dir%/lib/python3.9/site-packages/certifi/cacert.pem"
},
@@ -348,7 +348,7 @@
"version": "3.13.3",
"bitness": 64,
"arch": "x86_64",
- "windows_url": "python-3.13.3-0-win-amd64.zip",
+ "url_windows": "python-3.13.3-0-win-amd64.zip",
"activated_cfg": "PYTHON='%installation_dir%/python.exe'",
"activated_env": "EMSDK_PYTHON=%installation_dir%/python.exe"
},
@@ -357,7 +357,7 @@
"version": "3.13.3",
"bitness": 64,
"arch": "arm64",
- "windows_url": "python-3.13.3-0-win-arm64.zip",
+ "url_windows": "python-3.13.3-0-win-arm64.zip",
"activated_cfg": "PYTHON='%installation_dir%/python.exe'",
"activated_env": "EMSDK_PYTHON=%installation_dir%/python.exe"
},
@@ -366,7 +366,7 @@
"version": "3.13.3",
"bitness": 64,
"arch": "x86_64",
- "macos_url": "python-3.13.3-0-macos-x86_64.tar.gz",
+ "url_macos": "python-3.13.3-0-macos-x86_64.tar.gz",
"activated_cfg": "PYTHON='%installation_dir%/bin/python3'",
"activated_env": "EMSDK_PYTHON=%installation_dir%/bin/python3;SSL_CERT_FILE=%installation_dir%/lib/python3.13/site-packages/certifi/cacert.pem"
},
@@ -375,7 +375,7 @@
"version": "3.13.3",
"bitness": 64,
"arch": "arm64",
- "macos_url": "python-3.13.3-0-macos-arm64.tar.gz",
+ "url_macos": "python-3.13.3-0-macos-arm64.tar.gz",
"activated_cfg": "PYTHON='%installation_dir%/bin/python3'",
"activated_env": "EMSDK_PYTHON=%installation_dir%/bin/python3;SSL_CERT_FILE=%installation_dir%/lib/python3.13/site-packages/certifi/cacert.pem"
},
@@ -498,7 +498,7 @@
"version": "tag-%tag%",
"bitness": 32,
"append_bitness": false,
- "windows_url": "https://github.com/emscripten-core/emscripten/archive/%tag%.zip",
+ "url_windows": "https://github.com/emscripten-core/emscripten/archive/%tag%.zip",
"url": "https://github.com/emscripten-core/emscripten/archive/%tag%.tar.gz",
"download_prefix": "emscripten-e",
"activated_cfg": "EMSCRIPTEN_ROOT='%installation_dir%'",
@@ -511,7 +511,7 @@
"version": "tag-%tag%",
"bitness": 64,
"append_bitness": false,
- "windows_url": "https://github.com/emscripten-core/emscripten/archive/%tag%.zip",
+ "url_windows": "https://github.com/emscripten-core/emscripten/archive/%tag%.zip",
"url": "https://github.com/emscripten-core/emscripten/archive/%tag%.tar.gz",
"activated_cfg": "EMSCRIPTEN_ROOT='%installation_dir%'",
"activated_path": "%installation_dir%",
@@ -521,7 +521,7 @@
{
"id": "emscripten",
"version": "%precompiled_tag%",
- "windows_url": "https://github.com/emscripten-core/emscripten/archive/%precompiled_tag%.zip",
+ "url_windows": "https://github.com/emscripten-core/emscripten/archive/%precompiled_tag%.zip",
"url": "https://github.com/emscripten-core/emscripten/archive/%precompiled_tag%.tar.gz",
"activated_cfg": "EMSCRIPTEN_ROOT='%installation_dir%'",
"activated_path": "%installation_dir%",
@@ -532,7 +532,7 @@
"version": "tag-%binaryen_tag%",
"bitness": 32,
"append_bitness": false,
- "windows_url": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.zip",
+ "url_windows": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.zip",
"url": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.tar.gz",
"download_prefix": "binaryen-e",
"activated_cfg": "BINARYEN_ROOT='%installation_dir%%generator_prefix%_64bit_binaryen'",
@@ -548,7 +548,7 @@
"version": "tag-%binaryen_tag%",
"bitness": 64,
"append_bitness": false,
- "windows_url": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.zip",
+ "url_windows": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.zip",
"url": "https://github.com/WebAssembly/binaryen/archive/%binaryen_tag%.tar.gz",
"download_prefix": "binaryen-e",
"activated_cfg": "BINARYEN_ROOT='%installation_dir%%generator_prefix%_64bit_binaryen'",
@@ -619,7 +619,7 @@
"id": "mingw",
"version": "7.1.0",
"bitness": 64,
- "windows_url": "mingw_7.1.0_64bit.zip",
+ "url_windows": "mingw_7.1.0_64bit.zip",
"activated_cfg": "MINGW_ROOT='%installation_dir%'",
"activated_path": "%installation_dir%/bin"
},
@@ -627,9 +627,9 @@
"id": "ninja",
"version": "1.13.2",
"bitness": 64,
- "windows_url": "ninja-1.13.2-win-x64.zip",
- "linux_url": "ninja-1.13.2-linux-x64.zip",
- "macos_url": "ninja-1.13.2-mac.zip",
+ "url_windows": "ninja-1.13.2-win-x64.zip",
+ "url_linux": "ninja-1.13.2-linux-x64.zip",
+ "url_macos": "ninja-1.13.2-mac.zip",
"arch": "x86_64",
"activated_cfg": "NINJA_ROOT='%installation_dir%'",
"activated_path": "%installation_dir%"
@@ -638,7 +638,7 @@
"id": "ninja",
"version": "1.13.2",
"bitness": 64,
- "macos_url": "ninja-1.13.2-mac.zip",
+ "url_macos": "ninja-1.13.2-mac.zip",
"os": "macos",
"arch": "arm64",
"activated_cfg": "NINJA_ROOT='%installation_dir%'",
@@ -673,7 +673,7 @@
"version": "main",
"bitness": 64,
"uses": ["python-3.13.3-64bit", "llvm-git-main-64bit", "node-22.16.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"],
- "os": "win"
+ "os": "windows"
},
{
"version": "main",
@@ -720,7 +720,7 @@
"version": "releases-%releases-tag%",
"bitness": 64,
"uses": ["node-22.16.0-64bit", "python-3.13.3-64bit", "releases-%releases-tag%-64bit"],
- "os": "win",
+ "os": "windows",
"custom_install_script": "sdk_post_install"
}
]