Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .circleci/config.yml +388 -0
- .dockerignore +21 -0
- .flake8 +24 -0
- .gitattributes +220 -0
- .github/workflows/create-release.yml +40 -0
- .github/workflows/tag-release.yml +78 -0
- .gitignore +36 -0
- LICENSE +27 -0
- README.md +246 -0
- SECURITY.md +16 -0
- bazel/.bazelrc +1 -0
- bazel/.gitignore +1 -0
- bazel/BUILD +19 -0
- bazel/MODULE.bazel +40 -0
- bazel/MODULE.bazel.lock +698 -0
- bazel/README.md +89 -0
- bazel/bazelrc +2 -0
- bazel/emscripten_build_file.bzl +93 -0
- bazel/emscripten_cache.bzl +113 -0
- bazel/emscripten_deps.bzl +99 -0
- bazel/emscripten_toolchain/BUILD.bazel +69 -0
- bazel/emscripten_toolchain/default_config +16 -0
- bazel/emscripten_toolchain/emar.bat +5 -0
- bazel/emscripten_toolchain/emar.sh +5 -0
- bazel/emscripten_toolchain/emcc.bat +5 -0
- bazel/emscripten_toolchain/emcc.sh +5 -0
- bazel/emscripten_toolchain/emcc_link.bat +5 -0
- bazel/emscripten_toolchain/emcc_link.sh +5 -0
- bazel/emscripten_toolchain/env.bat +7 -0
- bazel/emscripten_toolchain/env.sh +6 -0
- bazel/emscripten_toolchain/link_wrapper.py +164 -0
- bazel/emscripten_toolchain/platform_info.bzl +22 -0
- bazel/emscripten_toolchain/toolchain.bzl +1194 -0
- bazel/emscripten_toolchain/wasm_binary.py +56 -0
- bazel/emscripten_toolchain/wasm_cc_binary.bzl +221 -0
- bazel/emscripten_toolchain/wasm_rules.bzl +6 -0
- bazel/hello-world/BUILD +23 -0
- bazel/hello-world/hello-world-simd.cc +10 -0
- bazel/hello-world/hello-world.cc +6 -0
- bazel/remote_emscripten_repository.bzl +148 -0
- bazel/revisions.bzl +949 -0
- bazel/test_external/.bazelrc +1 -0
- bazel/test_external/.gitignore +4 -0
- bazel/test_external/BUILD +66 -0
- bazel/test_external/MODULE.bazel +6 -0
- bazel/test_external/MODULE.bazel.lock +902 -0
- bazel/test_external/hello-embind-externs.js +2 -0
- bazel/test_external/hello-embind-interface.js +3 -0
- bazel/test_external/hello-embind.cc +16 -0
- bazel/test_external/hello-world.cc +6 -0
.circleci/config.yml
ADDED
|
@@ -0,0 +1,388 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version: 2.1
|
| 2 |
+
|
| 3 |
+
orbs:
|
| 4 |
+
win: circleci/windows@5.0
|
| 5 |
+
|
| 6 |
+
executors:
|
| 7 |
+
ubuntu:
|
| 8 |
+
docker:
|
| 9 |
+
- image: buildpack-deps:jammy
|
| 10 |
+
mac_arm64:
|
| 11 |
+
environment:
|
| 12 |
+
EMSDK_NOTTY: "1"
|
| 13 |
+
# Without this, any `brew install` command will result in self-update of
|
| 14 |
+
# brew itself which takes more than 4 minutes.
|
| 15 |
+
HOMEBREW_NO_AUTO_UPDATE: "1"
|
| 16 |
+
macos:
|
| 17 |
+
# Corresponds to macOS 13.2.1
|
| 18 |
+
# See https://circleci.com/docs/guides/execution-managed/using-macos/#supported-xcode-versions
|
| 19 |
+
xcode: "14.3.1"
|
| 20 |
+
resource_class: m4pro.medium
|
| 21 |
+
linux_arm64:
|
| 22 |
+
machine:
|
| 23 |
+
image: ubuntu-2004:2023.07.1
|
| 24 |
+
resource_class: arm.medium
|
| 25 |
+
|
| 26 |
+
commands:
|
| 27 |
+
setup-macos:
|
| 28 |
+
steps:
|
| 29 |
+
- checkout
|
| 30 |
+
- run:
|
| 31 |
+
name: Install CMake
|
| 32 |
+
command: brew install cmake
|
| 33 |
+
test-macos:
|
| 34 |
+
steps:
|
| 35 |
+
- run:
|
| 36 |
+
name: test.sh
|
| 37 |
+
command: test/test.sh
|
| 38 |
+
- run:
|
| 39 |
+
name: test.py
|
| 40 |
+
command: |
|
| 41 |
+
source emsdk_env.sh
|
| 42 |
+
test/test.py
|
| 43 |
+
setup-docker:
|
| 44 |
+
steps:
|
| 45 |
+
- run:
|
| 46 |
+
name: install docker
|
| 47 |
+
command: |
|
| 48 |
+
apt-get update -q
|
| 49 |
+
apt-get install -q -y ca-certificates curl gnupg lsb-release
|
| 50 |
+
mkdir -p /etc/apt/keyrings
|
| 51 |
+
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
| 52 |
+
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
| 53 |
+
apt-get update -q
|
| 54 |
+
apt-get install -q -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
|
| 55 |
+
test-bazel-linux:
|
| 56 |
+
steps:
|
| 57 |
+
- checkout
|
| 58 |
+
- run:
|
| 59 |
+
name: install bazelisk
|
| 60 |
+
command: |
|
| 61 |
+
wget https://github.com/bazelbuild/bazelisk/releases/download/v1.25.0/bazelisk-linux-amd64
|
| 62 |
+
chmod +x bazelisk-linux-amd64
|
| 63 |
+
mv bazelisk-linux-amd64 /usr/local/bin/bazel
|
| 64 |
+
- run: test/test_bazel.sh
|
| 65 |
+
test-bazel-mac:
|
| 66 |
+
steps:
|
| 67 |
+
- checkout
|
| 68 |
+
- run:
|
| 69 |
+
name: install bazelisk
|
| 70 |
+
command: |
|
| 71 |
+
brew install bazelisk
|
| 72 |
+
- run: test/test_bazel_mac.sh
|
| 73 |
+
test-bazel-windows:
|
| 74 |
+
steps:
|
| 75 |
+
- checkout
|
| 76 |
+
- run:
|
| 77 |
+
name: Download Bazelisk
|
| 78 |
+
shell: powershell.exe
|
| 79 |
+
command: |
|
| 80 |
+
$ProgressPreference = "SilentlyContinue"
|
| 81 |
+
Invoke-WebRequest -Uri https://github.com/bazelbuild/bazelisk/releases/download/v1.10.1/bazelisk-windows-amd64.exe -OutFile ( New-Item -Path "temp\bazel\bazel.exe" -Force )
|
| 82 |
+
- run:
|
| 83 |
+
name: Run Tests
|
| 84 |
+
shell: powershell.exe
|
| 85 |
+
command: |
|
| 86 |
+
$env:Path += ";C:\Python27amd64;$pwd\temp\bazel"
|
| 87 |
+
.\test\test_bazel.ps1
|
| 88 |
+
|
| 89 |
+
jobs:
|
| 90 |
+
lint:
|
| 91 |
+
executor: ubuntu
|
| 92 |
+
steps:
|
| 93 |
+
- checkout
|
| 94 |
+
- restore_cache:
|
| 95 |
+
keys:
|
| 96 |
+
- v1-lint-deps-{{ arch }}-{{ checksum "requirements-dev.txt" }}
|
| 97 |
+
- run:
|
| 98 |
+
name: install python deps
|
| 99 |
+
command: |
|
| 100 |
+
# Check if packages are already installed from cache
|
| 101 |
+
if python3 -m flake8 --version >/dev/null 2>&1 && \
|
| 102 |
+
python3 -m ruff --version >/dev/null 2>&1; then
|
| 103 |
+
echo "Packages already installed from cache, skipping pip install"
|
| 104 |
+
else
|
| 105 |
+
echo "Installing packages"
|
| 106 |
+
apt-get update -q
|
| 107 |
+
apt-get install -q -y python3-pip
|
| 108 |
+
python3 -m pip install --upgrade pip
|
| 109 |
+
python3 -m pip install -r requirements-dev.txt
|
| 110 |
+
fi
|
| 111 |
+
- save_cache:
|
| 112 |
+
key: v1-lint-deps-{{ arch }}-{{ checksum "requirements-dev.txt" }}
|
| 113 |
+
paths:
|
| 114 |
+
- ~/.cache/pip
|
| 115 |
+
- run:
|
| 116 |
+
name: python lint
|
| 117 |
+
command: |
|
| 118 |
+
python3 -m flake8 --show-source --statistics --extend-exclude=./scripts
|
| 119 |
+
python3 -m ruff check
|
| 120 |
+
test-linux:
|
| 121 |
+
executor: ubuntu
|
| 122 |
+
environment:
|
| 123 |
+
EMSDK_NOTTY: "1"
|
| 124 |
+
# This is needed because the old gcc-7 that is installed on debian/bionic
|
| 125 |
+
# generates warnings about unused variables when doing C++17
|
| 126 |
+
# destructuring:
|
| 127 |
+
# https://github.com/WebAssembly/binaryen/issues/4353
|
| 128 |
+
CXXFLAGS: "-Wno-unused-variable"
|
| 129 |
+
# I don't know why circleci VMs pretent to have 36 cores but its a lie.
|
| 130 |
+
EMSDK_NUM_CORES: "4"
|
| 131 |
+
steps:
|
| 132 |
+
- checkout
|
| 133 |
+
- run:
|
| 134 |
+
name: Install debian packages
|
| 135 |
+
command: apt-get update -q && apt-get install -q -y cmake build-essential openjdk-8-jre-headless ksh zsh
|
| 136 |
+
- run: test/test_node_path.sh
|
| 137 |
+
- run: test/test.sh
|
| 138 |
+
- run: test/test_source_env.sh
|
| 139 |
+
- run:
|
| 140 |
+
name: test.py
|
| 141 |
+
command: |
|
| 142 |
+
source emsdk_env.sh
|
| 143 |
+
test/test.py
|
| 144 |
+
test-linux-arm64:
|
| 145 |
+
executor: linux_arm64
|
| 146 |
+
steps:
|
| 147 |
+
- checkout
|
| 148 |
+
- run:
|
| 149 |
+
name: Install debian packages
|
| 150 |
+
command: sudo apt-get update -q && sudo apt-get install -q cmake build-essential openjdk-8-jre-headless
|
| 151 |
+
- run: test/test.sh
|
| 152 |
+
test-mac-arm64:
|
| 153 |
+
executor: mac_arm64
|
| 154 |
+
steps:
|
| 155 |
+
- setup-macos
|
| 156 |
+
- test-macos
|
| 157 |
+
test-windows:
|
| 158 |
+
executor:
|
| 159 |
+
name: win/server-2019
|
| 160 |
+
shell: bash.exe
|
| 161 |
+
environment:
|
| 162 |
+
PYTHONUNBUFFERED: "1"
|
| 163 |
+
EMSDK_NOTTY: "1"
|
| 164 |
+
working_directory: ~/project with spaces
|
| 165 |
+
steps:
|
| 166 |
+
- checkout
|
| 167 |
+
- run: pwd
|
| 168 |
+
- run: where python
|
| 169 |
+
- run: pip install pip-system-certs
|
| 170 |
+
- run:
|
| 171 |
+
name: Install packages
|
| 172 |
+
command: choco install -y cmake.portable ninja pkgconfiglite
|
| 173 |
+
|
| 174 |
+
- run:
|
| 175 |
+
name: Install latest
|
| 176 |
+
shell: cmd.exe
|
| 177 |
+
command: test\test.bat
|
| 178 |
+
|
| 179 |
+
- run:
|
| 180 |
+
name: test.py
|
| 181 |
+
command: |
|
| 182 |
+
source emsdk_env.sh
|
| 183 |
+
python test/test.py
|
| 184 |
+
|
| 185 |
+
- run:
|
| 186 |
+
name: flagless (process/shell) test
|
| 187 |
+
shell: powershell.exe
|
| 188 |
+
command: |
|
| 189 |
+
test/test_activation.ps1
|
| 190 |
+
|
| 191 |
+
- run:
|
| 192 |
+
name: --permanent test
|
| 193 |
+
shell: powershell.exe
|
| 194 |
+
command: |
|
| 195 |
+
$env:PERMANENT_FLAG="--permanent"
|
| 196 |
+
test/test_activation.ps1
|
| 197 |
+
|
| 198 |
+
- run:
|
| 199 |
+
name: --system test
|
| 200 |
+
shell: powershell.exe
|
| 201 |
+
command: |
|
| 202 |
+
$env:SYSTEM_FLAG="--system"
|
| 203 |
+
test/test_activation.ps1
|
| 204 |
+
|
| 205 |
+
- run:
|
| 206 |
+
name: Process/Shell PATH preservation test
|
| 207 |
+
shell: powershell.exe
|
| 208 |
+
command: |
|
| 209 |
+
test/test_path_preservation.ps1
|
| 210 |
+
|
| 211 |
+
- run:
|
| 212 |
+
name: User PATH preservation test
|
| 213 |
+
shell: powershell.exe
|
| 214 |
+
command: |
|
| 215 |
+
$env:PERMANENT_FLAG="--permanent"
|
| 216 |
+
test/test_path_preservation.ps1
|
| 217 |
+
|
| 218 |
+
- run:
|
| 219 |
+
name: System PATH preservation test
|
| 220 |
+
shell: powershell.exe
|
| 221 |
+
command: |
|
| 222 |
+
$env:SYSTEM_FLAG="--system"
|
| 223 |
+
test/test_path_preservation.ps1
|
| 224 |
+
|
| 225 |
+
build-docker-image-x64:
|
| 226 |
+
executor: ubuntu
|
| 227 |
+
steps:
|
| 228 |
+
- checkout
|
| 229 |
+
- setup-docker
|
| 230 |
+
- setup_remote_docker
|
| 231 |
+
# Build the `latest` version of EMSDK as docker image
|
| 232 |
+
- run:
|
| 233 |
+
name: build
|
| 234 |
+
command: make -C ./docker version=latest build
|
| 235 |
+
- run:
|
| 236 |
+
name: test
|
| 237 |
+
command: make -C ./docker version=latest test
|
| 238 |
+
|
| 239 |
+
publish-docker-image-x64:
|
| 240 |
+
executor: ubuntu
|
| 241 |
+
steps:
|
| 242 |
+
- checkout
|
| 243 |
+
- setup-docker
|
| 244 |
+
- setup_remote_docker
|
| 245 |
+
- run:
|
| 246 |
+
name: build
|
| 247 |
+
command: make -C ./docker version=${CIRCLE_TAG} build
|
| 248 |
+
- run:
|
| 249 |
+
name: test
|
| 250 |
+
command: make -C ./docker version=${CIRCLE_TAG} test
|
| 251 |
+
- run:
|
| 252 |
+
name: push image
|
| 253 |
+
command: |
|
| 254 |
+
docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
|
| 255 |
+
make -C ./docker version=${CIRCLE_TAG} tag=${CIRCLE_TAG}-x64 push
|
| 256 |
+
|
| 257 |
+
publish-docker-image-arm64:
|
| 258 |
+
executor: linux_arm64
|
| 259 |
+
steps:
|
| 260 |
+
- checkout
|
| 261 |
+
- run:
|
| 262 |
+
name: build
|
| 263 |
+
command: make -C ./docker version=${CIRCLE_TAG} build
|
| 264 |
+
- run:
|
| 265 |
+
name: test
|
| 266 |
+
command: make -C ./docker version=${CIRCLE_TAG} test
|
| 267 |
+
- run:
|
| 268 |
+
name: push image
|
| 269 |
+
command: |
|
| 270 |
+
docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
|
| 271 |
+
make -C ./docker version=${CIRCLE_TAG} tag=${CIRCLE_TAG}-arm64 push
|
| 272 |
+
|
| 273 |
+
publish-docker-image-multiplatform:
|
| 274 |
+
executor: linux_arm64
|
| 275 |
+
steps:
|
| 276 |
+
- checkout
|
| 277 |
+
- run:
|
| 278 |
+
name: push image
|
| 279 |
+
command: |
|
| 280 |
+
docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
|
| 281 |
+
make -C ./docker version=${CIRCLE_TAG} tag=${CIRCLE_TAG} push-multiplatform
|
| 282 |
+
make -C ./docker version=${CIRCLE_TAG} tag="latest" push-multiplatform
|
| 283 |
+
|
| 284 |
+
test-bazel-linux:
|
| 285 |
+
parameters:
|
| 286 |
+
bazel_version:
|
| 287 |
+
type: string
|
| 288 |
+
default: "latest"
|
| 289 |
+
executor: ubuntu
|
| 290 |
+
environment:
|
| 291 |
+
USE_BAZEL_VERSION: << parameters.bazel_version >>
|
| 292 |
+
steps:
|
| 293 |
+
- test-bazel-linux
|
| 294 |
+
|
| 295 |
+
test-bazel-mac-arm64:
|
| 296 |
+
parameters:
|
| 297 |
+
bazel_version:
|
| 298 |
+
type: string
|
| 299 |
+
default: "latest"
|
| 300 |
+
executor: mac_arm64
|
| 301 |
+
environment:
|
| 302 |
+
USE_BAZEL_VERSION: << parameters.bazel_version >>
|
| 303 |
+
steps:
|
| 304 |
+
- test-bazel-mac
|
| 305 |
+
|
| 306 |
+
test-bazel-windows:
|
| 307 |
+
parameters:
|
| 308 |
+
bazel_version:
|
| 309 |
+
type: string
|
| 310 |
+
default: "latest"
|
| 311 |
+
executor:
|
| 312 |
+
name: win/server-2019
|
| 313 |
+
shell: powershell.exe -ExecutionPolicy Bypass
|
| 314 |
+
environment:
|
| 315 |
+
PYTHONUNBUFFERED: "1"
|
| 316 |
+
EMSDK_NOTTY: "1"
|
| 317 |
+
USE_BAZEL_VERSION: << parameters.bazel_version >>
|
| 318 |
+
steps:
|
| 319 |
+
- test-bazel-windows
|
| 320 |
+
|
| 321 |
+
workflows:
|
| 322 |
+
lint:
|
| 323 |
+
jobs:
|
| 324 |
+
- lint
|
| 325 |
+
test-linux:
|
| 326 |
+
jobs:
|
| 327 |
+
- test-linux
|
| 328 |
+
test-linux-arm64:
|
| 329 |
+
jobs:
|
| 330 |
+
- test-linux-arm64
|
| 331 |
+
test-mac-arm64:
|
| 332 |
+
jobs:
|
| 333 |
+
- test-mac-arm64
|
| 334 |
+
test-windows:
|
| 335 |
+
jobs:
|
| 336 |
+
- test-windows
|
| 337 |
+
docker:
|
| 338 |
+
jobs:
|
| 339 |
+
- build-docker-image-x64
|
| 340 |
+
- publish-docker-image-x64:
|
| 341 |
+
filters:
|
| 342 |
+
branches:
|
| 343 |
+
ignore: /.*/
|
| 344 |
+
tags:
|
| 345 |
+
only: /.*/
|
| 346 |
+
- publish-docker-image-arm64:
|
| 347 |
+
filters:
|
| 348 |
+
branches:
|
| 349 |
+
ignore: /.*/
|
| 350 |
+
tags:
|
| 351 |
+
only: /.*/
|
| 352 |
+
- publish-docker-image-multiplatform:
|
| 353 |
+
filters:
|
| 354 |
+
tags:
|
| 355 |
+
only: /.*/
|
| 356 |
+
requires:
|
| 357 |
+
- publish-docker-image-x64
|
| 358 |
+
- publish-docker-image-arm64
|
| 359 |
+
|
| 360 |
+
test-bazel-linux:
|
| 361 |
+
jobs:
|
| 362 |
+
- test-bazel-linux:
|
| 363 |
+
matrix:
|
| 364 |
+
parameters:
|
| 365 |
+
bazel_version:
|
| 366 |
+
- "7.x"
|
| 367 |
+
- "8.x"
|
| 368 |
+
- "9.x"
|
| 369 |
+
test-bazel-mac-arm64:
|
| 370 |
+
jobs:
|
| 371 |
+
- test-bazel-mac-arm64:
|
| 372 |
+
matrix:
|
| 373 |
+
parameters:
|
| 374 |
+
bazel_version:
|
| 375 |
+
- "7.x"
|
| 376 |
+
- "8.x"
|
| 377 |
+
- "9.x"
|
| 378 |
+
test-bazel-windows:
|
| 379 |
+
jobs:
|
| 380 |
+
- test-bazel-windows:
|
| 381 |
+
matrix:
|
| 382 |
+
parameters:
|
| 383 |
+
# For some reason version resolution with "x.x" does not work on Windows,
|
| 384 |
+
# so we have to specify full versions.
|
| 385 |
+
bazel_version:
|
| 386 |
+
- "7.7.1"
|
| 387 |
+
- "8.5.1"
|
| 388 |
+
- "9.0.0"
|
.dockerignore
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Ignore everything
|
| 2 |
+
*
|
| 3 |
+
|
| 4 |
+
# Allow the entrypoint/test script inside the Docker container
|
| 5 |
+
!/docker/entrypoint.sh
|
| 6 |
+
!/docker/test_dockerimage.sh
|
| 7 |
+
|
| 8 |
+
# Allow license file
|
| 9 |
+
!LICENSE
|
| 10 |
+
|
| 11 |
+
# Allow necessary build files in top-level directory
|
| 12 |
+
!emscripten-releases-tags.json
|
| 13 |
+
!emsdk
|
| 14 |
+
!emsdk.py
|
| 15 |
+
!emsdk_env.sh
|
| 16 |
+
!emsdk_manifest.json
|
| 17 |
+
|
| 18 |
+
# Allow files required to install legacy versions
|
| 19 |
+
!legacy-binaryen-tags.txt
|
| 20 |
+
!legacy-emscripten-tags.txt
|
| 21 |
+
!llvm-tags-64bit.txt
|
.flake8
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[flake8]
|
| 2 |
+
extend-exclude =
|
| 3 |
+
./.*,
|
| 4 |
+
./binaryen,
|
| 5 |
+
./clang,
|
| 6 |
+
./crunch,
|
| 7 |
+
./downloads,
|
| 8 |
+
./emscripten,
|
| 9 |
+
./fastcomp-clang,
|
| 10 |
+
./fastcomp,
|
| 11 |
+
./git,
|
| 12 |
+
./gnu,
|
| 13 |
+
./llvm,
|
| 14 |
+
./node,
|
| 15 |
+
./python,
|
| 16 |
+
./releases,
|
| 17 |
+
./temp,
|
| 18 |
+
./upstream,
|
| 19 |
+
|
| 20 |
+
# E111: Indentation is not a multiple of four
|
| 21 |
+
# E114: Indentation is not a multiple of four (comment)
|
| 22 |
+
extend-ignore = E111, E114
|
| 23 |
+
|
| 24 |
+
max-line-length = 326
|
.gitattributes
CHANGED
|
@@ -33,3 +33,223 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
node/22.16.0_64bit/bin/node filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
upstream/bin/clang filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
upstream/bin/clang++ filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
upstream/bin/clang-23 filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
upstream/bin/clang-scan-deps filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
upstream/bin/lld filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
upstream/bin/llvm-addr2line filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
upstream/bin/llvm-ar filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
upstream/bin/llvm-cov filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
upstream/bin/llvm-cxxfilt filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
upstream/bin/llvm-dwarfdump filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
upstream/bin/llvm-dwp filter=lfs diff=lfs merge=lfs -text
|
| 48 |
+
upstream/bin/llvm-nm filter=lfs diff=lfs merge=lfs -text
|
| 49 |
+
upstream/bin/llvm-objcopy filter=lfs diff=lfs merge=lfs -text
|
| 50 |
+
upstream/bin/llvm-objdump filter=lfs diff=lfs merge=lfs -text
|
| 51 |
+
upstream/bin/llvm-profdata filter=lfs diff=lfs merge=lfs -text
|
| 52 |
+
upstream/bin/llvm-ranlib filter=lfs diff=lfs merge=lfs -text
|
| 53 |
+
upstream/bin/llvm-readobj filter=lfs diff=lfs merge=lfs -text
|
| 54 |
+
upstream/bin/llvm-size filter=lfs diff=lfs merge=lfs -text
|
| 55 |
+
upstream/bin/llvm-strings filter=lfs diff=lfs merge=lfs -text
|
| 56 |
+
upstream/bin/llvm-strip filter=lfs diff=lfs merge=lfs -text
|
| 57 |
+
upstream/bin/llvm-symbolizer filter=lfs diff=lfs merge=lfs -text
|
| 58 |
+
upstream/bin/wasm-as filter=lfs diff=lfs merge=lfs -text
|
| 59 |
+
upstream/bin/wasm-ctor-eval filter=lfs diff=lfs merge=lfs -text
|
| 60 |
+
upstream/bin/wasm-dis filter=lfs diff=lfs merge=lfs -text
|
| 61 |
+
upstream/bin/wasm-emscripten-finalize filter=lfs diff=lfs merge=lfs -text
|
| 62 |
+
upstream/bin/wasm-fuzz-lattices filter=lfs diff=lfs merge=lfs -text
|
| 63 |
+
upstream/bin/wasm-fuzz-types filter=lfs diff=lfs merge=lfs -text
|
| 64 |
+
upstream/bin/wasm-ld filter=lfs diff=lfs merge=lfs -text
|
| 65 |
+
upstream/bin/wasm-merge filter=lfs diff=lfs merge=lfs -text
|
| 66 |
+
upstream/bin/wasm-metadce filter=lfs diff=lfs merge=lfs -text
|
| 67 |
+
upstream/bin/wasm-opt filter=lfs diff=lfs merge=lfs -text
|
| 68 |
+
upstream/bin/wasm-reduce filter=lfs diff=lfs merge=lfs -text
|
| 69 |
+
upstream/bin/wasm-shell filter=lfs diff=lfs merge=lfs -text
|
| 70 |
+
upstream/bin/wasm-split filter=lfs diff=lfs merge=lfs -text
|
| 71 |
+
upstream/bin/wasm2js filter=lfs diff=lfs merge=lfs -text
|
| 72 |
+
upstream/bin/wasm32-clang filter=lfs diff=lfs merge=lfs -text
|
| 73 |
+
upstream/bin/wasm32-clang++ filter=lfs diff=lfs merge=lfs -text
|
| 74 |
+
upstream/bin/wasm32-wasi-clang filter=lfs diff=lfs merge=lfs -text
|
| 75 |
+
upstream/bin/wasm32-wasi-clang++ filter=lfs diff=lfs merge=lfs -text
|
| 76 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-emu-ofb-full_es3-getprocaddr.a filter=lfs diff=lfs merge=lfs -text
|
| 77 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-emu-ofb-full_es3.a filter=lfs diff=lfs merge=lfs -text
|
| 78 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-emu-ofb-getprocaddr.a filter=lfs diff=lfs merge=lfs -text
|
| 79 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-emu-webgl2-ofb-full_es3-getprocaddr.a filter=lfs diff=lfs merge=lfs -text
|
| 80 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-emu-webgl2-ofb-full_es3.a filter=lfs diff=lfs merge=lfs -text
|
| 81 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-emu-webgl2-ofb-getprocaddr.a filter=lfs diff=lfs merge=lfs -text
|
| 82 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-emu-webgl2-ofb.a filter=lfs diff=lfs merge=lfs -text
|
| 83 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-ofb-full_es3-getprocaddr.a filter=lfs diff=lfs merge=lfs -text
|
| 84 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-ofb-full_es3.a filter=lfs diff=lfs merge=lfs -text
|
| 85 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-ofb-getprocaddr.a filter=lfs diff=lfs merge=lfs -text
|
| 86 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-webgl2-ofb-full_es3-getprocaddr.a filter=lfs diff=lfs merge=lfs -text
|
| 87 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-webgl2-ofb-full_es3.a filter=lfs diff=lfs merge=lfs -text
|
| 88 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-webgl2-ofb-getprocaddr.a filter=lfs diff=lfs merge=lfs -text
|
| 89 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libGL-mt-webgl2-ofb.a filter=lfs diff=lfs merge=lfs -text
|
| 90 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libasan_rt-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 91 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libasan_rt-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 92 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libasan_rt.a filter=lfs diff=lfs merge=lfs -text
|
| 93 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-legacyexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 94 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-mt-legacyexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 95 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-mt-noexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 96 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-mt-wasmexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 97 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 98 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-noexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 99 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-wasmexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 100 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-ww-legacyexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 101 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-ww-noexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 102 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-ww-wasmexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 103 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 104 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 105 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-legacyexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 106 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-mt-legacyexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 107 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-mt-noexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 108 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-mt-wasmexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 109 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 110 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-noexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 111 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-wasmexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 112 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-ww-legacyexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 113 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-ww-noexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 114 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-ww-wasmexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 115 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 116 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++.a filter=lfs diff=lfs merge=lfs -text
|
| 117 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-debug-legacyexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 118 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-debug-mt-legacyexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 119 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-debug-mt-noexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 120 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-debug-mt-wasmexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 121 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-debug-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 122 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-debug-noexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 123 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-debug-wasmexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 124 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-debug-ww-legacyexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 125 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-debug-ww-noexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 126 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-debug-ww-wasmexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 127 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-debug-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 128 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 129 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-legacyexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 130 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-mt-legacyexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 131 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-mt-noexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 132 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-mt-wasmexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 133 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 134 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-noexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 135 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-wasmexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 136 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-ww-legacyexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 137 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-ww-noexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 138 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-ww-wasmexcept.a filter=lfs diff=lfs merge=lfs -text
|
| 139 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 140 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++abi.a filter=lfs diff=lfs merge=lfs -text
|
| 141 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc-asan-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 142 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc-asan.a filter=lfs diff=lfs merge=lfs -text
|
| 143 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 144 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc-mt-asan-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 145 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc-mt-asan.a filter=lfs diff=lfs merge=lfs -text
|
| 146 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc-mt-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 147 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 148 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc-ww-asan-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 149 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc-ww-asan.a filter=lfs diff=lfs merge=lfs -text
|
| 150 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc-ww-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 151 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 152 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc.a filter=lfs diff=lfs merge=lfs -text
|
| 153 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libcompiler_rt-legacysjlj-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 154 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libcompiler_rt-legacysjlj-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 155 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libcompiler_rt-legacysjlj.a filter=lfs diff=lfs merge=lfs -text
|
| 156 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libcompiler_rt-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 157 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libcompiler_rt-wasmsjlj-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 158 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libcompiler_rt-wasmsjlj-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 159 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libcompiler_rt-wasmsjlj.a filter=lfs diff=lfs merge=lfs -text
|
| 160 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libcompiler_rt-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 161 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libcompiler_rt.a filter=lfs diff=lfs merge=lfs -text
|
| 162 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libembind-mt-rtti.a filter=lfs diff=lfs merge=lfs -text
|
| 163 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libembind-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 164 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libembind-rtti.a filter=lfs diff=lfs merge=lfs -text
|
| 165 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libembind-ww-rtti.a filter=lfs diff=lfs merge=lfs -text
|
| 166 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libembind-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 167 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libembind.a filter=lfs diff=lfs merge=lfs -text
|
| 168 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libllvmlibc-asan-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 169 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libllvmlibc-asan.a filter=lfs diff=lfs merge=lfs -text
|
| 170 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libllvmlibc-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 171 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libllvmlibc-mt-asan-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 172 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libllvmlibc-mt-asan.a filter=lfs diff=lfs merge=lfs -text
|
| 173 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libllvmlibc-mt-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 174 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libllvmlibc-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 175 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libllvmlibc-ww-asan-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 176 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libllvmlibc-ww-asan.a filter=lfs diff=lfs merge=lfs -text
|
| 177 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libllvmlibc-ww-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 178 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libllvmlibc-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 179 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libllvmlibc.a filter=lfs diff=lfs merge=lfs -text
|
| 180 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/liblsan_common_rt-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 181 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/liblsan_common_rt-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 182 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/liblsan_common_rt.a filter=lfs diff=lfs merge=lfs -text
|
| 183 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/liblsan_rt-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 184 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/liblsan_rt-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 185 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/liblsan_rt.a filter=lfs diff=lfs merge=lfs -text
|
| 186 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libmimalloc-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 187 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libmimalloc-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 188 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libmimalloc.a filter=lfs diff=lfs merge=lfs -text
|
| 189 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libsanitizer_common_rt-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 190 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libsanitizer_common_rt-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 191 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libsanitizer_common_rt.a filter=lfs diff=lfs merge=lfs -text
|
| 192 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libstb_image.a filter=lfs diff=lfs merge=lfs -text
|
| 193 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libubsan_rt-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 194 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libubsan_rt-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 195 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libubsan_rt.a filter=lfs diff=lfs merge=lfs -text
|
| 196 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-asan-debug-icase.a filter=lfs diff=lfs merge=lfs -text
|
| 197 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-asan-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 198 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-asan-icase.a filter=lfs diff=lfs merge=lfs -text
|
| 199 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-asan.a filter=lfs diff=lfs merge=lfs -text
|
| 200 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-debug-icase.a filter=lfs diff=lfs merge=lfs -text
|
| 201 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 202 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-icase.a filter=lfs diff=lfs merge=lfs -text
|
| 203 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-mt-asan-debug-icase.a filter=lfs diff=lfs merge=lfs -text
|
| 204 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-mt-asan-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 205 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-mt-asan-icase.a filter=lfs diff=lfs merge=lfs -text
|
| 206 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-mt-asan.a filter=lfs diff=lfs merge=lfs -text
|
| 207 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-mt-debug-icase.a filter=lfs diff=lfs merge=lfs -text
|
| 208 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-mt-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 209 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-mt-icase.a filter=lfs diff=lfs merge=lfs -text
|
| 210 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-mt.a filter=lfs diff=lfs merge=lfs -text
|
| 211 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-ww-asan-debug-icase.a filter=lfs diff=lfs merge=lfs -text
|
| 212 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-ww-asan-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 213 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-ww-asan-icase.a filter=lfs diff=lfs merge=lfs -text
|
| 214 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-ww-asan.a filter=lfs diff=lfs merge=lfs -text
|
| 215 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-ww-debug-icase.a filter=lfs diff=lfs merge=lfs -text
|
| 216 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-ww-debug.a filter=lfs diff=lfs merge=lfs -text
|
| 217 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-ww-icase.a filter=lfs diff=lfs merge=lfs -text
|
| 218 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs-ww.a filter=lfs diff=lfs merge=lfs -text
|
| 219 |
+
upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libwasmfs.a filter=lfs diff=lfs merge=lfs -text
|
| 220 |
+
upstream/emscripten/docs/paper.pdf filter=lfs diff=lfs merge=lfs -text
|
| 221 |
+
upstream/emscripten/docs/splashpres.pdf filter=lfs diff=lfs merge=lfs -text
|
| 222 |
+
upstream/emscripten/node_modules/google-closure-compiler-java/compiler.jar filter=lfs diff=lfs merge=lfs -text
|
| 223 |
+
upstream/emscripten/node_modules/google-closure-compiler-linux/compiler filter=lfs diff=lfs merge=lfs -text
|
| 224 |
+
upstream/emscripten/test/browser/cocos2d_hello.png filter=lfs diff=lfs merge=lfs -text
|
| 225 |
+
upstream/emscripten/test/browser/cube_explosion.png filter=lfs diff=lfs merge=lfs -text
|
| 226 |
+
upstream/emscripten/test/browser/gl_ps.png filter=lfs diff=lfs merge=lfs -text
|
| 227 |
+
upstream/emscripten/test/browser/gl_renderers.png filter=lfs diff=lfs merge=lfs -text
|
| 228 |
+
upstream/emscripten/test/browser/gl_stride.png filter=lfs diff=lfs merge=lfs -text
|
| 229 |
+
upstream/emscripten/test/browser/gl_triangle.png filter=lfs diff=lfs merge=lfs -text
|
| 230 |
+
upstream/emscripten/test/browser/s3tc.png filter=lfs diff=lfs merge=lfs -text
|
| 231 |
+
upstream/emscripten/test/browser/screenshot-fog-density.png filter=lfs diff=lfs merge=lfs -text
|
| 232 |
+
upstream/emscripten/test/browser/screenshot-fog-exp2.png filter=lfs diff=lfs merge=lfs -text
|
| 233 |
+
upstream/emscripten/test/browser/screenshot-fog-linear.png filter=lfs diff=lfs merge=lfs -text
|
| 234 |
+
upstream/emscripten/test/browser/screenshot-gray-purple.png filter=lfs diff=lfs merge=lfs -text
|
| 235 |
+
upstream/emscripten/test/browser/screenshot-gray.png filter=lfs diff=lfs merge=lfs -text
|
| 236 |
+
upstream/emscripten/test/browser/screenshot.dds filter=lfs diff=lfs merge=lfs -text
|
| 237 |
+
upstream/emscripten/test/browser/screenshot.png filter=lfs diff=lfs merge=lfs -text
|
| 238 |
+
upstream/emscripten/test/browser/test_sdl_rotozoom.png filter=lfs diff=lfs merge=lfs -text
|
| 239 |
+
upstream/emscripten/test/freetype/LiberationSansBold.ttf filter=lfs diff=lfs merge=lfs -text
|
| 240 |
+
upstream/emscripten/test/poppler/emscripten_html5.pdf filter=lfs diff=lfs merge=lfs -text
|
| 241 |
+
upstream/emscripten/test/poppler/ref.ppm filter=lfs diff=lfs merge=lfs -text
|
| 242 |
+
upstream/emscripten/test/sounds/alarmcreatemiltaryfoot_1.wav filter=lfs diff=lfs merge=lfs -text
|
| 243 |
+
upstream/emscripten/test/sounds/audio.wav filter=lfs diff=lfs merge=lfs -text
|
| 244 |
+
upstream/emscripten/test/sounds/pudinha.mp3 filter=lfs diff=lfs merge=lfs -text
|
| 245 |
+
upstream/emscripten/test/sounds/the_entertainer.ogg filter=lfs diff=lfs merge=lfs -text
|
| 246 |
+
upstream/emscripten/test/sounds/the_entertainer.wav filter=lfs diff=lfs merge=lfs -text
|
| 247 |
+
upstream/emscripten/test/webaudio/audio_files/emscripten-bass-left.mp3 filter=lfs diff=lfs merge=lfs -text
|
| 248 |
+
upstream/emscripten/test/webaudio/audio_files/emscripten-bass-mono.mp3 filter=lfs diff=lfs merge=lfs -text
|
| 249 |
+
upstream/emscripten/test/webaudio/audio_files/emscripten-bass.mp3 filter=lfs diff=lfs merge=lfs -text
|
| 250 |
+
upstream/emscripten/test/webaudio/audio_files/emscripten-beat-mono.mp3 filter=lfs diff=lfs merge=lfs -text
|
| 251 |
+
upstream/emscripten/test/webaudio/audio_files/emscripten-beat-right.mp3 filter=lfs diff=lfs merge=lfs -text
|
| 252 |
+
upstream/emscripten/test/webaudio/audio_files/emscripten-beat.mp3 filter=lfs diff=lfs merge=lfs -text
|
| 253 |
+
upstream/lib/libc++.a filter=lfs diff=lfs merge=lfs -text
|
| 254 |
+
upstream/lib/libc++abi.a filter=lfs diff=lfs merge=lfs -text
|
| 255 |
+
upstream/lib/libc++experimental.a filter=lfs diff=lfs merge=lfs -text
|
.github/workflows/create-release.yml
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
name: Create Release PR
|
| 2 |
+
|
| 3 |
+
on:
|
| 4 |
+
workflow_dispatch:
|
| 5 |
+
inputs:
|
| 6 |
+
lto-sha:
|
| 7 |
+
required: true
|
| 8 |
+
type: string
|
| 9 |
+
nonlto-sha:
|
| 10 |
+
required: true
|
| 11 |
+
type: string
|
| 12 |
+
|
| 13 |
+
jobs:
|
| 14 |
+
create-release-pr:
|
| 15 |
+
runs-on: ubuntu-latest
|
| 16 |
+
steps:
|
| 17 |
+
- name: Checkout repo
|
| 18 |
+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
| 19 |
+
- name: Run create_release.py
|
| 20 |
+
run: python3 scripts/create_release.py -r ${{ inputs.lto-sha }} -a ${{ inputs.nonlto-sha }} --gh-action
|
| 21 |
+
- name: Create PR
|
| 22 |
+
id: cpr
|
| 23 |
+
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
|
| 24 |
+
with:
|
| 25 |
+
token: ${{ secrets.EMSCRIPTEN_BOT_TOKEN }}
|
| 26 |
+
title: Release ${{ env.RELEASE_VERSION }}
|
| 27 |
+
commit-message: |
|
| 28 |
+
Release ${{ env.RELEASE_VERSION }}
|
| 29 |
+
team-reviewers: release-reviewers
|
| 30 |
+
labels: release
|
| 31 |
+
body: |
|
| 32 |
+
With emscripten-releases revisions:
|
| 33 |
+
https://chromium.googlesource.com/emscripten-releases/+/${{ inputs.lto-sha }} (LTO)
|
| 34 |
+
https://chromium.googlesource.com/emscripten-releases/+/${{ inputs.nonlto-sha }} (asserts)
|
| 35 |
+
branch: release_${{ env.RELEASE_VERSION }}
|
| 36 |
+
delete-branch: true
|
| 37 |
+
- name: Enable auto-merge
|
| 38 |
+
run: gh pr merge --squash --auto "${{ steps.cpr.outputs.pull-request-number }}"
|
| 39 |
+
env:
|
| 40 |
+
GH_TOKEN: ${{ secrets.EMSCRIPTEN_BOT_TOKEN }}
|
.github/workflows/tag-release.yml
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# When a release commit created by create-release.yml is landed, create the
|
| 2 |
+
# corresponding tag.
|
| 3 |
+
name: Create release tag
|
| 4 |
+
|
| 5 |
+
on:
|
| 6 |
+
push:
|
| 7 |
+
paths:
|
| 8 |
+
- emscripten-releases-tags.json
|
| 9 |
+
- .github/workflows/tag-release.yml
|
| 10 |
+
branches:
|
| 11 |
+
- main
|
| 12 |
+
workflow_dispatch:
|
| 13 |
+
|
| 14 |
+
jobs:
|
| 15 |
+
tag-release:
|
| 16 |
+
# Only activate for commits created by the create-release.yml workflow.
|
| 17 |
+
# The assumption is that when manual changes happen, we want to handle
|
| 18 |
+
# tagging manually too.
|
| 19 |
+
name: Check for release commit and create tag
|
| 20 |
+
# The author is emscripten-bot when triggered from Chromium CI, and github-actions when manually triggered.
|
| 21 |
+
if: ${{ github.event.head_commit.author.username == 'github-actions[bot]' || github.event.head_commit.author.username == 'emscripten-bot' }}
|
| 22 |
+
runs-on: ubuntu-latest
|
| 23 |
+
outputs:
|
| 24 |
+
is_release: ${{ steps.create-tag.outputs.result }}
|
| 25 |
+
steps:
|
| 26 |
+
- name: Match message and create tag
|
| 27 |
+
id: create-tag
|
| 28 |
+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
| 29 |
+
with:
|
| 30 |
+
github-token: ${{ secrets.EMSCRIPTEN_BOT_TOKEN }}
|
| 31 |
+
# A commit with the message of the form 'Release X.Y.Z' is expected
|
| 32 |
+
# to have been created by create_release.py and update the latest
|
| 33 |
+
# release in emscripten-releases-tags.json
|
| 34 |
+
script: |
|
| 35 |
+
const message = `${{ github.event.head_commit.message }}`
|
| 36 |
+
const regex = /Release ([0-9]+.[0-9]+.[0-9]+)/;
|
| 37 |
+
const match = message.match(regex);
|
| 38 |
+
let is_release = false;
|
| 39 |
+
if (match) {
|
| 40 |
+
const release = match[1];
|
| 41 |
+
console.log(`Matched release ${release}`);
|
| 42 |
+
await github.rest.git.createRef({
|
| 43 |
+
owner: context.repo.owner,
|
| 44 |
+
repo: context.repo.repo,
|
| 45 |
+
ref: `refs/tags/${release}`,
|
| 46 |
+
sha: context.sha
|
| 47 |
+
});
|
| 48 |
+
is_release = true;
|
| 49 |
+
} else {
|
| 50 |
+
console.log(`Commit message: '${message}' did not match pattern`);
|
| 51 |
+
}
|
| 52 |
+
return is_release;
|
| 53 |
+
|
| 54 |
+
dispatch-emscripten-tag:
|
| 55 |
+
name: Dispatch workflow to tag emscripten repo
|
| 56 |
+
runs-on: ubuntu-latest
|
| 57 |
+
needs: tag-release
|
| 58 |
+
if: ${{ needs.tag-release.outputs.is_release == 'true' }}
|
| 59 |
+
steps:
|
| 60 |
+
- name: Checkout repo
|
| 61 |
+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
| 62 |
+
- name: Find emscripten revision
|
| 63 |
+
# get_emscripten_revision_info.py sets env.EMSCRIPTEN_HASH to the
|
| 64 |
+
# emscripten hash associated with the latest release in
|
| 65 |
+
# emscripten-releases-tags.json
|
| 66 |
+
run: python3 scripts/get_emscripten_revision_info.py
|
| 67 |
+
- name: Dispatch emscripten workflow
|
| 68 |
+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
| 69 |
+
with:
|
| 70 |
+
github-token: ${{ secrets.EMSCRIPTEN_BOT_TOKEN }}
|
| 71 |
+
script: |
|
| 72 |
+
await github.rest.actions.createWorkflowDispatch({
|
| 73 |
+
owner: context.repo.owner,
|
| 74 |
+
repo: 'emscripten',
|
| 75 |
+
workflow_id: 'tag-release.yml',
|
| 76 |
+
ref: 'main',
|
| 77 |
+
inputs: { 'release-sha': '${{ env.EMSCRIPTEN_HASH }}' }
|
| 78 |
+
});
|
.gitignore
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.pyc
|
| 2 |
+
__pycache__
|
| 3 |
+
|
| 4 |
+
# Support for --embedded configs
|
| 5 |
+
/.emscripten
|
| 6 |
+
/.emscripten.old
|
| 7 |
+
/.emscripten_cache
|
| 8 |
+
/.emscripten_cache__last_clear
|
| 9 |
+
/.emscripten_sanity
|
| 10 |
+
/.emscripten_sanity_wasm
|
| 11 |
+
|
| 12 |
+
# Tags files that get generated at runtime
|
| 13 |
+
/emscripten-releases-tot.txt
|
| 14 |
+
|
| 15 |
+
# File that get download/extracted by emsdk itself
|
| 16 |
+
/ccache
|
| 17 |
+
/gnu
|
| 18 |
+
/upstream
|
| 19 |
+
/fastcomp
|
| 20 |
+
/fastcomp-clang/
|
| 21 |
+
/llvm
|
| 22 |
+
/ninja
|
| 23 |
+
/releases
|
| 24 |
+
/clang
|
| 25 |
+
/emscripten
|
| 26 |
+
/git
|
| 27 |
+
/node
|
| 28 |
+
/python
|
| 29 |
+
/temp
|
| 30 |
+
/downloads
|
| 31 |
+
/crunch
|
| 32 |
+
/java
|
| 33 |
+
/mingw
|
| 34 |
+
/spidermonkey
|
| 35 |
+
/binaryen
|
| 36 |
+
/firefox
|
LICENSE
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Copyright (c) 2018 Emscripten authors (see AUTHORS in Emscripten)
|
| 2 |
+
|
| 3 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 4 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 5 |
+
in the Software without restriction, including without limitation the rights
|
| 6 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 7 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 8 |
+
furnished to do so, subject to the following conditions:
|
| 9 |
+
|
| 10 |
+
The above copyright notice and this permission notice shall be included in all
|
| 11 |
+
copies or substantial portions of the Software.
|
| 12 |
+
|
| 13 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 14 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 15 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 16 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 17 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 18 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 19 |
+
SOFTWARE.
|
| 20 |
+
|
| 21 |
+
----------------------------------------------------------------------------
|
| 22 |
+
|
| 23 |
+
This is the MIT/Expat Licence. For more information see:
|
| 24 |
+
|
| 25 |
+
1. http://www.opensource.org/licenses/mit-license.php
|
| 26 |
+
|
| 27 |
+
2. http://en.wikipedia.org/wiki/MIT_License
|
README.md
ADDED
|
@@ -0,0 +1,246 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Emscripten SDK
|
| 2 |
+
==============
|
| 3 |
+
|
| 4 |
+
[](https://circleci.com/gh/emscripten-core/emsdk/tree/main)
|
| 5 |
+
|
| 6 |
+
The Emscripten toolchain is distributed as a standalone Emscripten SDK. The SDK
|
| 7 |
+
provides all the required tools, such as Clang, Python and Node.js along with an
|
| 8 |
+
update mechanism that enables migrating to newer Emscripten versions as they are
|
| 9 |
+
released.
|
| 10 |
+
|
| 11 |
+
You can also set up Emscripten from source, without the pre-built SDK, see
|
| 12 |
+
"Installing from Source" below.
|
| 13 |
+
|
| 14 |
+
## Downloads / How do I get the latest Emscripten build?
|
| 15 |
+
|
| 16 |
+
To get started with Emscripten development, see the [Emscripten website
|
| 17 |
+
documentation](https://emscripten.org/docs/getting_started/downloads.html).
|
| 18 |
+
|
| 19 |
+
That explains how to use the emsdk to get the latest binary builds (without
|
| 20 |
+
compiling from source). Basically, that amounts to
|
| 21 |
+
|
| 22 |
+
```
|
| 23 |
+
git pull
|
| 24 |
+
./emsdk install latest
|
| 25 |
+
./emsdk activate latest
|
| 26 |
+
```
|
| 27 |
+
|
| 28 |
+
## SDK Concepts
|
| 29 |
+
|
| 30 |
+
The Emscripten SDK is effectively a small package manager for tools that are
|
| 31 |
+
used in conjunction with Emscripten. The following glossary highlights the
|
| 32 |
+
important concepts to help understanding the internals of the SDK:
|
| 33 |
+
|
| 34 |
+
* **Tool**: The basic unit of software bundled in the SDK. A Tool has a name and
|
| 35 |
+
a version. For example, 'clang-3.2-32bit' is a Tool that contains the 32-bit
|
| 36 |
+
version of the Clang v3.2 compiler.
|
| 37 |
+
* **SDK**: A set of tools. For example, 'sdk-1.5.6-32bit' is an SDK consisting
|
| 38 |
+
of the tools `clang-3.2-32bit`, `node-0.10.17-32bit`, `python-2.7.5.1-32bit`
|
| 39 |
+
and `emscripten-1.5.6`.
|
| 40 |
+
* **Active Tool/SDK**: Emscripten SDK stores compiler configuration in a file
|
| 41 |
+
called `.emscripten` within the emsdk directory. This file points to paths
|
| 42 |
+
for Emscripten, Python, Clang and so on. If the configuration file points to a
|
| 43 |
+
Tool in a specific directory, then that tool is denoted as being
|
| 44 |
+
**active**. This mechanism allows switching between different installed
|
| 45 |
+
tools and SDKs.
|
| 46 |
+
* **emsdk**: This is the name of the manager script that Emscripten SDK is
|
| 47 |
+
accessed through. Most operations are of the form `emsdk <command>`.
|
| 48 |
+
|
| 49 |
+
## System Requirements
|
| 50 |
+
|
| 51 |
+
Using the emsdk pre-compiled packages requires only the minimal set of
|
| 52 |
+
dependencies lists below. When building from source a wider set of tools
|
| 53 |
+
include git, cmake, and a host compiler are required. See:
|
| 54 |
+
https://emscripten.org/docs/building_from_source/toolchain_what_is_needed.html.
|
| 55 |
+
|
| 56 |
+
### Mac OS X
|
| 57 |
+
|
| 58 |
+
- macOS 11.0 or newer.
|
| 59 |
+
- `java`: For running closure compiler (optional). After installing emscripten
|
| 60 |
+
via emsdk, typing 'emcc --help' should pop up a OS X dialog "Java is not
|
| 61 |
+
installed. To open java, you need a Java SE 6 runtime. Would you like to
|
| 62 |
+
install one now?" that will automatically download a Java runtime to the
|
| 63 |
+
system.
|
| 64 |
+
|
| 65 |
+
### Linux
|
| 66 |
+
|
| 67 |
+
- `python`: Version 3.8 or above.
|
| 68 |
+
- `java`: For running closure compiler (optional)
|
| 69 |
+
|
| 70 |
+
The emsdk pre-compiled binaries are built against debian/stretch (for x86_64)
|
| 71 |
+
and debian/bullseye (for arm64) sysroots and therefore depend on system
|
| 72 |
+
libraries compatible with the version of `glibc` (and other libraries) present
|
| 73 |
+
in those releases. If your linux distribution is very old you may not be able to
|
| 74 |
+
use the pre-compiled binaries packages. Note that `libc++` is statically linked
|
| 75 |
+
so there should be no issues with older versions of `libstdc++` or `libc++`.
|
| 76 |
+
|
| 77 |
+
### Windows
|
| 78 |
+
|
| 79 |
+
- `java`: For running closure compiler (optional)
|
| 80 |
+
|
| 81 |
+
## Uninstalling the Emscripten SDK
|
| 82 |
+
|
| 83 |
+
To remove the Emscripten SDK, simply delete the emsdk directory.
|
| 84 |
+
|
| 85 |
+
## SDK Maintenance
|
| 86 |
+
|
| 87 |
+
The following tasks are common with the Emscripten SDK:
|
| 88 |
+
|
| 89 |
+
### How do I work the emsdk utility?
|
| 90 |
+
|
| 91 |
+
Run `emsdk help` or just `emsdk` to get information about all available commands.
|
| 92 |
+
|
| 93 |
+
### How do I check the installation status and version of the SDK and tools?
|
| 94 |
+
|
| 95 |
+
To get a list of all currently installed tools and SDK versions, and all
|
| 96 |
+
available tools, run `emsdk list`.
|
| 97 |
+
* A line will be printed for each tool/SDK that is available for installation.
|
| 98 |
+
* The text `INSTALLED` will be shown for each tool that has already been
|
| 99 |
+
installed.
|
| 100 |
+
* If a tool/SDK is currently active, a star * will be shown next to it.
|
| 101 |
+
* If a tool/SDK is currently active, but the terminal your are calling emsdk
|
| 102 |
+
from does not have `PATH` and environment set up to utilize that tool, a star
|
| 103 |
+
in parentheses (\*) will be shown next to it. Run `emsdk_env.bat` (Windows) or
|
| 104 |
+
`source ./emsdk_env.sh` (Linux and OS X) to set up the environment for the
|
| 105 |
+
calling terminal.
|
| 106 |
+
|
| 107 |
+
### How do I install a tool/SDK version?
|
| 108 |
+
|
| 109 |
+
Run the command `emsdk install <tool/sdk name>` to download and install a new
|
| 110 |
+
tool or an SDK version.
|
| 111 |
+
|
| 112 |
+
### How do I remove a tool or an SDK?
|
| 113 |
+
|
| 114 |
+
Run the command `emsdk uninstall <tool/sdk name>` to delete the given tool or
|
| 115 |
+
SDK from the local hard drive completely.
|
| 116 |
+
|
| 117 |
+
### How do I check for updates to the Emscripten SDK?
|
| 118 |
+
|
| 119 |
+
`emsdk update` will fetch package information for all the new tools and
|
| 120 |
+
SDK versions. After that, run `emsdk install <tool/sdk name>` to install a new
|
| 121 |
+
version.
|
| 122 |
+
|
| 123 |
+
### How do I install an old Emscripten compiler version?
|
| 124 |
+
|
| 125 |
+
Emsdk contains a history of old compiler versions that you can use to maintain
|
| 126 |
+
your migration path. Type `emsdk list --old` to get a list of archived tool and
|
| 127 |
+
SDK versions, and `emsdk install <name_of_tool>` to install it.
|
| 128 |
+
|
| 129 |
+
### I want to build from source!
|
| 130 |
+
|
| 131 |
+
Some Emsdk Tool and SDK targets refer to packages that are precompiled, and
|
| 132 |
+
no compilation is needed when installing them. Other Emsdk Tools and SDK
|
| 133 |
+
targets come "from source", meaning that they will fetch the source repositories
|
| 134 |
+
using git, and compile the package on demand.
|
| 135 |
+
|
| 136 |
+
When you run `emsdk list`, it will group the Tools and SDKs under these two
|
| 137 |
+
categories.
|
| 138 |
+
|
| 139 |
+
To obtain and build latest wasm SDK from source, run
|
| 140 |
+
|
| 141 |
+
```
|
| 142 |
+
emsdk install sdk-main-64bit
|
| 143 |
+
emsdk activate sdk-main-64bit
|
| 144 |
+
```
|
| 145 |
+
|
| 146 |
+
You can use this target for example to bootstrap developing patches to LLVM,
|
| 147 |
+
Binaryen or Emscripten. (After initial installation, use `git remote add`
|
| 148 |
+
in the cloned tree to add your own fork to push changes as patches)
|
| 149 |
+
|
| 150 |
+
If you only intend to contribute to Emscripten repository, and not to LLVM
|
| 151 |
+
or Binaryen, you can also use precompiled versions of them, and only git
|
| 152 |
+
clone the Emscripten repository. For more details, see
|
| 153 |
+
|
| 154 |
+
https://emscripten.org/docs/contributing/developers_guide.html?highlight=developer#setting-up
|
| 155 |
+
|
| 156 |
+
### When working on git branches compiled from source, how do I update to a newer compiler version?
|
| 157 |
+
|
| 158 |
+
Unlike tags and precompiled versions, a few of the SDK packages are based on
|
| 159 |
+
"moving" git branches and compiled from source (e.g. sdk-main,
|
| 160 |
+
sdk-main, emscripten-main, binaryen-main). Because of that, the
|
| 161 |
+
compiled versions will eventually go out of date as new commits are introduced
|
| 162 |
+
to the development branches. To update an old compiled installation of one of
|
| 163 |
+
this branches, simply reissue the "emsdk install" command on that tool/SDK. This
|
| 164 |
+
will `git pull` the latest changes to the branch and issue an incremental
|
| 165 |
+
recompilation of the target in question. This way you can keep calling `emsdk
|
| 166 |
+
install` to keep an Emscripten installation up to date with a given git branch.
|
| 167 |
+
|
| 168 |
+
Note though that if the previously compiled branch is very old, sometimes CMake
|
| 169 |
+
gets confused and is unable to properly rebuild a project. This has happened in
|
| 170 |
+
the past e.g. when LLVM migrated to requiring a newer CMake version. In cases of
|
| 171 |
+
any odd compilation errors, it is advised to try deleting the intermediate build
|
| 172 |
+
directory to clear the build (e.g. "emsdk/clang/fastcomp/build_xxx/") before
|
| 173 |
+
reissuing `emsdk install`.
|
| 174 |
+
|
| 175 |
+
### How do I change the currently active SDK version?
|
| 176 |
+
|
| 177 |
+
You can toggle between different tools and SDK versions by running `emsdk
|
| 178 |
+
activate <tool/sdk name>`. Activating a tool will set up `~/.emscripten` to
|
| 179 |
+
point to that particular tool. On Windows, you can pass the option `--permanent` to
|
| 180 |
+
the `activate` command to register the environment permanently for the current user. Use `--system` to do this for all users.
|
| 181 |
+
|
| 182 |
+
### How do I track the latest Emscripten development with the SDK?
|
| 183 |
+
|
| 184 |
+
A common and supported use case of the Emscripten SDK is to enable the workflow
|
| 185 |
+
where you directly interact with the github repositories. This allows you to
|
| 186 |
+
obtain new features and latest fixes immediately as they are pushed to the
|
| 187 |
+
github repository, without having to wait for release to be tagged. You do not
|
| 188 |
+
need a github account or a fork of Emscripten to do this. To switch to using the
|
| 189 |
+
latest git development branch `main`, run the following:
|
| 190 |
+
|
| 191 |
+
emsdk install git-1.9.4 # Install git. Skip if the system already has it.
|
| 192 |
+
emsdk install sdk-main-64bit # Clone+pull the latest emscripten-core/emscripten/main.
|
| 193 |
+
emsdk activate sdk-main-64bit # Set the main SDK as the currently active one.
|
| 194 |
+
|
| 195 |
+
### How do I use my own Emscripten github fork with the SDK?
|
| 196 |
+
|
| 197 |
+
It is also possible to use your own fork of the Emscripten repository via the
|
| 198 |
+
SDK. This is achieved with standard git machinery, so if you are already
|
| 199 |
+
acquainted with working on multiple remotes in a git clone, these steps should
|
| 200 |
+
be familiar to you. This is useful in the case when you want to make your own
|
| 201 |
+
modifications to the Emscripten toolchain, but still keep using the SDK
|
| 202 |
+
environment and tools. To set up your own fork as the currently active
|
| 203 |
+
Emscripten toolchain, first install the `sdk-main` SDK like shown in the
|
| 204 |
+
previous section, and then run the following commands in the emsdk directory:
|
| 205 |
+
|
| 206 |
+
cd emscripten/main
|
| 207 |
+
# Add a git remote link to your own repository.
|
| 208 |
+
git remote add myremote https://github.com/mygituseraccount/emscripten.git
|
| 209 |
+
# Obtain the changes in your link.
|
| 210 |
+
git fetch myremote
|
| 211 |
+
# Switch the emscripten-main tool to use your fork.
|
| 212 |
+
git checkout -b mymain --track myremote/main
|
| 213 |
+
|
| 214 |
+
In this way you can utilize the Emscripten SDK tools while using your own git
|
| 215 |
+
fork. You can switch back and forth between remotes via the `git checkout`
|
| 216 |
+
command as usual.
|
| 217 |
+
|
| 218 |
+
### How do I use Emscripten SDK with a custom version of python, java, node.js or some other tool?
|
| 219 |
+
|
| 220 |
+
The provided Emscripten SDK targets are metapackages that refer to a specific
|
| 221 |
+
set of tools that have been tested to work together. For example,
|
| 222 |
+
`sdk-1.35.0-64bit` is an alias to the individual packages `clang-e1.35.0-64bit`,
|
| 223 |
+
`node-4.1.1-64bit`, `python-2.7.5.3-64bit` and `emscripten-1.35.0`. This means
|
| 224 |
+
that if you install this version of the SDK, both python and node.js will be
|
| 225 |
+
installed inside emsdk as well. If you want to use your own/system python or
|
| 226 |
+
node.js instead, you can opt to install emsdk by specifying the individual set
|
| 227 |
+
of packages that you want to use. For example, `emsdk install
|
| 228 |
+
clang-e1.35.0-64bit emscripten-1.35.0` will only install the Emscripten
|
| 229 |
+
LLVM/Clang compiler and the Emscripten frontend without supplying python and
|
| 230 |
+
node.js.
|
| 231 |
+
|
| 232 |
+
### My installation fails with "fatal error: ld terminated with signal 9 [Killed]"?
|
| 233 |
+
|
| 234 |
+
This may happen if the system runs out of memory. If you are attempting to build
|
| 235 |
+
one of the packages from source and are running in a virtual OS or may have
|
| 236 |
+
relatively little RAM and disk space available, then the build might fail. Try
|
| 237 |
+
feeding your computer more memory. Another thing to try is to force emsdk
|
| 238 |
+
install to build in a singlethreaded mode, which will require less RAM
|
| 239 |
+
simultaneously. To do this, pass the `-j1` flag to the `emsdk install` command.
|
| 240 |
+
|
| 241 |
+
### How do I run Emscripten on 32-bit systems or non-x86-64 systems?
|
| 242 |
+
|
| 243 |
+
Emscripten SDK releases are no longer packaged or maintained for 32-bit systems.
|
| 244 |
+
If you want to run Emscripten on a 32-bit system, you can try manually building
|
| 245 |
+
the compiler. Follow the steps in the above section "Building an Emscripten tag
|
| 246 |
+
or branch from source" to get started.
|
SECURITY.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Security Policy
|
| 2 |
+
|
| 3 |
+
If you have discovered a security vulnerability in this project, please report it
|
| 4 |
+
privately. **Do not disclose it as a public issue.** This gives us time to work with you
|
| 5 |
+
to fix the issue before public exposure, reducing the chance that the exploit will be
|
| 6 |
+
used before a patch is released.
|
| 7 |
+
|
| 8 |
+
Please submit the report as a [security bug on the Chromium tracker](https://bugs.chromium.org/p/chromium/issues/entry?template=Security%20Bug).
|
| 9 |
+
|
| 10 |
+
Please provide the following information in your report:
|
| 11 |
+
|
| 12 |
+
- A description of the vulnerability and its impact
|
| 13 |
+
- How to reproduce the issue
|
| 14 |
+
- Make it clear that it's an Emscripten SDK bug.
|
| 15 |
+
|
| 16 |
+
We ask that you give us 90 days to work on a fix before public exposure.
|
bazel/.bazelrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
build --incompatible_enable_cc_toolchain_resolution
|
bazel/.gitignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
/bazel-*
|
bazel/BUILD
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
package(default_visibility = ["//visibility:public"])
|
| 2 |
+
|
| 3 |
+
filegroup(name = "empty")
|
| 4 |
+
|
| 5 |
+
platform(
|
| 6 |
+
name = "platform_wasm",
|
| 7 |
+
constraint_values = [
|
| 8 |
+
"@platforms//cpu:wasm32",
|
| 9 |
+
"@platforms//os:emscripten",
|
| 10 |
+
],
|
| 11 |
+
)
|
| 12 |
+
|
| 13 |
+
platform(
|
| 14 |
+
name = "platform_wasi",
|
| 15 |
+
constraint_values = [
|
| 16 |
+
"@platforms//cpu:wasm32",
|
| 17 |
+
"@platforms//os:wasi",
|
| 18 |
+
],
|
| 19 |
+
)
|
bazel/MODULE.bazel
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
module(
|
| 2 |
+
name = "emsdk",
|
| 3 |
+
version = "5.0.7",
|
| 4 |
+
)
|
| 5 |
+
|
| 6 |
+
bazel_dep(name = "platforms", version = "1.0.0")
|
| 7 |
+
bazel_dep(name = "bazel_skylib", version = "1.8.2")
|
| 8 |
+
bazel_dep(name = "rules_nodejs", version = "6.7.3")
|
| 9 |
+
bazel_dep(name = "rules_cc", version = "0.2.16")
|
| 10 |
+
bazel_dep(name = "rules_python", version = "1.8.4")
|
| 11 |
+
|
| 12 |
+
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
|
| 13 |
+
python.toolchain(
|
| 14 |
+
python_version = "3.14",
|
| 15 |
+
)
|
| 16 |
+
|
| 17 |
+
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
|
| 18 |
+
node.toolchain(node_version = "20.18.0")
|
| 19 |
+
use_repo(node, "nodejs")
|
| 20 |
+
|
| 21 |
+
emscripten_deps = use_extension(
|
| 22 |
+
"//:emscripten_deps.bzl",
|
| 23 |
+
"emscripten_deps",
|
| 24 |
+
)
|
| 25 |
+
use_repo(emscripten_deps, "emscripten_bin_linux")
|
| 26 |
+
use_repo(emscripten_deps, "emscripten_bin_linux_arm64")
|
| 27 |
+
use_repo(emscripten_deps, "emscripten_bin_mac")
|
| 28 |
+
use_repo(emscripten_deps, "emscripten_bin_mac_arm64")
|
| 29 |
+
use_repo(emscripten_deps, "emscripten_bin_win")
|
| 30 |
+
|
| 31 |
+
emscripten_cache = use_extension("//:emscripten_cache.bzl", "emscripten_cache")
|
| 32 |
+
use_repo(emscripten_cache, "emscripten_cache")
|
| 33 |
+
|
| 34 |
+
register_toolchains(
|
| 35 |
+
"//emscripten_toolchain:cc-toolchain-wasm-emscripten_linux",
|
| 36 |
+
"//emscripten_toolchain:cc-toolchain-wasm-emscripten_linux_arm64",
|
| 37 |
+
"//emscripten_toolchain:cc-toolchain-wasm-emscripten_mac",
|
| 38 |
+
"//emscripten_toolchain:cc-toolchain-wasm-emscripten_mac_arm64",
|
| 39 |
+
"//emscripten_toolchain:cc-toolchain-wasm-emscripten_win",
|
| 40 |
+
)
|
bazel/MODULE.bazel.lock
ADDED
|
@@ -0,0 +1,698 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"lockFileVersion": 26,
|
| 3 |
+
"registryFileHashes": {
|
| 4 |
+
"https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497",
|
| 5 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2",
|
| 6 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589",
|
| 7 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0",
|
| 8 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb",
|
| 9 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16",
|
| 10 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915",
|
| 11 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed",
|
| 12 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16",
|
| 13 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20250127.1/MODULE.bazel": "c4a89e7ceb9bf1e25cf84a9f830ff6b817b72874088bf5141b314726e46a57c1",
|
| 14 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20250512.1/MODULE.bazel": "d209fdb6f36ffaf61c509fcc81b19e81b411a999a934a032e10cd009a0226215",
|
| 15 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20250814.1/MODULE.bazel": "51f2312901470cdab0dbdf3b88c40cd21c62a7ed58a3de45b365ddc5b11bcab2",
|
| 16 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20250814.1/source.json": "cea3901d7e299da7320700abbaafe57a65d039f10d0d7ea601c4a66938ea4b0c",
|
| 17 |
+
"https://bcr.bazel.build/modules/apple_support/1.11.1/MODULE.bazel": "1843d7cd8a58369a444fc6000e7304425fba600ff641592161d9f15b179fb896",
|
| 18 |
+
"https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85",
|
| 19 |
+
"https://bcr.bazel.build/modules/apple_support/1.21.0/MODULE.bazel": "ac1824ed5edf17dee2fdd4927ada30c9f8c3b520be1b5fd02a5da15bc10bff3e",
|
| 20 |
+
"https://bcr.bazel.build/modules/apple_support/1.21.1/MODULE.bazel": "5809fa3efab15d1f3c3c635af6974044bac8a4919c62238cce06acee8a8c11f1",
|
| 21 |
+
"https://bcr.bazel.build/modules/apple_support/1.24.2/MODULE.bazel": "0e62471818affb9f0b26f128831d5c40b074d32e6dda5a0d3852847215a41ca4",
|
| 22 |
+
"https://bcr.bazel.build/modules/apple_support/1.24.2/source.json": "2c22c9827093250406c5568da6c54e6fdf0ef06238def3d99c71b12feb057a8d",
|
| 23 |
+
"https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd",
|
| 24 |
+
"https://bcr.bazel.build/modules/bazel_features/1.10.0/MODULE.bazel": "f75e8807570484a99be90abcd52b5e1f390362c258bcb73106f4544957a48101",
|
| 25 |
+
"https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8",
|
| 26 |
+
"https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d",
|
| 27 |
+
"https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d",
|
| 28 |
+
"https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a",
|
| 29 |
+
"https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58",
|
| 30 |
+
"https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b",
|
| 31 |
+
"https://bcr.bazel.build/modules/bazel_features/1.23.0/MODULE.bazel": "fd1ac84bc4e97a5a0816b7fd7d4d4f6d837b0047cf4cbd81652d616af3a6591a",
|
| 32 |
+
"https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65",
|
| 33 |
+
"https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d",
|
| 34 |
+
"https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9",
|
| 35 |
+
"https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87",
|
| 36 |
+
"https://bcr.bazel.build/modules/bazel_features/1.33.0/MODULE.bazel": "8b8dc9d2a4c88609409c3191165bccec0e4cb044cd7a72ccbe826583303459f6",
|
| 37 |
+
"https://bcr.bazel.build/modules/bazel_features/1.39.0/MODULE.bazel": "28739425c1fc283c91931619749c832b555e60bcd1010b40d8441ce0a5cf726d",
|
| 38 |
+
"https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7",
|
| 39 |
+
"https://bcr.bazel.build/modules/bazel_features/1.42.1/MODULE.bazel": "275a59b5406ff18c01739860aa70ad7ccb3cfb474579411decca11c93b951080",
|
| 40 |
+
"https://bcr.bazel.build/modules/bazel_features/1.42.1/source.json": "fcd4396b2df85f64f2b3bb436ad870793ecf39180f1d796f913cc9276d355309",
|
| 41 |
+
"https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b",
|
| 42 |
+
"https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a",
|
| 43 |
+
"https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d",
|
| 44 |
+
"https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751",
|
| 45 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8",
|
| 46 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e",
|
| 47 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686",
|
| 48 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a",
|
| 49 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5",
|
| 50 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d",
|
| 51 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651",
|
| 52 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138",
|
| 53 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917",
|
| 54 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d",
|
| 55 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b",
|
| 56 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6",
|
| 57 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67",
|
| 58 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.8.2/source.json": "34a3c8bcf233b835eb74be9d628899bb32999d3e0eadef1947a0a562a2b16ffb",
|
| 59 |
+
"https://bcr.bazel.build/modules/buildozer/8.5.1/MODULE.bazel": "a35d9561b3fc5b18797c330793e99e3b834a473d5fbd3d7d7634aafc9bdb6f8f",
|
| 60 |
+
"https://bcr.bazel.build/modules/buildozer/8.5.1/source.json": "e3386e6ff4529f2442800dee47ad28d3e6487f36a1f75ae39ae56c70f0cd2fbd",
|
| 61 |
+
"https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb",
|
| 62 |
+
"https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4",
|
| 63 |
+
"https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6",
|
| 64 |
+
"https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f",
|
| 65 |
+
"https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108",
|
| 66 |
+
"https://bcr.bazel.build/modules/googletest/1.17.0/MODULE.bazel": "dbec758171594a705933a29fcf69293d2468c49ec1f2ebca65c36f504d72df46",
|
| 67 |
+
"https://bcr.bazel.build/modules/googletest/1.17.0/source.json": "38e4454b25fc30f15439c0378e57909ab1fd0a443158aa35aec685da727cd713",
|
| 68 |
+
"https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075",
|
| 69 |
+
"https://bcr.bazel.build/modules/jsoncpp/1.9.6/MODULE.bazel": "2f8d20d3b7d54143213c4dfc3d98225c42de7d666011528dc8fe91591e2e17b0",
|
| 70 |
+
"https://bcr.bazel.build/modules/jsoncpp/1.9.6/source.json": "a04756d367a2126c3541682864ecec52f92cdee80a35735a3cb249ce015ca000",
|
| 71 |
+
"https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902",
|
| 72 |
+
"https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74",
|
| 73 |
+
"https://bcr.bazel.build/modules/nlohmann_json/3.6.1/source.json": "f448c6e8963fdfa7eb831457df83ad63d3d6355018f6574fb017e8169deb43a9",
|
| 74 |
+
"https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5",
|
| 75 |
+
"https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f",
|
| 76 |
+
"https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee",
|
| 77 |
+
"https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37",
|
| 78 |
+
"https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615",
|
| 79 |
+
"https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814",
|
| 80 |
+
"https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d",
|
| 81 |
+
"https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc",
|
| 82 |
+
"https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580",
|
| 83 |
+
"https://bcr.bazel.build/modules/platforms/1.0.0/source.json": "f4ff1fd412e0246fd38c82328eb209130ead81d62dcd5a9e40910f867f733d96",
|
| 84 |
+
"https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7",
|
| 85 |
+
"https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c",
|
| 86 |
+
"https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df",
|
| 87 |
+
"https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92",
|
| 88 |
+
"https://bcr.bazel.build/modules/protobuf/29.1/MODULE.bazel": "557c3457560ff49e122ed76c0bc3397a64af9574691cb8201b4e46d4ab2ecb95",
|
| 89 |
+
"https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0",
|
| 90 |
+
"https://bcr.bazel.build/modules/protobuf/32.1/MODULE.bazel": "89cd2866a9cb07fee9ff74c41ceace11554f32e0d849de4e23ac55515cfada4d",
|
| 91 |
+
"https://bcr.bazel.build/modules/protobuf/33.4/MODULE.bazel": "114775b816b38b6d0ca620450d6b02550c60ceedfdc8d9a229833b34a223dc42",
|
| 92 |
+
"https://bcr.bazel.build/modules/protobuf/33.4/source.json": "555f8686b4c7d6b5ba731fbea13bf656b4bfd9a7ff629c1d9d3f6e1d6155de79",
|
| 93 |
+
"https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e",
|
| 94 |
+
"https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34",
|
| 95 |
+
"https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/source.json": "6900fdc8a9e95866b8c0d4ad4aba4d4236317b5c1cd04c502df3f0d33afed680",
|
| 96 |
+
"https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206",
|
| 97 |
+
"https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/MODULE.bazel": "b4963dda9b31080be1905ef085ecd7dd6cd47c05c79b9cdf83ade83ab2ab271a",
|
| 98 |
+
"https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/source.json": "2ff292be6ef3340325ce8a045ecc326e92cbfab47c7cbab4bd85d28971b97ac4",
|
| 99 |
+
"https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa",
|
| 100 |
+
"https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8",
|
| 101 |
+
"https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e",
|
| 102 |
+
"https://bcr.bazel.build/modules/rules_apple/3.16.0/MODULE.bazel": "0d1caf0b8375942ce98ea944be754a18874041e4e0459401d925577624d3a54a",
|
| 103 |
+
"https://bcr.bazel.build/modules/rules_apple/4.1.0/MODULE.bazel": "76e10fd4a48038d3fc7c5dc6e63b7063bbf5304a2e3bd42edda6ec660eebea68",
|
| 104 |
+
"https://bcr.bazel.build/modules/rules_apple/4.1.0/source.json": "8ee81e1708756f81b343a5eb2b2f0b953f1d25c4ab3d4a68dc02754872e80715",
|
| 105 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647",
|
| 106 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002",
|
| 107 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191",
|
| 108 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc",
|
| 109 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87",
|
| 110 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a",
|
| 111 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c",
|
| 112 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f",
|
| 113 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e",
|
| 114 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5",
|
| 115 |
+
"https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513",
|
| 116 |
+
"https://bcr.bazel.build/modules/rules_cc/0.1.2/MODULE.bazel": "557ddc3a96858ec0d465a87c0a931054d7dcfd6583af2c7ed3baf494407fd8d0",
|
| 117 |
+
"https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8",
|
| 118 |
+
"https://bcr.bazel.build/modules/rules_cc/0.2.0/MODULE.bazel": "b5c17f90458caae90d2ccd114c81970062946f49f355610ed89bebf954f5783c",
|
| 119 |
+
"https://bcr.bazel.build/modules/rules_cc/0.2.13/MODULE.bazel": "eecdd666eda6be16a8d9dc15e44b5c75133405e820f620a234acc4b1fdc5aa37",
|
| 120 |
+
"https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4",
|
| 121 |
+
"https://bcr.bazel.build/modules/rules_cc/0.2.17/MODULE.bazel": "1849602c86cb60da8613d2de887f9566a6d354a6df6d7009f9d04a14402f9a84",
|
| 122 |
+
"https://bcr.bazel.build/modules/rules_cc/0.2.17/source.json": "3832f45d145354049137c0090df04629d9c2b5493dc5c2bf46f1834040133a07",
|
| 123 |
+
"https://bcr.bazel.build/modules/rules_cc/0.2.8/MODULE.bazel": "f1df20f0bf22c28192a794f29b501ee2018fa37a3862a1a2132ae2940a23a642",
|
| 124 |
+
"https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6",
|
| 125 |
+
"https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8",
|
| 126 |
+
"https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74",
|
| 127 |
+
"https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86",
|
| 128 |
+
"https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31",
|
| 129 |
+
"https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a",
|
| 130 |
+
"https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6",
|
| 131 |
+
"https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab",
|
| 132 |
+
"https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe",
|
| 133 |
+
"https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017",
|
| 134 |
+
"https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939",
|
| 135 |
+
"https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2",
|
| 136 |
+
"https://bcr.bazel.build/modules/rules_java/9.0.3/MODULE.bazel": "1f98ed015f7e744a745e0df6e898a7c5e83562d6b759dfd475c76456dda5ccea",
|
| 137 |
+
"https://bcr.bazel.build/modules/rules_java/9.0.3/source.json": "b038c0c07e12e658135bbc32cc1a2ded6e33785105c9d41958014c592de4593e",
|
| 138 |
+
"https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7",
|
| 139 |
+
"https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909",
|
| 140 |
+
"https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036",
|
| 141 |
+
"https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0",
|
| 142 |
+
"https://bcr.bazel.build/modules/rules_jvm_external/6.7/MODULE.bazel": "e717beabc4d091ecb2c803c2d341b88590e9116b8bf7947915eeb33aab4f96dd",
|
| 143 |
+
"https://bcr.bazel.build/modules/rules_jvm_external/6.7/source.json": "5426f412d0a7fc6b611643376c7e4a82dec991491b9ce5cb1cfdd25fe2e92be4",
|
| 144 |
+
"https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3",
|
| 145 |
+
"https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5",
|
| 146 |
+
"https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0",
|
| 147 |
+
"https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d",
|
| 148 |
+
"https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c",
|
| 149 |
+
"https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb",
|
| 150 |
+
"https://bcr.bazel.build/modules/rules_nodejs/6.7.3/MODULE.bazel": "c22a48b2a0dbf05a9dc5f83837bbc24c226c1f6e618de3c3a610044c9f336056",
|
| 151 |
+
"https://bcr.bazel.build/modules/rules_nodejs/6.7.3/source.json": "a3f966f4415a8a6545e560ee5449eac95cc633f96429d08e87c87775c72f5e09",
|
| 152 |
+
"https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc",
|
| 153 |
+
"https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff",
|
| 154 |
+
"https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a",
|
| 155 |
+
"https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06",
|
| 156 |
+
"https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7",
|
| 157 |
+
"https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483",
|
| 158 |
+
"https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73",
|
| 159 |
+
"https://bcr.bazel.build/modules/rules_proto/7.1.0/MODULE.bazel": "002d62d9108f75bb807cd56245d45648f38275cb3a99dcd45dfb864c5d74cb96",
|
| 160 |
+
"https://bcr.bazel.build/modules/rules_proto/7.1.0/source.json": "39f89066c12c24097854e8f57ab8558929f9c8d474d34b2c00ac04630ad8940e",
|
| 161 |
+
"https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f",
|
| 162 |
+
"https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300",
|
| 163 |
+
"https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382",
|
| 164 |
+
"https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed",
|
| 165 |
+
"https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58",
|
| 166 |
+
"https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937",
|
| 167 |
+
"https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c",
|
| 168 |
+
"https://bcr.bazel.build/modules/rules_python/1.3.0/MODULE.bazel": "8361d57eafb67c09b75bf4bbe6be360e1b8f4f18118ab48037f2bd50aa2ccb13",
|
| 169 |
+
"https://bcr.bazel.build/modules/rules_python/1.4.1/MODULE.bazel": "8991ad45bdc25018301d6b7e1d3626afc3c8af8aaf4bc04f23d0b99c938b73a6",
|
| 170 |
+
"https://bcr.bazel.build/modules/rules_python/1.6.0/MODULE.bazel": "7e04ad8f8d5bea40451cf80b1bd8262552aa73f841415d20db96b7241bd027d8",
|
| 171 |
+
"https://bcr.bazel.build/modules/rules_python/1.7.0/MODULE.bazel": "d01f995ecd137abf30238ad9ce97f8fc3ac57289c8b24bd0bf53324d937a14f8",
|
| 172 |
+
"https://bcr.bazel.build/modules/rules_python/1.8.4/MODULE.bazel": "33e3971e66161a3e955f7a0d411a8d1f291c4ce4c561851512466f3c77ff8ece",
|
| 173 |
+
"https://bcr.bazel.build/modules/rules_python/1.8.4/source.json": "9fbc0e57bae52cddcc3831d668bce87a47e0c655104a85098d4459dd9a3b0a10",
|
| 174 |
+
"https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c",
|
| 175 |
+
"https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b",
|
| 176 |
+
"https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592",
|
| 177 |
+
"https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b",
|
| 178 |
+
"https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c",
|
| 179 |
+
"https://bcr.bazel.build/modules/rules_swift/1.16.0/MODULE.bazel": "4a09f199545a60d09895e8281362b1ff3bb08bbde69c6fc87aff5b92fcc916ca",
|
| 180 |
+
"https://bcr.bazel.build/modules/rules_swift/2.1.1/MODULE.bazel": "494900a80f944fc7aa61500c2073d9729dff0b764f0e89b824eb746959bc1046",
|
| 181 |
+
"https://bcr.bazel.build/modules/rules_swift/2.4.0/MODULE.bazel": "1639617eb1ede28d774d967a738b4a68b0accb40650beadb57c21846beab5efd",
|
| 182 |
+
"https://bcr.bazel.build/modules/rules_swift/3.1.2/MODULE.bazel": "72c8f5cf9d26427cee6c76c8e3853eb46ce6b0412a081b2b6db6e8ad56267400",
|
| 183 |
+
"https://bcr.bazel.build/modules/rules_swift/3.1.2/source.json": "e85761f3098a6faf40b8187695e3de6d97944e98abd0d8ce579cb2daf6319a66",
|
| 184 |
+
"https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8",
|
| 185 |
+
"https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c",
|
| 186 |
+
"https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c",
|
| 187 |
+
"https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5",
|
| 188 |
+
"https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216",
|
| 189 |
+
"https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/MODULE.bazel": "5e463fbfba7b1701d957555ed45097d7f984211330106ccd1352c6e0af0dcf91",
|
| 190 |
+
"https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/MODULE.bazel": "75aab2373a4bbe2a1260b9bf2a1ebbdbf872d3bd36f80bff058dccd82e89422f",
|
| 191 |
+
"https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/source.json": "5fba48bbe0ba48761f9e9f75f92876cafb5d07c0ce059cc7a8027416de94a05b",
|
| 192 |
+
"https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
|
| 193 |
+
"https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0",
|
| 194 |
+
"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca",
|
| 195 |
+
"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806",
|
| 196 |
+
"https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198"
|
| 197 |
+
},
|
| 198 |
+
"selectedYankedVersions": {},
|
| 199 |
+
"moduleExtensions": {
|
| 200 |
+
"//:emscripten_cache.bzl%emscripten_cache": {
|
| 201 |
+
"general": {
|
| 202 |
+
"bzlTransitiveDigest": "uqDvXmpTNqW4+ie/Fk+xC3TrFrKvL+9hNtoP51Kt2oo=",
|
| 203 |
+
"usagesDigest": "2qVsvZklnwlZ7gkNiyfxbnTnwQ93DBYiQhQ7ehZ6ELY=",
|
| 204 |
+
"recordedInputs": [],
|
| 205 |
+
"generatedRepoSpecs": {
|
| 206 |
+
"emscripten_cache": {
|
| 207 |
+
"repoRuleId": "@@//:emscripten_cache.bzl%_emscripten_cache_repository",
|
| 208 |
+
"attributes": {
|
| 209 |
+
"configuration": [],
|
| 210 |
+
"targets": []
|
| 211 |
+
}
|
| 212 |
+
}
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"//:emscripten_deps.bzl%emscripten_deps": {
|
| 217 |
+
"general": {
|
| 218 |
+
"bzlTransitiveDigest": "5gG+KTOZ6nqp/qZaD6/mfscAsBHNpT+t597YA0FT+u4=",
|
| 219 |
+
"usagesDigest": "ayjHq8MW8DUqj05aCGk6Qn8GtQ/9ny5iBj0yYg8JTnA=",
|
| 220 |
+
"recordedInputs": [
|
| 221 |
+
"REPO_MAPPING:,bazel_tools bazel_tools",
|
| 222 |
+
"REPO_MAPPING:,rules_cc rules_cc+",
|
| 223 |
+
"REPO_MAPPING:bazel_features+,bazel_features_globals bazel_features++version_extension+bazel_features_globals",
|
| 224 |
+
"REPO_MAPPING:bazel_features+,bazel_features_version bazel_features++version_extension+bazel_features_version",
|
| 225 |
+
"REPO_MAPPING:protobuf+,proto_bazel_features bazel_features+",
|
| 226 |
+
"REPO_MAPPING:rules_cc+,bazel_skylib bazel_skylib+",
|
| 227 |
+
"REPO_MAPPING:rules_cc+,bazel_tools bazel_tools",
|
| 228 |
+
"REPO_MAPPING:rules_cc+,cc_compatibility_proxy rules_cc++compatibility_proxy+cc_compatibility_proxy",
|
| 229 |
+
"REPO_MAPPING:rules_cc+,com_google_protobuf protobuf+",
|
| 230 |
+
"REPO_MAPPING:rules_cc+,platforms platforms",
|
| 231 |
+
"REPO_MAPPING:rules_cc+,rules_cc rules_cc+",
|
| 232 |
+
"REPO_MAPPING:rules_cc++compatibility_proxy+cc_compatibility_proxy,rules_cc rules_cc+"
|
| 233 |
+
],
|
| 234 |
+
"generatedRepoSpecs": {
|
| 235 |
+
"emscripten_bin_linux": {
|
| 236 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 237 |
+
"attributes": {
|
| 238 |
+
"build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
|
| 239 |
+
"sha256": "dac0c07aaa3558b564b1252764b1b1aca3136bee34f54bb50130bb7bee124d7a",
|
| 240 |
+
"strip_prefix": "install",
|
| 241 |
+
"type": "tar.xz",
|
| 242 |
+
"url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/54d45123d7ad4aa96ce57e74a1f3f9d1c54e6402/wasm-binaries.tar.xz"
|
| 243 |
+
}
|
| 244 |
+
},
|
| 245 |
+
"emscripten_bin_linux_arm64": {
|
| 246 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 247 |
+
"attributes": {
|
| 248 |
+
"build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
|
| 249 |
+
"sha256": "0c632bf6a185906036edea8b39bc4658193674a27221c0f07d8c9b10ce5b3b9c",
|
| 250 |
+
"strip_prefix": "install",
|
| 251 |
+
"type": "tar.xz",
|
| 252 |
+
"url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/54d45123d7ad4aa96ce57e74a1f3f9d1c54e6402/wasm-binaries-arm64.tar.xz"
|
| 253 |
+
}
|
| 254 |
+
},
|
| 255 |
+
"emscripten_bin_mac": {
|
| 256 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 257 |
+
"attributes": {
|
| 258 |
+
"build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
|
| 259 |
+
"sha256": "61c2d4ae5fc3cf601d8cd7291a9fc6a5cbf0e5e20ba7129ad172a7b0c9a8416b",
|
| 260 |
+
"strip_prefix": "install",
|
| 261 |
+
"type": "tar.xz",
|
| 262 |
+
"url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/54d45123d7ad4aa96ce57e74a1f3f9d1c54e6402/wasm-binaries.tar.xz"
|
| 263 |
+
}
|
| 264 |
+
},
|
| 265 |
+
"emscripten_bin_mac_arm64": {
|
| 266 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 267 |
+
"attributes": {
|
| 268 |
+
"build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
|
| 269 |
+
"sha256": "6246ab40dc94e1df47c6df41f8ebd2473dfa1c74b7079ff67c2fb1793bb87ea8",
|
| 270 |
+
"strip_prefix": "install",
|
| 271 |
+
"type": "tar.xz",
|
| 272 |
+
"url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/54d45123d7ad4aa96ce57e74a1f3f9d1c54e6402/wasm-binaries-arm64.tar.xz"
|
| 273 |
+
}
|
| 274 |
+
},
|
| 275 |
+
"emscripten_bin_win": {
|
| 276 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 277 |
+
"attributes": {
|
| 278 |
+
"build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang.exe\",\n \"bin/clang++.exe\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang.exe\",\n \"bin/llvm-ar.exe\",\n \"bin/llvm-dwarfdump.exe\",\n \"bin/llvm-nm.exe\",\n \"bin/llvm-objcopy.exe\",\n \"bin/wasm-ctor-eval.exe\",\n \"bin/wasm-emscripten-finalize.exe\",\n \"bin/wasm-ld.exe\",\n \"bin/wasm-metadce.exe\",\n \"bin/wasm-opt.exe\",\n \"bin/wasm-split.exe\",\n \"bin/wasm2js.exe\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar.exe\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
|
| 279 |
+
"sha256": "b5863a51fc5c2227a2a743fb18da70e4b6f1b9ddc0fe4243f99cc8bca783bbde",
|
| 280 |
+
"strip_prefix": "install",
|
| 281 |
+
"type": "zip",
|
| 282 |
+
"url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/win/54d45123d7ad4aa96ce57e74a1f3f9d1c54e6402/wasm-binaries.zip"
|
| 283 |
+
}
|
| 284 |
+
}
|
| 285 |
+
}
|
| 286 |
+
}
|
| 287 |
+
},
|
| 288 |
+
"@@pybind11_bazel+//:internal_configure.bzl%internal_configure_extension": {
|
| 289 |
+
"general": {
|
| 290 |
+
"bzlTransitiveDigest": "06cynZ1bCvvy8zHPrrDlXq+Z68xmjctHpfFxi+zEpJY=",
|
| 291 |
+
"usagesDigest": "D1r3lfzMuUBFxgG8V6o0bQTLMk3GkaGOaPzw53wrwyw=",
|
| 292 |
+
"recordedInputs": [
|
| 293 |
+
"REPO_MAPPING:pybind11_bazel+,bazel_tools bazel_tools",
|
| 294 |
+
"FILE:@@pybind11_bazel+//MODULE.bazel e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34"
|
| 295 |
+
],
|
| 296 |
+
"generatedRepoSpecs": {
|
| 297 |
+
"pybind11": {
|
| 298 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 299 |
+
"attributes": {
|
| 300 |
+
"build_file": "@@pybind11_bazel+//:pybind11-BUILD.bazel",
|
| 301 |
+
"strip_prefix": "pybind11-2.12.0",
|
| 302 |
+
"urls": [
|
| 303 |
+
"https://github.com/pybind/pybind11/archive/v2.12.0.zip"
|
| 304 |
+
]
|
| 305 |
+
}
|
| 306 |
+
}
|
| 307 |
+
}
|
| 308 |
+
}
|
| 309 |
+
},
|
| 310 |
+
"@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": {
|
| 311 |
+
"general": {
|
| 312 |
+
"bzlTransitiveDigest": "ABI1D/sbS1ovwaW/kHDoj8nnXjQ0oKU9fzmzEG4iT8o=",
|
| 313 |
+
"usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=",
|
| 314 |
+
"recordedInputs": [
|
| 315 |
+
"REPO_MAPPING:rules_kotlin+,bazel_tools bazel_tools"
|
| 316 |
+
],
|
| 317 |
+
"generatedRepoSpecs": {
|
| 318 |
+
"com_github_jetbrains_kotlin_git": {
|
| 319 |
+
"repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository",
|
| 320 |
+
"attributes": {
|
| 321 |
+
"urls": [
|
| 322 |
+
"https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip"
|
| 323 |
+
],
|
| 324 |
+
"sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88"
|
| 325 |
+
}
|
| 326 |
+
},
|
| 327 |
+
"com_github_jetbrains_kotlin": {
|
| 328 |
+
"repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository",
|
| 329 |
+
"attributes": {
|
| 330 |
+
"git_repository_name": "com_github_jetbrains_kotlin_git",
|
| 331 |
+
"compiler_version": "1.9.23"
|
| 332 |
+
}
|
| 333 |
+
},
|
| 334 |
+
"com_github_google_ksp": {
|
| 335 |
+
"repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository",
|
| 336 |
+
"attributes": {
|
| 337 |
+
"urls": [
|
| 338 |
+
"https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip"
|
| 339 |
+
],
|
| 340 |
+
"sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d",
|
| 341 |
+
"strip_version": "1.9.23-1.0.20"
|
| 342 |
+
}
|
| 343 |
+
},
|
| 344 |
+
"com_github_pinterest_ktlint": {
|
| 345 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file",
|
| 346 |
+
"attributes": {
|
| 347 |
+
"sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985",
|
| 348 |
+
"urls": [
|
| 349 |
+
"https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint"
|
| 350 |
+
],
|
| 351 |
+
"executable": true
|
| 352 |
+
}
|
| 353 |
+
},
|
| 354 |
+
"rules_android": {
|
| 355 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 356 |
+
"attributes": {
|
| 357 |
+
"sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806",
|
| 358 |
+
"strip_prefix": "rules_android-0.1.1",
|
| 359 |
+
"urls": [
|
| 360 |
+
"https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"
|
| 361 |
+
]
|
| 362 |
+
}
|
| 363 |
+
}
|
| 364 |
+
}
|
| 365 |
+
}
|
| 366 |
+
},
|
| 367 |
+
"@@rules_nodejs+//nodejs:extensions.bzl%node": {
|
| 368 |
+
"general": {
|
| 369 |
+
"bzlTransitiveDigest": "4pUxCNc22K4I+6+4Nxu52Hur12tFRfa1JMsN5mdDv60=",
|
| 370 |
+
"usagesDigest": "UbyXWIWurUiDMKZYdqsdwuN77fDUNQtz3tjbGgBT7ho=",
|
| 371 |
+
"recordedInputs": [],
|
| 372 |
+
"generatedRepoSpecs": {
|
| 373 |
+
"nodejs_linux_amd64": {
|
| 374 |
+
"repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
|
| 375 |
+
"attributes": {
|
| 376 |
+
"node_download_auth": {},
|
| 377 |
+
"node_repositories": {},
|
| 378 |
+
"node_urls": [
|
| 379 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 380 |
+
],
|
| 381 |
+
"node_version": "20.18.0",
|
| 382 |
+
"include_headers": false,
|
| 383 |
+
"platform": "linux_amd64"
|
| 384 |
+
}
|
| 385 |
+
},
|
| 386 |
+
"nodejs_linux_arm64": {
|
| 387 |
+
"repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
|
| 388 |
+
"attributes": {
|
| 389 |
+
"node_download_auth": {},
|
| 390 |
+
"node_repositories": {},
|
| 391 |
+
"node_urls": [
|
| 392 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 393 |
+
],
|
| 394 |
+
"node_version": "20.18.0",
|
| 395 |
+
"include_headers": false,
|
| 396 |
+
"platform": "linux_arm64"
|
| 397 |
+
}
|
| 398 |
+
},
|
| 399 |
+
"nodejs_linux_s390x": {
|
| 400 |
+
"repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
|
| 401 |
+
"attributes": {
|
| 402 |
+
"node_download_auth": {},
|
| 403 |
+
"node_repositories": {},
|
| 404 |
+
"node_urls": [
|
| 405 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 406 |
+
],
|
| 407 |
+
"node_version": "20.18.0",
|
| 408 |
+
"include_headers": false,
|
| 409 |
+
"platform": "linux_s390x"
|
| 410 |
+
}
|
| 411 |
+
},
|
| 412 |
+
"nodejs_linux_ppc64le": {
|
| 413 |
+
"repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
|
| 414 |
+
"attributes": {
|
| 415 |
+
"node_download_auth": {},
|
| 416 |
+
"node_repositories": {},
|
| 417 |
+
"node_urls": [
|
| 418 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 419 |
+
],
|
| 420 |
+
"node_version": "20.18.0",
|
| 421 |
+
"include_headers": false,
|
| 422 |
+
"platform": "linux_ppc64le"
|
| 423 |
+
}
|
| 424 |
+
},
|
| 425 |
+
"nodejs_darwin_amd64": {
|
| 426 |
+
"repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
|
| 427 |
+
"attributes": {
|
| 428 |
+
"node_download_auth": {},
|
| 429 |
+
"node_repositories": {},
|
| 430 |
+
"node_urls": [
|
| 431 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 432 |
+
],
|
| 433 |
+
"node_version": "20.18.0",
|
| 434 |
+
"include_headers": false,
|
| 435 |
+
"platform": "darwin_amd64"
|
| 436 |
+
}
|
| 437 |
+
},
|
| 438 |
+
"nodejs_darwin_arm64": {
|
| 439 |
+
"repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
|
| 440 |
+
"attributes": {
|
| 441 |
+
"node_download_auth": {},
|
| 442 |
+
"node_repositories": {},
|
| 443 |
+
"node_urls": [
|
| 444 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 445 |
+
],
|
| 446 |
+
"node_version": "20.18.0",
|
| 447 |
+
"include_headers": false,
|
| 448 |
+
"platform": "darwin_arm64"
|
| 449 |
+
}
|
| 450 |
+
},
|
| 451 |
+
"nodejs_windows_amd64": {
|
| 452 |
+
"repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
|
| 453 |
+
"attributes": {
|
| 454 |
+
"node_download_auth": {},
|
| 455 |
+
"node_repositories": {},
|
| 456 |
+
"node_urls": [
|
| 457 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 458 |
+
],
|
| 459 |
+
"node_version": "20.18.0",
|
| 460 |
+
"include_headers": false,
|
| 461 |
+
"platform": "windows_amd64"
|
| 462 |
+
}
|
| 463 |
+
},
|
| 464 |
+
"nodejs_windows_arm64": {
|
| 465 |
+
"repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
|
| 466 |
+
"attributes": {
|
| 467 |
+
"node_download_auth": {},
|
| 468 |
+
"node_repositories": {},
|
| 469 |
+
"node_urls": [
|
| 470 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 471 |
+
],
|
| 472 |
+
"node_version": "20.18.0",
|
| 473 |
+
"include_headers": false,
|
| 474 |
+
"platform": "windows_arm64"
|
| 475 |
+
}
|
| 476 |
+
},
|
| 477 |
+
"nodejs": {
|
| 478 |
+
"repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias",
|
| 479 |
+
"attributes": {
|
| 480 |
+
"user_node_repository_name": "nodejs"
|
| 481 |
+
}
|
| 482 |
+
},
|
| 483 |
+
"nodejs_host": {
|
| 484 |
+
"repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias",
|
| 485 |
+
"attributes": {
|
| 486 |
+
"user_node_repository_name": "nodejs"
|
| 487 |
+
}
|
| 488 |
+
},
|
| 489 |
+
"nodejs_toolchains": {
|
| 490 |
+
"repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_toolchains_repo.bzl%nodejs_toolchains_repo",
|
| 491 |
+
"attributes": {
|
| 492 |
+
"user_node_repository_name": "nodejs"
|
| 493 |
+
}
|
| 494 |
+
}
|
| 495 |
+
}
|
| 496 |
+
}
|
| 497 |
+
},
|
| 498 |
+
"@@rules_python+//python/extensions:config.bzl%config": {
|
| 499 |
+
"general": {
|
| 500 |
+
"bzlTransitiveDigest": "wUM/eFwo5Zy7rn36nZ9ZxN9tXhmcWMVGXIExerGg6gM=",
|
| 501 |
+
"usagesDigest": "p2al+dDKI5UlCyNvheMVynbWSGbdiji/jMz53fMNfJA=",
|
| 502 |
+
"recordedInputs": [
|
| 503 |
+
"REPO_MAPPING:rules_python+,bazel_tools bazel_tools",
|
| 504 |
+
"REPO_MAPPING:rules_python+,pypi__build rules_python++config+pypi__build",
|
| 505 |
+
"REPO_MAPPING:rules_python+,pypi__click rules_python++config+pypi__click",
|
| 506 |
+
"REPO_MAPPING:rules_python+,pypi__colorama rules_python++config+pypi__colorama",
|
| 507 |
+
"REPO_MAPPING:rules_python+,pypi__importlib_metadata rules_python++config+pypi__importlib_metadata",
|
| 508 |
+
"REPO_MAPPING:rules_python+,pypi__installer rules_python++config+pypi__installer",
|
| 509 |
+
"REPO_MAPPING:rules_python+,pypi__more_itertools rules_python++config+pypi__more_itertools",
|
| 510 |
+
"REPO_MAPPING:rules_python+,pypi__packaging rules_python++config+pypi__packaging",
|
| 511 |
+
"REPO_MAPPING:rules_python+,pypi__pep517 rules_python++config+pypi__pep517",
|
| 512 |
+
"REPO_MAPPING:rules_python+,pypi__pip rules_python++config+pypi__pip",
|
| 513 |
+
"REPO_MAPPING:rules_python+,pypi__pip_tools rules_python++config+pypi__pip_tools",
|
| 514 |
+
"REPO_MAPPING:rules_python+,pypi__pyproject_hooks rules_python++config+pypi__pyproject_hooks",
|
| 515 |
+
"REPO_MAPPING:rules_python+,pypi__setuptools rules_python++config+pypi__setuptools",
|
| 516 |
+
"REPO_MAPPING:rules_python+,pypi__tomli rules_python++config+pypi__tomli",
|
| 517 |
+
"REPO_MAPPING:rules_python+,pypi__wheel rules_python++config+pypi__wheel",
|
| 518 |
+
"REPO_MAPPING:rules_python+,pypi__zipp rules_python++config+pypi__zipp"
|
| 519 |
+
],
|
| 520 |
+
"generatedRepoSpecs": {
|
| 521 |
+
"rules_python_internal": {
|
| 522 |
+
"repoRuleId": "@@rules_python+//python/private:internal_config_repo.bzl%internal_config_repo",
|
| 523 |
+
"attributes": {
|
| 524 |
+
"transition_setting_generators": {},
|
| 525 |
+
"transition_settings": []
|
| 526 |
+
}
|
| 527 |
+
},
|
| 528 |
+
"pypi__build": {
|
| 529 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 530 |
+
"attributes": {
|
| 531 |
+
"url": "https://files.pythonhosted.org/packages/e2/03/f3c8ba0a6b6e30d7d18c40faab90807c9bb5e9a1e3b2fe2008af624a9c97/build-1.2.1-py3-none-any.whl",
|
| 532 |
+
"sha256": "75e10f767a433d9a86e50d83f418e83efc18ede923ee5ff7df93b6cb0306c5d4",
|
| 533 |
+
"type": "zip",
|
| 534 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 535 |
+
}
|
| 536 |
+
},
|
| 537 |
+
"pypi__click": {
|
| 538 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 539 |
+
"attributes": {
|
| 540 |
+
"url": "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl",
|
| 541 |
+
"sha256": "ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28",
|
| 542 |
+
"type": "zip",
|
| 543 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 544 |
+
}
|
| 545 |
+
},
|
| 546 |
+
"pypi__colorama": {
|
| 547 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 548 |
+
"attributes": {
|
| 549 |
+
"url": "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl",
|
| 550 |
+
"sha256": "4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6",
|
| 551 |
+
"type": "zip",
|
| 552 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 553 |
+
}
|
| 554 |
+
},
|
| 555 |
+
"pypi__importlib_metadata": {
|
| 556 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 557 |
+
"attributes": {
|
| 558 |
+
"url": "https://files.pythonhosted.org/packages/2d/0a/679461c511447ffaf176567d5c496d1de27cbe34a87df6677d7171b2fbd4/importlib_metadata-7.1.0-py3-none-any.whl",
|
| 559 |
+
"sha256": "30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570",
|
| 560 |
+
"type": "zip",
|
| 561 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 562 |
+
}
|
| 563 |
+
},
|
| 564 |
+
"pypi__installer": {
|
| 565 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 566 |
+
"attributes": {
|
| 567 |
+
"url": "https://files.pythonhosted.org/packages/e5/ca/1172b6638d52f2d6caa2dd262ec4c811ba59eee96d54a7701930726bce18/installer-0.7.0-py3-none-any.whl",
|
| 568 |
+
"sha256": "05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53",
|
| 569 |
+
"type": "zip",
|
| 570 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 571 |
+
}
|
| 572 |
+
},
|
| 573 |
+
"pypi__more_itertools": {
|
| 574 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 575 |
+
"attributes": {
|
| 576 |
+
"url": "https://files.pythonhosted.org/packages/50/e2/8e10e465ee3987bb7c9ab69efb91d867d93959095f4807db102d07995d94/more_itertools-10.2.0-py3-none-any.whl",
|
| 577 |
+
"sha256": "686b06abe565edfab151cb8fd385a05651e1fdf8f0a14191e4439283421f8684",
|
| 578 |
+
"type": "zip",
|
| 579 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 580 |
+
}
|
| 581 |
+
},
|
| 582 |
+
"pypi__packaging": {
|
| 583 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 584 |
+
"attributes": {
|
| 585 |
+
"url": "https://files.pythonhosted.org/packages/49/df/1fceb2f8900f8639e278b056416d49134fb8d84c5942ffaa01ad34782422/packaging-24.0-py3-none-any.whl",
|
| 586 |
+
"sha256": "2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5",
|
| 587 |
+
"type": "zip",
|
| 588 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 589 |
+
}
|
| 590 |
+
},
|
| 591 |
+
"pypi__pep517": {
|
| 592 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 593 |
+
"attributes": {
|
| 594 |
+
"url": "https://files.pythonhosted.org/packages/25/6e/ca4a5434eb0e502210f591b97537d322546e4833dcb4d470a48c375c5540/pep517-0.13.1-py3-none-any.whl",
|
| 595 |
+
"sha256": "31b206f67165b3536dd577c5c3f1518e8fbaf38cbc57efff8369a392feff1721",
|
| 596 |
+
"type": "zip",
|
| 597 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 598 |
+
}
|
| 599 |
+
},
|
| 600 |
+
"pypi__pip": {
|
| 601 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 602 |
+
"attributes": {
|
| 603 |
+
"url": "https://files.pythonhosted.org/packages/8a/6a/19e9fe04fca059ccf770861c7d5721ab4c2aebc539889e97c7977528a53b/pip-24.0-py3-none-any.whl",
|
| 604 |
+
"sha256": "ba0d021a166865d2265246961bec0152ff124de910c5cc39f1156ce3fa7c69dc",
|
| 605 |
+
"type": "zip",
|
| 606 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 607 |
+
}
|
| 608 |
+
},
|
| 609 |
+
"pypi__pip_tools": {
|
| 610 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 611 |
+
"attributes": {
|
| 612 |
+
"url": "https://files.pythonhosted.org/packages/0d/dc/38f4ce065e92c66f058ea7a368a9c5de4e702272b479c0992059f7693941/pip_tools-7.4.1-py3-none-any.whl",
|
| 613 |
+
"sha256": "4c690e5fbae2f21e87843e89c26191f0d9454f362d8acdbd695716493ec8b3a9",
|
| 614 |
+
"type": "zip",
|
| 615 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 616 |
+
}
|
| 617 |
+
},
|
| 618 |
+
"pypi__pyproject_hooks": {
|
| 619 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 620 |
+
"attributes": {
|
| 621 |
+
"url": "https://files.pythonhosted.org/packages/ae/f3/431b9d5fe7d14af7a32340792ef43b8a714e7726f1d7b69cc4e8e7a3f1d7/pyproject_hooks-1.1.0-py3-none-any.whl",
|
| 622 |
+
"sha256": "7ceeefe9aec63a1064c18d939bdc3adf2d8aa1988a510afec15151578b232aa2",
|
| 623 |
+
"type": "zip",
|
| 624 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 625 |
+
}
|
| 626 |
+
},
|
| 627 |
+
"pypi__setuptools": {
|
| 628 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 629 |
+
"attributes": {
|
| 630 |
+
"url": "https://files.pythonhosted.org/packages/90/99/158ad0609729111163fc1f674a5a42f2605371a4cf036d0441070e2f7455/setuptools-78.1.1-py3-none-any.whl",
|
| 631 |
+
"sha256": "c3a9c4211ff4c309edb8b8c4f1cbfa7ae324c4ba9f91ff254e3d305b9fd54561",
|
| 632 |
+
"type": "zip",
|
| 633 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 634 |
+
}
|
| 635 |
+
},
|
| 636 |
+
"pypi__tomli": {
|
| 637 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 638 |
+
"attributes": {
|
| 639 |
+
"url": "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl",
|
| 640 |
+
"sha256": "939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
|
| 641 |
+
"type": "zip",
|
| 642 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 643 |
+
}
|
| 644 |
+
},
|
| 645 |
+
"pypi__wheel": {
|
| 646 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 647 |
+
"attributes": {
|
| 648 |
+
"url": "https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl",
|
| 649 |
+
"sha256": "55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81",
|
| 650 |
+
"type": "zip",
|
| 651 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 652 |
+
}
|
| 653 |
+
},
|
| 654 |
+
"pypi__zipp": {
|
| 655 |
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
| 656 |
+
"attributes": {
|
| 657 |
+
"url": "https://files.pythonhosted.org/packages/da/55/a03fd7240714916507e1fcf7ae355bd9d9ed2e6db492595f1a67f61681be/zipp-3.18.2-py3-none-any.whl",
|
| 658 |
+
"sha256": "dce197b859eb796242b0622af1b8beb0a722d52aa2f57133ead08edd5bf5374e",
|
| 659 |
+
"type": "zip",
|
| 660 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 661 |
+
}
|
| 662 |
+
}
|
| 663 |
+
}
|
| 664 |
+
}
|
| 665 |
+
},
|
| 666 |
+
"@@rules_python+//python/uv:uv.bzl%uv": {
|
| 667 |
+
"general": {
|
| 668 |
+
"bzlTransitiveDigest": "ijW9KS7qsIY+yBVvJ+Nr1mzwQox09j13DnE3iIwaeTM=",
|
| 669 |
+
"usagesDigest": "/HRt5Hw/vpDr9CDrKEPjeDIjxo4307VLxMu8BNAEDWA=",
|
| 670 |
+
"recordedInputs": [
|
| 671 |
+
"REPO_MAPPING:rules_python+,bazel_tools bazel_tools",
|
| 672 |
+
"REPO_MAPPING:rules_python+,platforms platforms"
|
| 673 |
+
],
|
| 674 |
+
"generatedRepoSpecs": {
|
| 675 |
+
"uv": {
|
| 676 |
+
"repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo",
|
| 677 |
+
"attributes": {
|
| 678 |
+
"toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'",
|
| 679 |
+
"toolchain_names": [
|
| 680 |
+
"none"
|
| 681 |
+
],
|
| 682 |
+
"toolchain_implementations": {
|
| 683 |
+
"none": "'@@rules_python+//python:none'"
|
| 684 |
+
},
|
| 685 |
+
"toolchain_compatible_with": {
|
| 686 |
+
"none": [
|
| 687 |
+
"@platforms//:incompatible"
|
| 688 |
+
]
|
| 689 |
+
},
|
| 690 |
+
"toolchain_target_settings": {}
|
| 691 |
+
}
|
| 692 |
+
}
|
| 693 |
+
}
|
| 694 |
+
}
|
| 695 |
+
}
|
| 696 |
+
},
|
| 697 |
+
"facts": {}
|
| 698 |
+
}
|
bazel/README.md
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Bazel Emscripten toolchain
|
| 2 |
+
|
| 3 |
+
## Setup Instructions
|
| 4 |
+
|
| 5 |
+
Support for depending on emsdk with a WORKSPACE file was removed and last available in [emsdk version 4.0.6](https://github.com/emscripten-core/emsdk/tree/24fc909c0da13ef641d5ae75e89b5a97f25e37aa). Now we only support inclusion as a bzlmod module.
|
| 6 |
+
|
| 7 |
+
In your `MODULE.bazel` file, put:
|
| 8 |
+
```starlark
|
| 9 |
+
emsdk_version = "4.0.6"
|
| 10 |
+
bazel_dep(name = "emsdk", version = emsdk_version)
|
| 11 |
+
git_override(
|
| 12 |
+
module_name = "emsdk",
|
| 13 |
+
remote = "https://github.com/emscripten-core/emsdk.git",
|
| 14 |
+
strip_prefix = "bazel",
|
| 15 |
+
tag = emsdk_version,
|
| 16 |
+
)
|
| 17 |
+
```
|
| 18 |
+
|
| 19 |
+
You can use a different version of this SDK by changing it in your `MODULE.bazel` file. The Emscripten version is by default the same as the SDK version, but you can use a different one as well by adding to your `MODULE.bazel`:
|
| 20 |
+
|
| 21 |
+
```
|
| 22 |
+
emscripten_deps = use_extension(
|
| 23 |
+
"@emsdk//:emscripten_deps.bzl",
|
| 24 |
+
"emscripten_deps",
|
| 25 |
+
)
|
| 26 |
+
emscripten_deps.config(version = "4.0.1")
|
| 27 |
+
```
|
| 28 |
+
|
| 29 |
+
## Building
|
| 30 |
+
|
| 31 |
+
Put the following line into your `.bazelrc`:
|
| 32 |
+
|
| 33 |
+
```
|
| 34 |
+
build --incompatible_enable_cc_toolchain_resolution
|
| 35 |
+
```
|
| 36 |
+
|
| 37 |
+
Then write a new rule wrapping your `cc_binary`.
|
| 38 |
+
|
| 39 |
+
```starlark
|
| 40 |
+
load("@rules_cc//cc:defs.bzl", "cc_binary")
|
| 41 |
+
load("@emsdk//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary")
|
| 42 |
+
|
| 43 |
+
cc_binary(
|
| 44 |
+
name = "hello-world",
|
| 45 |
+
srcs = ["hello-world.cc"],
|
| 46 |
+
)
|
| 47 |
+
|
| 48 |
+
wasm_cc_binary(
|
| 49 |
+
name = "hello-world-wasm",
|
| 50 |
+
cc_target = ":hello-world",
|
| 51 |
+
)
|
| 52 |
+
```
|
| 53 |
+
|
| 54 |
+
Now you can run `bazel build :hello-world-wasm`. The result of this build will
|
| 55 |
+
be the individual files produced by emscripten. Note that some of these files
|
| 56 |
+
may be empty. This is because bazel has no concept of optional outputs for
|
| 57 |
+
rules.
|
| 58 |
+
|
| 59 |
+
`wasm_cc_binary` uses transition to use emscripten toolchain on `cc_target`
|
| 60 |
+
and all of its dependencies, and does not require amending `.bazelrc`. This
|
| 61 |
+
is the preferred way, since it also unpacks the resulting tarball.
|
| 62 |
+
|
| 63 |
+
The Emscripten cache shipped by default does not include LTO, 64-bit or PIC
|
| 64 |
+
builds of the system libraries and ports. If you wish to use these features you
|
| 65 |
+
will need to declare the cache in your `MODULE.bazel` as follows. Note
|
| 66 |
+
that the configuration consists of the same flags that can be passed to
|
| 67 |
+
embuilder. If `targets` is not set, all system libraries and ports will be
|
| 68 |
+
built, i.e., the `ALL` option to embuilder.
|
| 69 |
+
|
| 70 |
+
```starlark
|
| 71 |
+
emscripten_cache = use_extension(
|
| 72 |
+
"@emsdk//:emscripten_cache.bzl",
|
| 73 |
+
"emscripten_cache",
|
| 74 |
+
)
|
| 75 |
+
emscripten_cache.configuration(flags = ["--lto"])
|
| 76 |
+
emscripten_cache.targets(targets = [
|
| 77 |
+
"libprintf_long_double-debug",
|
| 78 |
+
"libstubs-debug",
|
| 79 |
+
"libnoexit",
|
| 80 |
+
"libc-debug",
|
| 81 |
+
"libdlmalloc",
|
| 82 |
+
"libcompiler_rt",
|
| 83 |
+
"libc++-noexcept",
|
| 84 |
+
"libc++abi-debug-noexcept",
|
| 85 |
+
"libsockets"
|
| 86 |
+
])
|
| 87 |
+
```
|
| 88 |
+
|
| 89 |
+
See `test_external/` for an example using [embind](https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html).
|
bazel/bazelrc
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
build:wasm --incompatible_enable_cc_toolchain_resolution
|
| 2 |
+
build:wasm --platforms=@emsdk//:platform_wasm
|
bazel/emscripten_build_file.bzl
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""A templated build file for emscripten repositories"""
|
| 2 |
+
|
| 3 |
+
EMSCRIPTEN_BUILD_FILE_CONTENT_TEMPLATE = """
|
| 4 |
+
package(default_visibility = ['//visibility:public'])
|
| 5 |
+
|
| 6 |
+
filegroup(
|
| 7 |
+
name = "all",
|
| 8 |
+
srcs = glob(["**"]),
|
| 9 |
+
)
|
| 10 |
+
|
| 11 |
+
filegroup(
|
| 12 |
+
name = "includes",
|
| 13 |
+
srcs = glob([
|
| 14 |
+
"emscripten/cache/sysroot/include/c++/v1/**",
|
| 15 |
+
"emscripten/cache/sysroot/include/compat/**",
|
| 16 |
+
"emscripten/cache/sysroot/include/**",
|
| 17 |
+
"lib/clang/**/include/**",
|
| 18 |
+
]),
|
| 19 |
+
)
|
| 20 |
+
|
| 21 |
+
filegroup(
|
| 22 |
+
name = "emcc_common",
|
| 23 |
+
srcs = [
|
| 24 |
+
"emscripten/emcc.py",
|
| 25 |
+
"emscripten/embuilder.py",
|
| 26 |
+
"emscripten/emscripten-version.txt",
|
| 27 |
+
"emscripten/cache/sysroot_install.stamp",
|
| 28 |
+
"emscripten/src/settings.js",
|
| 29 |
+
"emscripten/src/settings_internal.js",
|
| 30 |
+
] + glob(
|
| 31 |
+
include = [
|
| 32 |
+
"emscripten/third_party/**",
|
| 33 |
+
"emscripten/tools/**",
|
| 34 |
+
],
|
| 35 |
+
exclude = [
|
| 36 |
+
"**/__pycache__/**",
|
| 37 |
+
],
|
| 38 |
+
),
|
| 39 |
+
)
|
| 40 |
+
|
| 41 |
+
filegroup(
|
| 42 |
+
name = "compiler_files",
|
| 43 |
+
srcs = [
|
| 44 |
+
"bin/clang{bin_extension}",
|
| 45 |
+
"bin/clang++{bin_extension}",
|
| 46 |
+
":emcc_common",
|
| 47 |
+
":includes",
|
| 48 |
+
],
|
| 49 |
+
)
|
| 50 |
+
|
| 51 |
+
filegroup(
|
| 52 |
+
name = "linker_files",
|
| 53 |
+
srcs = [
|
| 54 |
+
"bin/clang{bin_extension}",
|
| 55 |
+
"bin/llvm-ar{bin_extension}",
|
| 56 |
+
"bin/llvm-dwarfdump{bin_extension}",
|
| 57 |
+
"bin/llvm-nm{bin_extension}",
|
| 58 |
+
"bin/llvm-objcopy{bin_extension}",
|
| 59 |
+
"bin/wasm-ctor-eval{bin_extension}",
|
| 60 |
+
"bin/wasm-emscripten-finalize{bin_extension}",
|
| 61 |
+
"bin/wasm-ld{bin_extension}",
|
| 62 |
+
"bin/wasm-metadce{bin_extension}",
|
| 63 |
+
"bin/wasm-opt{bin_extension}",
|
| 64 |
+
"bin/wasm-split{bin_extension}",
|
| 65 |
+
"bin/wasm2js{bin_extension}",
|
| 66 |
+
":emcc_common",
|
| 67 |
+
] + glob(
|
| 68 |
+
include = [
|
| 69 |
+
"emscripten/cache/sysroot/lib/**",
|
| 70 |
+
"emscripten/node_modules/**",
|
| 71 |
+
"emscripten/src/**",
|
| 72 |
+
],
|
| 73 |
+
),
|
| 74 |
+
)
|
| 75 |
+
|
| 76 |
+
filegroup(
|
| 77 |
+
name = "ar_files",
|
| 78 |
+
srcs = [
|
| 79 |
+
"bin/llvm-ar{bin_extension}",
|
| 80 |
+
"emscripten/emar.py",
|
| 81 |
+
"emscripten/emscripten-version.txt",
|
| 82 |
+
"emscripten/src/settings.js",
|
| 83 |
+
"emscripten/src/settings_internal.js",
|
| 84 |
+
] + glob(
|
| 85 |
+
include = [
|
| 86 |
+
"emscripten/tools/**",
|
| 87 |
+
],
|
| 88 |
+
exclude = [
|
| 89 |
+
"**/__pycache__/**",
|
| 90 |
+
],
|
| 91 |
+
),
|
| 92 |
+
)
|
| 93 |
+
"""
|
bazel/emscripten_cache.bzl
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
BUILD_FILE_CONTENT_TEMPLATE = """
|
| 2 |
+
package(default_visibility = ['//visibility:public'])
|
| 3 |
+
exports_files(['emscripten_config'])
|
| 4 |
+
"""
|
| 5 |
+
|
| 6 |
+
EMBUILDER_CONFIG_TEMPLATE = """
|
| 7 |
+
CACHE = '{cache}'
|
| 8 |
+
BINARYEN_ROOT = '{binaryen_root}'
|
| 9 |
+
LLVM_ROOT = '{llvm_root}'
|
| 10 |
+
"""
|
| 11 |
+
|
| 12 |
+
def get_root_and_script_ext(repository_ctx):
|
| 13 |
+
if repository_ctx.os.name.startswith("linux"):
|
| 14 |
+
if "amd64" in repository_ctx.os.arch or "x86_64" in repository_ctx.os.arch:
|
| 15 |
+
return (repository_ctx.path(Label("@emscripten_bin_linux//:BUILD.bazel")).dirname, "")
|
| 16 |
+
elif "aarch64" in repository_ctx.os.arch:
|
| 17 |
+
return (repository_ctx.path(Label("@emscripten_bin_linux_arm64//:BUILD.bazel")).dirname, "")
|
| 18 |
+
else:
|
| 19 |
+
fail("Unsupported architecture for Linux")
|
| 20 |
+
elif repository_ctx.os.name.startswith("mac"):
|
| 21 |
+
if "amd64" in repository_ctx.os.arch or "x86_64" in repository_ctx.os.arch:
|
| 22 |
+
return (repository_ctx.path(Label("@emscripten_bin_mac//:BUILD.bazel")).dirname, "")
|
| 23 |
+
elif "aarch64" in repository_ctx.os.arch:
|
| 24 |
+
return (repository_ctx.path(Label("@emscripten_bin_mac_arm64//:BUILD.bazel")).dirname, "")
|
| 25 |
+
else:
|
| 26 |
+
fail("Unsupported architecture for MacOS")
|
| 27 |
+
elif repository_ctx.os.name.startswith("windows"):
|
| 28 |
+
return (repository_ctx.path(Label("@emscripten_bin_win//:BUILD.bazel")).dirname, ".bat")
|
| 29 |
+
else:
|
| 30 |
+
fail("Unsupported operating system")
|
| 31 |
+
|
| 32 |
+
def _emscripten_cache_repository_impl(repository_ctx):
|
| 33 |
+
# Read the default emscripten configuration file
|
| 34 |
+
default_config = repository_ctx.read(
|
| 35 |
+
repository_ctx.path(
|
| 36 |
+
Label("@emsdk//emscripten_toolchain:default_config"),
|
| 37 |
+
),
|
| 38 |
+
)
|
| 39 |
+
|
| 40 |
+
if repository_ctx.attr.targets or repository_ctx.attr.configuration:
|
| 41 |
+
root, script_ext = get_root_and_script_ext(repository_ctx)
|
| 42 |
+
llvm_root = root.get_child("bin")
|
| 43 |
+
cache = repository_ctx.path("cache")
|
| 44 |
+
|
| 45 |
+
# Create configuration file
|
| 46 |
+
embuilder_config_content = EMBUILDER_CONFIG_TEMPLATE.format(
|
| 47 |
+
cache = cache,
|
| 48 |
+
binaryen_root = root,
|
| 49 |
+
llvm_root = llvm_root,
|
| 50 |
+
)
|
| 51 |
+
repository_ctx.file("embuilder_config", embuilder_config_content)
|
| 52 |
+
embuilder_config_path = repository_ctx.path("embuilder_config")
|
| 53 |
+
embuilder_path = "{}{}".format(root.get_child("emscripten").get_child("embuilder"), script_ext)
|
| 54 |
+
|
| 55 |
+
# Prepare the command line
|
| 56 |
+
if repository_ctx.attr.targets:
|
| 57 |
+
targets = repository_ctx.attr.targets
|
| 58 |
+
else:
|
| 59 |
+
# If no targets are requested, build everything
|
| 60 |
+
targets = ["ALL"]
|
| 61 |
+
flags = ["--em-config", embuilder_config_path] + repository_ctx.attr.configuration
|
| 62 |
+
embuilder_args = [embuilder_path] + flags + ["build"] + targets
|
| 63 |
+
|
| 64 |
+
# Run embuilder
|
| 65 |
+
repository_ctx.report_progress("Building secondary cache")
|
| 66 |
+
result = repository_ctx.execute(
|
| 67 |
+
embuilder_args,
|
| 68 |
+
quiet = True,
|
| 69 |
+
environment = {
|
| 70 |
+
"EM_IGNORE_SANITY": "1",
|
| 71 |
+
"EM_NODE_JS": "empty",
|
| 72 |
+
},
|
| 73 |
+
)
|
| 74 |
+
if result.return_code != 0:
|
| 75 |
+
fail("Embuilder exited with a non-zero return code")
|
| 76 |
+
|
| 77 |
+
# Override Emscripten's cache with the secondary cache
|
| 78 |
+
default_config += "CACHE = '{}'\n".format(cache)
|
| 79 |
+
|
| 80 |
+
# Create the configuration file for the toolchain and export
|
| 81 |
+
repository_ctx.file("emscripten_config", default_config)
|
| 82 |
+
repository_ctx.file("BUILD.bazel", BUILD_FILE_CONTENT_TEMPLATE)
|
| 83 |
+
|
| 84 |
+
_emscripten_cache_repository = repository_rule(
|
| 85 |
+
implementation = _emscripten_cache_repository_impl,
|
| 86 |
+
attrs = {
|
| 87 |
+
"configuration": attr.string_list(),
|
| 88 |
+
"targets": attr.string_list(),
|
| 89 |
+
},
|
| 90 |
+
)
|
| 91 |
+
|
| 92 |
+
def _emscripten_cache_impl(ctx):
|
| 93 |
+
all_configuration = []
|
| 94 |
+
all_targets = []
|
| 95 |
+
for mod in ctx.modules:
|
| 96 |
+
for configuration in mod.tags.configuration:
|
| 97 |
+
all_configuration += configuration.flags
|
| 98 |
+
for targets in mod.tags.targets:
|
| 99 |
+
all_targets += targets.targets
|
| 100 |
+
|
| 101 |
+
_emscripten_cache_repository(
|
| 102 |
+
name = "emscripten_cache",
|
| 103 |
+
configuration = all_configuration,
|
| 104 |
+
targets = all_targets,
|
| 105 |
+
)
|
| 106 |
+
|
| 107 |
+
emscripten_cache = module_extension(
|
| 108 |
+
tag_classes = {
|
| 109 |
+
"configuration": tag_class(attrs = {"flags": attr.string_list()}),
|
| 110 |
+
"targets": tag_class(attrs = {"targets": attr.string_list()}),
|
| 111 |
+
},
|
| 112 |
+
implementation = _emscripten_cache_impl,
|
| 113 |
+
)
|
bazel/emscripten_deps.bzl
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
load(":remote_emscripten_repository.bzl", "remote_emscripten_repository")
|
| 2 |
+
load(":revisions.bzl", "EMSCRIPTEN_TAGS")
|
| 3 |
+
|
| 4 |
+
def _parse_version(v):
|
| 5 |
+
return [int(u) for u in v.split(".")]
|
| 6 |
+
|
| 7 |
+
def _empty_repository_impl(ctx):
|
| 8 |
+
ctx.file("MODULE.bazel", """module(name = "{}")""".format(ctx.name))
|
| 9 |
+
ctx.file("BUILD.bazel", "")
|
| 10 |
+
|
| 11 |
+
_empty_repository = repository_rule(
|
| 12 |
+
implementation = _empty_repository_impl,
|
| 13 |
+
)
|
| 14 |
+
|
| 15 |
+
def emscripten_repo_name(name):
|
| 16 |
+
return "emscripten_bin_{}".format(name)
|
| 17 |
+
|
| 18 |
+
def _emscripten_deps_impl(ctx):
|
| 19 |
+
version = None
|
| 20 |
+
|
| 21 |
+
for mod in ctx.modules:
|
| 22 |
+
for config in mod.tags.config:
|
| 23 |
+
if config.version and version != None:
|
| 24 |
+
fail("More than one emscripten version specified!")
|
| 25 |
+
version = config.version
|
| 26 |
+
if version == None:
|
| 27 |
+
version = "latest"
|
| 28 |
+
|
| 29 |
+
if version == "latest":
|
| 30 |
+
version = reversed(sorted(EMSCRIPTEN_TAGS.keys(), key = _parse_version))[0]
|
| 31 |
+
|
| 32 |
+
revision = EMSCRIPTEN_TAGS[version]
|
| 33 |
+
|
| 34 |
+
emscripten_url = "https://storage.googleapis.com/webassembly/emscripten-releases-builds/{}/{}/wasm-binaries{}.{}"
|
| 35 |
+
|
| 36 |
+
remote_emscripten_repository(
|
| 37 |
+
name = emscripten_repo_name("linux"),
|
| 38 |
+
bin_extension = "",
|
| 39 |
+
sha256 = revision.sha_linux,
|
| 40 |
+
strip_prefix = "install",
|
| 41 |
+
type = "tar.xz",
|
| 42 |
+
url = emscripten_url.format("linux", revision.hash, "", "tar.xz"),
|
| 43 |
+
)
|
| 44 |
+
|
| 45 |
+
# Not all versions have a linux/arm64 release: https://github.com/emscripten-core/emsdk/issues/547
|
| 46 |
+
if hasattr(revision, "sha_linux_arm64"):
|
| 47 |
+
remote_emscripten_repository(
|
| 48 |
+
name = emscripten_repo_name("linux_arm64"),
|
| 49 |
+
bin_extension = "",
|
| 50 |
+
sha256 = revision.sha_linux_arm64,
|
| 51 |
+
strip_prefix = "install",
|
| 52 |
+
type = "tar.xz",
|
| 53 |
+
url = emscripten_url.format("linux", revision.hash, "-arm64", "tar.xz"),
|
| 54 |
+
)
|
| 55 |
+
else:
|
| 56 |
+
_empty_repository(
|
| 57 |
+
name = emscripten_repo_name("linux_arm64"),
|
| 58 |
+
)
|
| 59 |
+
|
| 60 |
+
remote_emscripten_repository(
|
| 61 |
+
name = emscripten_repo_name("mac"),
|
| 62 |
+
bin_extension = "",
|
| 63 |
+
sha256 = revision.sha_mac,
|
| 64 |
+
strip_prefix = "install",
|
| 65 |
+
type = "tar.xz",
|
| 66 |
+
url = emscripten_url.format("mac", revision.hash, "", "tar.xz"),
|
| 67 |
+
)
|
| 68 |
+
|
| 69 |
+
remote_emscripten_repository(
|
| 70 |
+
name = emscripten_repo_name("mac_arm64"),
|
| 71 |
+
bin_extension = "",
|
| 72 |
+
sha256 = revision.sha_mac_arm64,
|
| 73 |
+
strip_prefix = "install",
|
| 74 |
+
type = "tar.xz",
|
| 75 |
+
url = emscripten_url.format("mac", revision.hash, "-arm64", "tar.xz"),
|
| 76 |
+
)
|
| 77 |
+
|
| 78 |
+
remote_emscripten_repository(
|
| 79 |
+
name = emscripten_repo_name("win"),
|
| 80 |
+
bin_extension = ".exe",
|
| 81 |
+
sha256 = revision.sha_win,
|
| 82 |
+
strip_prefix = "install",
|
| 83 |
+
type = "zip",
|
| 84 |
+
url = emscripten_url.format("win", revision.hash, "", "zip"),
|
| 85 |
+
)
|
| 86 |
+
|
| 87 |
+
emscripten_deps = module_extension(
|
| 88 |
+
tag_classes = {
|
| 89 |
+
"config": tag_class(
|
| 90 |
+
attrs = {
|
| 91 |
+
"version": attr.string(
|
| 92 |
+
doc = "Version to use. 'latest' to use latest.",
|
| 93 |
+
values = ["latest"] + EMSCRIPTEN_TAGS.keys(),
|
| 94 |
+
),
|
| 95 |
+
},
|
| 96 |
+
),
|
| 97 |
+
},
|
| 98 |
+
implementation = _emscripten_deps_impl,
|
| 99 |
+
)
|
bazel/emscripten_toolchain/BUILD.bazel
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
load("@rules_cc//cc:defs.bzl", "cc_library")
|
| 2 |
+
load("@rules_python//python:py_binary.bzl", "py_binary")
|
| 3 |
+
load("//:emscripten_deps.bzl", "emscripten_repo_name")
|
| 4 |
+
load("//:remote_emscripten_repository.bzl", "create_toolchains", "emscripten_toolchain_name")
|
| 5 |
+
load(":platform_info.bzl", "platform_info")
|
| 6 |
+
|
| 7 |
+
package(default_visibility = ["//visibility:public"])
|
| 8 |
+
|
| 9 |
+
# dlmalloc.bc is implicitly added by the emscripten toolchain
|
| 10 |
+
cc_library(name = "malloc")
|
| 11 |
+
|
| 12 |
+
platform_info(
|
| 13 |
+
name = "platform_info",
|
| 14 |
+
script_extension = select({
|
| 15 |
+
"@platforms//os:windows": ".bat",
|
| 16 |
+
"//conditions:default": ".sh",
|
| 17 |
+
}),
|
| 18 |
+
visibility = [":__subpackages__"],
|
| 19 |
+
)
|
| 20 |
+
|
| 21 |
+
create_toolchains(
|
| 22 |
+
name = emscripten_toolchain_name("linux"),
|
| 23 |
+
exec_compatible_with = [
|
| 24 |
+
"@platforms//os:linux",
|
| 25 |
+
"@platforms//cpu:x86_64",
|
| 26 |
+
],
|
| 27 |
+
repo_name = emscripten_repo_name("linux"),
|
| 28 |
+
)
|
| 29 |
+
|
| 30 |
+
create_toolchains(
|
| 31 |
+
name = emscripten_toolchain_name("linux_arm64"),
|
| 32 |
+
exec_compatible_with = [
|
| 33 |
+
"@platforms//os:linux",
|
| 34 |
+
"@platforms//cpu:arm64",
|
| 35 |
+
],
|
| 36 |
+
repo_name = emscripten_repo_name("linux_arm64"),
|
| 37 |
+
)
|
| 38 |
+
|
| 39 |
+
create_toolchains(
|
| 40 |
+
name = emscripten_toolchain_name("mac"),
|
| 41 |
+
exec_compatible_with = [
|
| 42 |
+
"@platforms//os:macos",
|
| 43 |
+
"@platforms//cpu:x86_64",
|
| 44 |
+
],
|
| 45 |
+
repo_name = emscripten_repo_name("mac"),
|
| 46 |
+
)
|
| 47 |
+
|
| 48 |
+
create_toolchains(
|
| 49 |
+
name = emscripten_toolchain_name("mac_arm64"),
|
| 50 |
+
exec_compatible_with = [
|
| 51 |
+
"@platforms//os:macos",
|
| 52 |
+
"@platforms//cpu:arm64",
|
| 53 |
+
],
|
| 54 |
+
repo_name = emscripten_repo_name("mac_arm64"),
|
| 55 |
+
)
|
| 56 |
+
|
| 57 |
+
create_toolchains(
|
| 58 |
+
name = emscripten_toolchain_name("win"),
|
| 59 |
+
exec_compatible_with = [
|
| 60 |
+
"@platforms//os:windows",
|
| 61 |
+
"@platforms//cpu:x86_64",
|
| 62 |
+
],
|
| 63 |
+
repo_name = emscripten_repo_name("win"),
|
| 64 |
+
)
|
| 65 |
+
|
| 66 |
+
py_binary(
|
| 67 |
+
name = "wasm_binary",
|
| 68 |
+
srcs = ["wasm_binary.py"],
|
| 69 |
+
)
|
bazel/emscripten_toolchain/default_config
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import platform
|
| 3 |
+
|
| 4 |
+
ROOT_DIR = os.environ["ROOT_DIR"]
|
| 5 |
+
EMSCRIPTEN_ROOT = os.environ["EMSCRIPTEN"]
|
| 6 |
+
BINARYEN_ROOT = os.path.join(ROOT_DIR, os.environ["EM_BIN_PATH"])
|
| 7 |
+
LLVM_ROOT = os.path.join(BINARYEN_ROOT, "bin")
|
| 8 |
+
NODE_JS = os.path.join(ROOT_DIR, os.environ["NODE_JS_PATH"])
|
| 9 |
+
FROZEN_CACHE = True
|
| 10 |
+
|
| 11 |
+
# This works around an issue with Bazel RBE where the symlinks in node_modules/.bin
|
| 12 |
+
# are uploaded as the linked files, which means the cli.js cannot load its
|
| 13 |
+
# dependencies from the expected locations.
|
| 14 |
+
# See https://github.com/emscripten-core/emscripten/pull/16640 for more
|
| 15 |
+
CLOSURE_COMPILER = [NODE_JS, os.path.join(EMSCRIPTEN_ROOT, "node_modules",
|
| 16 |
+
"google-closure-compiler", "cli.js")]
|
bazel/emscripten_toolchain/emar.bat
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@ECHO OFF
|
| 2 |
+
|
| 3 |
+
call %~dp0\env.bat
|
| 4 |
+
|
| 5 |
+
"%EMSDK_PYTHON%" %EMSCRIPTEN%\emar.py %*
|
bazel/emscripten_toolchain/emar.sh
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
source $(dirname $0)/env.sh
|
| 4 |
+
|
| 5 |
+
exec $EMSDK_PYTHON $EMSCRIPTEN/emar.py "$@"
|
bazel/emscripten_toolchain/emcc.bat
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@ECHO OFF
|
| 2 |
+
|
| 3 |
+
call %~dp0\env.bat
|
| 4 |
+
|
| 5 |
+
"%EMSDK_PYTHON%" %EMSCRIPTEN%\emcc.py %*
|
bazel/emscripten_toolchain/emcc.sh
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
source $(dirname $0)/env.sh
|
| 4 |
+
|
| 5 |
+
exec $EMSDK_PYTHON $EMSCRIPTEN/emcc.py "$@"
|
bazel/emscripten_toolchain/emcc_link.bat
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@ECHO OFF
|
| 2 |
+
|
| 3 |
+
call %~dp0\env.bat
|
| 4 |
+
|
| 5 |
+
"%EMSDK_PYTHON%" %~dp0\link_wrapper.py %*
|
bazel/emscripten_toolchain/emcc_link.sh
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
source $(dirname $0)/env.sh
|
| 4 |
+
|
| 5 |
+
exec $EMSDK_PYTHON $(dirname $0)/link_wrapper.py "$@"
|
bazel/emscripten_toolchain/env.bat
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@ECHO OFF
|
| 2 |
+
|
| 3 |
+
set ROOT_DIR=%EXT_BUILD_ROOT%
|
| 4 |
+
if "%ROOT_DIR%"=="" set ROOT_DIR=%CD%
|
| 5 |
+
set EMSCRIPTEN=%ROOT_DIR%\%EM_BIN_PATH%\emscripten
|
| 6 |
+
set EM_CONFIG=%ROOT_DIR%\%EM_CONFIG_PATH%
|
| 7 |
+
set EMSDK_PYTHON=%ROOT_DIR%\%BAZEL_PYTHON_RELPATH%
|
bazel/emscripten_toolchain/env.sh
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
export ROOT_DIR=${EXT_BUILD_ROOT:-$(pwd -P)}
|
| 4 |
+
export EMSCRIPTEN=$ROOT_DIR/$EM_BIN_PATH/emscripten
|
| 5 |
+
export EM_CONFIG=$ROOT_DIR/$EM_CONFIG_PATH
|
| 6 |
+
export EMSDK_PYTHON=$ROOT_DIR/$BAZEL_PYTHON_RELPATH
|
bazel/emscripten_toolchain/link_wrapper.py
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python
|
| 2 |
+
"""wrapper around emcc link step.
|
| 3 |
+
|
| 4 |
+
This wrapper currently serves the following purposes.
|
| 5 |
+
|
| 6 |
+
1. When building with --config=wasm the final output is multiple files, usually
|
| 7 |
+
at least one .js and one .wasm file. Since the cc_binary link step only
|
| 8 |
+
allows a single output, we must tar up the outputs into a single file.
|
| 9 |
+
|
| 10 |
+
2. Add quotes around arguments that need them in the response file to work
|
| 11 |
+
around a bazel quirk.
|
| 12 |
+
|
| 13 |
+
3. Ensure the external_debug_info section of the wasm points at the correct
|
| 14 |
+
bazel path.
|
| 15 |
+
"""
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
import argparse
|
| 19 |
+
import os
|
| 20 |
+
import subprocess
|
| 21 |
+
import sys
|
| 22 |
+
|
| 23 |
+
# Only argument should be @path/to/parameter/file
|
| 24 |
+
assert sys.argv[1][0] == '@', sys.argv
|
| 25 |
+
param_filename = sys.argv[1][1:]
|
| 26 |
+
param_file_args = [line.strip() for line in open(param_filename).readlines()]
|
| 27 |
+
|
| 28 |
+
# Re-write response file if needed.
|
| 29 |
+
if any(' ' in a for a in param_file_args):
|
| 30 |
+
new_param_filename = param_filename + '.modified'
|
| 31 |
+
with open(new_param_filename, 'w') as f:
|
| 32 |
+
for param in param_file_args:
|
| 33 |
+
if ' ' in param:
|
| 34 |
+
f.write('"%s"' % param)
|
| 35 |
+
else:
|
| 36 |
+
f.write(param)
|
| 37 |
+
f.write('\n')
|
| 38 |
+
sys.argv[1] = '@' + new_param_filename
|
| 39 |
+
|
| 40 |
+
emcc_py = os.path.join(os.environ['EMSCRIPTEN'], 'emcc.py')
|
| 41 |
+
rtn = subprocess.call([sys.executable, emcc_py] + sys.argv[1:])
|
| 42 |
+
if rtn != 0:
|
| 43 |
+
sys.exit(1)
|
| 44 |
+
|
| 45 |
+
# Parse the arguments that we gave to the linker to determine what the output
|
| 46 |
+
# file is named and what the output format is.
|
| 47 |
+
parser = argparse.ArgumentParser(add_help=False)
|
| 48 |
+
parser.add_argument('-o')
|
| 49 |
+
parser.add_argument('--oformat')
|
| 50 |
+
options = parser.parse_known_args(param_file_args)[0]
|
| 51 |
+
output_file = options.o
|
| 52 |
+
oformat = options.oformat
|
| 53 |
+
outdir = os.path.normpath(os.path.dirname(output_file))
|
| 54 |
+
base_name = os.path.basename(output_file)
|
| 55 |
+
|
| 56 |
+
# The output file name is the name of the build rule that was built.
|
| 57 |
+
# Add an appropriate file extension based on --oformat.
|
| 58 |
+
if oformat is not None:
|
| 59 |
+
base_name_split = os.path.splitext(base_name)
|
| 60 |
+
|
| 61 |
+
# If the output name has no extension, give it the appropriate extension.
|
| 62 |
+
if not base_name_split[1]:
|
| 63 |
+
os.replace(output_file, output_file + '.' + oformat)
|
| 64 |
+
|
| 65 |
+
# If the output name does have an extension and it matches the output format,
|
| 66 |
+
# change the base_name so it doesn't have an extension.
|
| 67 |
+
elif base_name_split[1] == '.' + oformat:
|
| 68 |
+
base_name = base_name_split[0]
|
| 69 |
+
|
| 70 |
+
# If the output name does have an extension and it does not match the output
|
| 71 |
+
# format, change the base_name so it doesn't have an extension and rename
|
| 72 |
+
# the output_file so it has the proper extension.
|
| 73 |
+
# Note that if you do something like name your build rule "foo.js" and pass
|
| 74 |
+
# "--oformat=html", emscripten will write to the same file for both the js and
|
| 75 |
+
# html output, overwriting the js output entirely with the html.
|
| 76 |
+
# Please don't do that.
|
| 77 |
+
else:
|
| 78 |
+
base_name = base_name_split[0]
|
| 79 |
+
os.replace(output_file, os.path.join(outdir, base_name + '.' + oformat))
|
| 80 |
+
|
| 81 |
+
files = []
|
| 82 |
+
extensions = [
|
| 83 |
+
'.js',
|
| 84 |
+
'.wasm',
|
| 85 |
+
'.wasm.map',
|
| 86 |
+
'.data',
|
| 87 |
+
'.js.symbols',
|
| 88 |
+
'.wasm.debug.wasm',
|
| 89 |
+
'.html',
|
| 90 |
+
'.ts',
|
| 91 |
+
'.d.ts',
|
| 92 |
+
]
|
| 93 |
+
|
| 94 |
+
for ext in extensions:
|
| 95 |
+
filename = base_name + ext
|
| 96 |
+
if os.path.exists(os.path.join(outdir, filename)):
|
| 97 |
+
files.append(filename)
|
| 98 |
+
|
| 99 |
+
wasm_base = os.path.join(outdir, base_name + '.wasm')
|
| 100 |
+
if os.path.exists(wasm_base + '.debug.wasm') and os.path.exists(wasm_base):
|
| 101 |
+
# If we have a .wasm.debug.wasm file and a .wasm file, we need to rewrite the
|
| 102 |
+
# section in the .wasm file that refers to it. The path that's in there
|
| 103 |
+
# is the blaze output path; we want it to be just the filename.
|
| 104 |
+
|
| 105 |
+
llvm_objcopy = os.path.join(
|
| 106 |
+
os.environ['EM_BIN_PATH'], 'bin/llvm-objcopy')
|
| 107 |
+
# First, check to make sure the .wasm file has the header that needs to be
|
| 108 |
+
# rewritten.
|
| 109 |
+
rtn = subprocess.call([
|
| 110 |
+
llvm_objcopy,
|
| 111 |
+
'--dump-section=external_debug_info=/dev/null',
|
| 112 |
+
wasm_base], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
| 113 |
+
if rtn == 0:
|
| 114 |
+
# If llvm-objcopy did not return an error, the external_debug_info section
|
| 115 |
+
# must exist, so we're good to continue.
|
| 116 |
+
|
| 117 |
+
# Next we need to convert length of the filename to LEB128.
|
| 118 |
+
# Start by converting the length of the filename to a bit string.
|
| 119 |
+
bit_string = '{0:b}'.format(len(base_name + '.wasm.debug.wasm'))
|
| 120 |
+
|
| 121 |
+
# Pad the bit string with 0s so that its length is a multiple of 7.
|
| 122 |
+
while len(bit_string) % 7 != 0:
|
| 123 |
+
bit_string = '0' + bit_string
|
| 124 |
+
|
| 125 |
+
# Break up our bit string into chunks of 7.
|
| 126 |
+
# We do this backwards because the final format is little-endian.
|
| 127 |
+
final_bytes = bytearray()
|
| 128 |
+
for i in reversed(range(0, len(bit_string), 7)):
|
| 129 |
+
binary_part = bit_string[i:i + 7]
|
| 130 |
+
if i != 0:
|
| 131 |
+
# Every chunk except the last one needs to be prepended with '1'.
|
| 132 |
+
# The length of each chunk is 7, so that one has an implicit '0'.
|
| 133 |
+
binary_part = '1' + binary_part
|
| 134 |
+
final_bytes.append(int(binary_part, 2))
|
| 135 |
+
# Finally, add the actual filename.
|
| 136 |
+
final_bytes.extend((base_name + '.wasm.debug.wasm').encode())
|
| 137 |
+
|
| 138 |
+
# Write our length + filename bytes to a temp file.
|
| 139 |
+
with open(base_name + '_debugsection.tmp', 'wb+') as f:
|
| 140 |
+
f.write(final_bytes)
|
| 141 |
+
f.close()
|
| 142 |
+
|
| 143 |
+
# First delete the old section.
|
| 144 |
+
subprocess.check_call([
|
| 145 |
+
llvm_objcopy,
|
| 146 |
+
wasm_base,
|
| 147 |
+
'--remove-section=external_debug_info'])
|
| 148 |
+
# Rewrite section with the new size and filename from the temp file.
|
| 149 |
+
subprocess.check_call([
|
| 150 |
+
llvm_objcopy,
|
| 151 |
+
wasm_base,
|
| 152 |
+
'--add-section=external_debug_info=' + base_name + '_debugsection.tmp'])
|
| 153 |
+
|
| 154 |
+
# Make sure we have at least one output file.
|
| 155 |
+
if not files:
|
| 156 |
+
print('emcc.py did not appear to output any known files!')
|
| 157 |
+
sys.exit(1)
|
| 158 |
+
|
| 159 |
+
# cc_binary must output exactly one file; put all the output files in a tarball.
|
| 160 |
+
cmd = ['tar', 'cf', base_name + '.tar'] + files
|
| 161 |
+
subprocess.check_call(cmd, cwd=outdir)
|
| 162 |
+
os.replace(os.path.join(outdir, base_name + '.tar'), output_file)
|
| 163 |
+
|
| 164 |
+
sys.exit(0)
|
bazel/emscripten_toolchain/platform_info.bzl
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Defines a provider and rule for platform information.
|
| 2 |
+
"""
|
| 3 |
+
|
| 4 |
+
PlatformInfo = provider(
|
| 5 |
+
doc = "Provides some info about a platform",
|
| 6 |
+
fields = {
|
| 7 |
+
"script_extension": "The script extension for the platform, e.g. '.sh' or '.bat'",
|
| 8 |
+
},
|
| 9 |
+
)
|
| 10 |
+
|
| 11 |
+
platform_info = rule(
|
| 12 |
+
implementation = lambda ctx: PlatformInfo(
|
| 13 |
+
script_extension = ctx.attr.script_extension,
|
| 14 |
+
),
|
| 15 |
+
attrs = {
|
| 16 |
+
"script_extension": attr.string(
|
| 17 |
+
mandatory = True,
|
| 18 |
+
values = [".sh", ".bat"],
|
| 19 |
+
doc = "The script extension for the platform, e.g. '.sh' or '.bat'",
|
| 20 |
+
),
|
| 21 |
+
},
|
| 22 |
+
)
|
bazel/emscripten_toolchain/toolchain.bzl
ADDED
|
@@ -0,0 +1,1194 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""This module encapsulates logic to create emscripten_cc_toolchain_config rule."""
|
| 2 |
+
|
| 3 |
+
load("@rules_cc//cc:action_names.bzl", "ACTION_NAMES")
|
| 4 |
+
load(
|
| 5 |
+
"@rules_cc//cc:cc_toolchain_config_lib.bzl",
|
| 6 |
+
"action_config",
|
| 7 |
+
"env_entry",
|
| 8 |
+
"env_set",
|
| 9 |
+
"feature",
|
| 10 |
+
"feature_set",
|
| 11 |
+
"flag_group",
|
| 12 |
+
"tool",
|
| 13 |
+
"tool_path",
|
| 14 |
+
"variable_with_value",
|
| 15 |
+
"with_feature_set",
|
| 16 |
+
_flag_set = "flag_set",
|
| 17 |
+
)
|
| 18 |
+
load("@rules_cc//cc:defs.bzl", "CcToolchainConfigInfo", "cc_common")
|
| 19 |
+
load(":platform_info.bzl", "PlatformInfo", "platform_info")
|
| 20 |
+
|
| 21 |
+
def flag_set(flags = None, features = None, not_features = None, **kwargs):
|
| 22 |
+
"""Extension to flag_set which allows for a "simple" form.
|
| 23 |
+
|
| 24 |
+
The simple form allows specifying flags as a simple list instead of a flag_group
|
| 25 |
+
if enable_if or expand_if semantics are not required.
|
| 26 |
+
|
| 27 |
+
Similarly, the simple form allows passing features/not_features if they are a simple
|
| 28 |
+
list of semantically "and" features.
|
| 29 |
+
(i.e. "asan" and "dbg", rather than "asan" or "dbg")
|
| 30 |
+
|
| 31 |
+
Args:
|
| 32 |
+
flags: list, set of flags
|
| 33 |
+
features: list, set of features required to be enabled.
|
| 34 |
+
not_features: list, set of features required to not be enabled.
|
| 35 |
+
**kwargs: The rest of the args for flag_set.
|
| 36 |
+
|
| 37 |
+
Returns:
|
| 38 |
+
flag_set
|
| 39 |
+
"""
|
| 40 |
+
if flags:
|
| 41 |
+
if kwargs.get("flag_groups"):
|
| 42 |
+
fail("Cannot set flags and flag_groups")
|
| 43 |
+
else:
|
| 44 |
+
kwargs["flag_groups"] = [flag_group(flags = flags)]
|
| 45 |
+
|
| 46 |
+
if features or not_features:
|
| 47 |
+
if kwargs.get("with_features"):
|
| 48 |
+
fail("Cannot set features/not_feature and with_features")
|
| 49 |
+
kwargs["with_features"] = [with_feature_set(
|
| 50 |
+
features = features or [],
|
| 51 |
+
not_features = not_features or [],
|
| 52 |
+
)]
|
| 53 |
+
return _flag_set(**kwargs)
|
| 54 |
+
|
| 55 |
+
CROSSTOOL_DEFAULT_WARNINGS = [
|
| 56 |
+
"-Wall",
|
| 57 |
+
]
|
| 58 |
+
|
| 59 |
+
def _impl(ctx):
|
| 60 |
+
platform_info = ctx.attr._exec_platform_info[PlatformInfo]
|
| 61 |
+
|
| 62 |
+
target_cpu = ctx.attr.cpu
|
| 63 |
+
toolchain_identifier = "emscripten-" + target_cpu
|
| 64 |
+
target_system_name = target_cpu + "-unknown-emscripten"
|
| 65 |
+
|
| 66 |
+
host_system_name = "i686-unknown-linux-gnu"
|
| 67 |
+
|
| 68 |
+
target_libc = "musl/js"
|
| 69 |
+
|
| 70 |
+
abi_version = "emscripten_syscalls"
|
| 71 |
+
|
| 72 |
+
compiler = "emscripten"
|
| 73 |
+
abi_libc_version = "default"
|
| 74 |
+
|
| 75 |
+
cc_target_os = "emscripten"
|
| 76 |
+
|
| 77 |
+
emscripten_dir = ctx.attr.emscripten_binaries.label.workspace_root
|
| 78 |
+
|
| 79 |
+
nodeinfo = ctx.toolchains["@rules_nodejs//nodejs:toolchain_type"].nodeinfo
|
| 80 |
+
nodejs_path = nodeinfo.node.path
|
| 81 |
+
|
| 82 |
+
python_exec_runtime = (
|
| 83 |
+
ctx.toolchains["@rules_python//python:exec_tools_toolchain_type"].
|
| 84 |
+
exec_tools.exec_interpreter[platform_common.ToolchainInfo].py3_runtime
|
| 85 |
+
)
|
| 86 |
+
|
| 87 |
+
builtin_sysroot = emscripten_dir + "/emscripten/cache/sysroot"
|
| 88 |
+
|
| 89 |
+
emcc_script = "emcc" + platform_info.script_extension
|
| 90 |
+
emcc_link_script = "emcc_link" + platform_info.script_extension
|
| 91 |
+
emar_script = "emar" + platform_info.script_extension
|
| 92 |
+
|
| 93 |
+
################################################################
|
| 94 |
+
# Tools
|
| 95 |
+
################################################################
|
| 96 |
+
clang_tool = tool(path = emcc_script)
|
| 97 |
+
clif_match_tool = tool(path = "dummy_clif_matcher")
|
| 98 |
+
link_tool = tool(path = emcc_link_script)
|
| 99 |
+
archive_tool = tool(path = emar_script)
|
| 100 |
+
strip_tool = tool(path = "NOT_USED_STRIP_TOOL")
|
| 101 |
+
|
| 102 |
+
#### Legacy tool paths (much of this is redundant with action_configs, but
|
| 103 |
+
#### these are still used for some things)
|
| 104 |
+
tool_paths = [
|
| 105 |
+
tool_path(name = "ar", path = emar_script),
|
| 106 |
+
tool_path(name = "cpp", path = "/bin/false"),
|
| 107 |
+
tool_path(name = "gcc", path = emcc_script),
|
| 108 |
+
tool_path(name = "gcov", path = "/bin/false"),
|
| 109 |
+
tool_path(name = "ld", path = emcc_link_script),
|
| 110 |
+
tool_path(name = "nm", path = "NOT_USED"),
|
| 111 |
+
tool_path(name = "objdump", path = "/bin/false"),
|
| 112 |
+
tool_path(name = "strip", path = "NOT_USED"),
|
| 113 |
+
]
|
| 114 |
+
|
| 115 |
+
################################################################
|
| 116 |
+
# Action Configs
|
| 117 |
+
################################################################
|
| 118 |
+
|
| 119 |
+
cpp_compile_action = action_config(
|
| 120 |
+
action_name = ACTION_NAMES.cpp_compile,
|
| 121 |
+
tools = [clang_tool],
|
| 122 |
+
)
|
| 123 |
+
|
| 124 |
+
cpp_module_compile_action = action_config(
|
| 125 |
+
action_name = ACTION_NAMES.cpp_module_compile,
|
| 126 |
+
tools = [clang_tool],
|
| 127 |
+
)
|
| 128 |
+
|
| 129 |
+
cpp_module_codegen_action = action_config(
|
| 130 |
+
action_name = ACTION_NAMES.cpp_module_codegen,
|
| 131 |
+
tools = [clang_tool],
|
| 132 |
+
)
|
| 133 |
+
|
| 134 |
+
clif_match_action = action_config(
|
| 135 |
+
action_name = ACTION_NAMES.clif_match,
|
| 136 |
+
tools = [clif_match_tool],
|
| 137 |
+
)
|
| 138 |
+
|
| 139 |
+
cpp_link_dynamic_library_action = action_config(
|
| 140 |
+
action_name = ACTION_NAMES.cpp_link_dynamic_library,
|
| 141 |
+
tools = [link_tool],
|
| 142 |
+
)
|
| 143 |
+
|
| 144 |
+
strip_action = action_config(
|
| 145 |
+
action_name = ACTION_NAMES.strip,
|
| 146 |
+
tools = [strip_tool],
|
| 147 |
+
)
|
| 148 |
+
|
| 149 |
+
preprocess_assemble_action = action_config(
|
| 150 |
+
action_name = ACTION_NAMES.preprocess_assemble,
|
| 151 |
+
tools = [clang_tool],
|
| 152 |
+
)
|
| 153 |
+
|
| 154 |
+
cpp_header_parsing_action = action_config(
|
| 155 |
+
action_name = ACTION_NAMES.cpp_header_parsing,
|
| 156 |
+
tools = [clang_tool],
|
| 157 |
+
)
|
| 158 |
+
|
| 159 |
+
cpp_link_static_library_action = action_config(
|
| 160 |
+
action_name = ACTION_NAMES.cpp_link_static_library,
|
| 161 |
+
enabled = True,
|
| 162 |
+
flag_sets = [
|
| 163 |
+
flag_set(
|
| 164 |
+
flag_groups = [
|
| 165 |
+
flag_group(
|
| 166 |
+
flags = ["rcsD", "%{output_execpath}"],
|
| 167 |
+
expand_if_available = "output_execpath",
|
| 168 |
+
),
|
| 169 |
+
],
|
| 170 |
+
),
|
| 171 |
+
flag_set(
|
| 172 |
+
flag_groups = [
|
| 173 |
+
flag_group(
|
| 174 |
+
iterate_over = "libraries_to_link",
|
| 175 |
+
flag_groups = [
|
| 176 |
+
flag_group(
|
| 177 |
+
flags = ["%{libraries_to_link.name}"],
|
| 178 |
+
expand_if_equal = variable_with_value(
|
| 179 |
+
name = "libraries_to_link.type",
|
| 180 |
+
value = "object_file",
|
| 181 |
+
),
|
| 182 |
+
),
|
| 183 |
+
flag_group(
|
| 184 |
+
flags = ["%{libraries_to_link.object_files}"],
|
| 185 |
+
iterate_over = "libraries_to_link.object_files",
|
| 186 |
+
expand_if_equal = variable_with_value(
|
| 187 |
+
name = "libraries_to_link.type",
|
| 188 |
+
value = "object_file_group",
|
| 189 |
+
),
|
| 190 |
+
),
|
| 191 |
+
],
|
| 192 |
+
expand_if_available = "libraries_to_link",
|
| 193 |
+
),
|
| 194 |
+
],
|
| 195 |
+
),
|
| 196 |
+
flag_set(
|
| 197 |
+
flag_groups = [
|
| 198 |
+
flag_group(
|
| 199 |
+
flags = ["@%{linker_param_file}"],
|
| 200 |
+
expand_if_available = "linker_param_file",
|
| 201 |
+
),
|
| 202 |
+
],
|
| 203 |
+
),
|
| 204 |
+
],
|
| 205 |
+
tools = [archive_tool],
|
| 206 |
+
)
|
| 207 |
+
|
| 208 |
+
c_compile_action = action_config(
|
| 209 |
+
action_name = ACTION_NAMES.c_compile,
|
| 210 |
+
tools = [clang_tool],
|
| 211 |
+
)
|
| 212 |
+
|
| 213 |
+
linkstamp_compile_action = action_config(
|
| 214 |
+
action_name = ACTION_NAMES.linkstamp_compile,
|
| 215 |
+
tools = [clang_tool],
|
| 216 |
+
)
|
| 217 |
+
|
| 218 |
+
assemble_action = action_config(
|
| 219 |
+
action_name = ACTION_NAMES.assemble,
|
| 220 |
+
tools = [clang_tool],
|
| 221 |
+
)
|
| 222 |
+
|
| 223 |
+
cpp_link_executable_action = action_config(
|
| 224 |
+
action_name = ACTION_NAMES.cpp_link_executable,
|
| 225 |
+
tools = [link_tool],
|
| 226 |
+
)
|
| 227 |
+
|
| 228 |
+
cpp_link_nodeps_dynamic_library_action = action_config(
|
| 229 |
+
action_name = ACTION_NAMES.cpp_link_nodeps_dynamic_library,
|
| 230 |
+
tools = [link_tool],
|
| 231 |
+
)
|
| 232 |
+
|
| 233 |
+
action_configs = [
|
| 234 |
+
strip_action,
|
| 235 |
+
c_compile_action,
|
| 236 |
+
cpp_compile_action,
|
| 237 |
+
linkstamp_compile_action,
|
| 238 |
+
assemble_action,
|
| 239 |
+
preprocess_assemble_action,
|
| 240 |
+
cpp_header_parsing_action,
|
| 241 |
+
cpp_module_compile_action,
|
| 242 |
+
cpp_module_codegen_action,
|
| 243 |
+
cpp_link_executable_action,
|
| 244 |
+
cpp_link_dynamic_library_action,
|
| 245 |
+
cpp_link_nodeps_dynamic_library_action,
|
| 246 |
+
cpp_link_static_library_action,
|
| 247 |
+
clif_match_action,
|
| 248 |
+
]
|
| 249 |
+
|
| 250 |
+
all_compile_actions = [
|
| 251 |
+
ACTION_NAMES.c_compile,
|
| 252 |
+
ACTION_NAMES.cpp_compile,
|
| 253 |
+
ACTION_NAMES.linkstamp_compile,
|
| 254 |
+
ACTION_NAMES.assemble,
|
| 255 |
+
ACTION_NAMES.preprocess_assemble,
|
| 256 |
+
ACTION_NAMES.cpp_header_parsing,
|
| 257 |
+
ACTION_NAMES.cpp_module_compile,
|
| 258 |
+
ACTION_NAMES.cpp_module_codegen,
|
| 259 |
+
ACTION_NAMES.clif_match,
|
| 260 |
+
ACTION_NAMES.lto_backend,
|
| 261 |
+
]
|
| 262 |
+
|
| 263 |
+
all_cpp_compile_actions = [
|
| 264 |
+
ACTION_NAMES.cpp_compile,
|
| 265 |
+
ACTION_NAMES.linkstamp_compile,
|
| 266 |
+
ACTION_NAMES.cpp_header_parsing,
|
| 267 |
+
ACTION_NAMES.cpp_module_compile,
|
| 268 |
+
ACTION_NAMES.cpp_module_codegen,
|
| 269 |
+
ACTION_NAMES.clif_match,
|
| 270 |
+
]
|
| 271 |
+
|
| 272 |
+
preprocessor_compile_actions = [
|
| 273 |
+
ACTION_NAMES.c_compile,
|
| 274 |
+
ACTION_NAMES.cpp_compile,
|
| 275 |
+
ACTION_NAMES.linkstamp_compile,
|
| 276 |
+
ACTION_NAMES.preprocess_assemble,
|
| 277 |
+
ACTION_NAMES.cpp_header_parsing,
|
| 278 |
+
ACTION_NAMES.cpp_module_compile,
|
| 279 |
+
ACTION_NAMES.clif_match,
|
| 280 |
+
]
|
| 281 |
+
|
| 282 |
+
all_link_actions = [
|
| 283 |
+
ACTION_NAMES.cpp_link_executable,
|
| 284 |
+
ACTION_NAMES.cpp_link_dynamic_library,
|
| 285 |
+
ACTION_NAMES.cpp_link_nodeps_dynamic_library,
|
| 286 |
+
]
|
| 287 |
+
|
| 288 |
+
################################################################
|
| 289 |
+
# Features
|
| 290 |
+
################################################################
|
| 291 |
+
|
| 292 |
+
features = [
|
| 293 |
+
# This set of magic "feature"s are important configuration information for blaze.
|
| 294 |
+
feature(name = "no_legacy_features", enabled = True),
|
| 295 |
+
feature(
|
| 296 |
+
name = "has_configured_linker_path",
|
| 297 |
+
enabled = True,
|
| 298 |
+
),
|
| 299 |
+
|
| 300 |
+
# Blaze requests this feature by default, but we don't care.
|
| 301 |
+
feature(name = "dependency_file"),
|
| 302 |
+
|
| 303 |
+
# Blaze requests this feature by default, but we don't care.
|
| 304 |
+
feature(name = "random_seed"),
|
| 305 |
+
|
| 306 |
+
# Formerly "needsPic" attribute
|
| 307 |
+
feature(name = "supports_pic", enabled = False),
|
| 308 |
+
|
| 309 |
+
# Blaze requests this feature by default.
|
| 310 |
+
# Blaze also tests if this feature is supported, before setting the "pic" build-variable.
|
| 311 |
+
feature(name = "pic"),
|
| 312 |
+
|
| 313 |
+
# Blaze requests this feature by default.
|
| 314 |
+
# Blaze also tests if this feature is supported before setting preprocessor_defines
|
| 315 |
+
# (...but why?)
|
| 316 |
+
feature(name = "preprocessor_defines"),
|
| 317 |
+
|
| 318 |
+
# Blaze requests this feature by default.
|
| 319 |
+
# Blaze also tests if this feature is supported before setting includes. (...but why?)
|
| 320 |
+
feature(name = "include_paths"),
|
| 321 |
+
|
| 322 |
+
# Blaze tests if this feature is enabled in order to create implicit
|
| 323 |
+
# "nodeps" .so outputs from cc_library rules.
|
| 324 |
+
feature(name = "supports_dynamic_linker", enabled = False),
|
| 325 |
+
|
| 326 |
+
# Blaze requests this feature when linking a cc_binary which is
|
| 327 |
+
# "dynamic" aka linked against nodeps-dynamic-library cc_library
|
| 328 |
+
# outputs.
|
| 329 |
+
feature(name = "dynamic_linking_mode"),
|
| 330 |
+
|
| 331 |
+
#### Configuration features
|
| 332 |
+
feature(
|
| 333 |
+
name = "crosstool_cpu",
|
| 334 |
+
enabled = True,
|
| 335 |
+
implies = ["crosstool_cpu_" + target_cpu],
|
| 336 |
+
),
|
| 337 |
+
feature(
|
| 338 |
+
name = "crosstool_cpu_asmjs",
|
| 339 |
+
provides = ["variant:crosstool_cpu"],
|
| 340 |
+
),
|
| 341 |
+
feature(
|
| 342 |
+
name = "crosstool_cpu_wasm",
|
| 343 |
+
provides = ["variant:crosstool_cpu"],
|
| 344 |
+
),
|
| 345 |
+
|
| 346 |
+
# These 3 features will be automatically enabled by blaze in the
|
| 347 |
+
# corresponding build mode.
|
| 348 |
+
feature(
|
| 349 |
+
name = "opt",
|
| 350 |
+
provides = ["variant:crosstool_build_mode"],
|
| 351 |
+
),
|
| 352 |
+
feature(
|
| 353 |
+
name = "dbg",
|
| 354 |
+
provides = ["variant:crosstool_build_mode"],
|
| 355 |
+
),
|
| 356 |
+
feature(
|
| 357 |
+
name = "fastbuild",
|
| 358 |
+
provides = ["variant:crosstool_build_mode"],
|
| 359 |
+
),
|
| 360 |
+
|
| 361 |
+
# Feature to prevent 'command line too long' issues
|
| 362 |
+
feature(
|
| 363 |
+
name = "archive_param_file",
|
| 364 |
+
enabled = True,
|
| 365 |
+
),
|
| 366 |
+
feature(
|
| 367 |
+
name = "compiler_param_file",
|
| 368 |
+
enabled = True,
|
| 369 |
+
),
|
| 370 |
+
|
| 371 |
+
#### User-settable features
|
| 372 |
+
|
| 373 |
+
# Set if enabling exceptions.
|
| 374 |
+
feature(name = "exceptions"),
|
| 375 |
+
|
| 376 |
+
# Set if enabling wasm_exceptions.
|
| 377 |
+
feature(name = "wasm_exceptions"),
|
| 378 |
+
|
| 379 |
+
# This feature overrides the default optimization to prefer execution speed
|
| 380 |
+
# over binary size (like clang -O3).
|
| 381 |
+
feature(
|
| 382 |
+
name = "optimized_for_speed",
|
| 383 |
+
provides = ["variant:crosstool_optimization_mode"],
|
| 384 |
+
),
|
| 385 |
+
|
| 386 |
+
# This feature overrides the default optimization to prefer binary size over
|
| 387 |
+
# execution speed (like clang -Oz).
|
| 388 |
+
feature(
|
| 389 |
+
name = "optimized_for_size",
|
| 390 |
+
provides = ["variant:crosstool_optimization_mode"],
|
| 391 |
+
),
|
| 392 |
+
|
| 393 |
+
# Convenience aliases / alt-spellings.
|
| 394 |
+
feature(
|
| 395 |
+
name = "optimize_for_speed",
|
| 396 |
+
implies = ["optimized_for_speed"],
|
| 397 |
+
),
|
| 398 |
+
feature(
|
| 399 |
+
name = "optimize_for_size",
|
| 400 |
+
implies = ["optimized_for_size"],
|
| 401 |
+
),
|
| 402 |
+
|
| 403 |
+
# This feature allows easier use of profiling tools by preserving mangled
|
| 404 |
+
# C++ names. This does everything profiling_funcs does and more.
|
| 405 |
+
feature(name = "profiling"),
|
| 406 |
+
|
| 407 |
+
# This feature emits only enough debug info for function names to appear
|
| 408 |
+
# in profiles.
|
| 409 |
+
feature(name = "profiling_funcs"),
|
| 410 |
+
|
| 411 |
+
# This feature allows source maps to be generated.
|
| 412 |
+
feature(
|
| 413 |
+
name = "source_maps",
|
| 414 |
+
implies = ["full_debug_info"],
|
| 415 |
+
),
|
| 416 |
+
feature(
|
| 417 |
+
name = "dwarf_debug_info",
|
| 418 |
+
implies = ["profiling"],
|
| 419 |
+
),
|
| 420 |
+
|
| 421 |
+
# Turns on full debug info (-g3).
|
| 422 |
+
feature(name = "full_debug_info"),
|
| 423 |
+
|
| 424 |
+
# Enables the use of "Emscripten" Pthread implementation.
|
| 425 |
+
# https://kripken.github.io/emscripten-site/docs/porting/pthreads.html
|
| 426 |
+
# https://github.com/kripken/emscripten/wiki/Pthreads-with-WebAssembly
|
| 427 |
+
feature(name = "use_pthreads"),
|
| 428 |
+
|
| 429 |
+
# If enabled, the runtime will exit when main() completes.
|
| 430 |
+
feature(name = "exit_runtime"),
|
| 431 |
+
|
| 432 |
+
# Primarily for toolchain maintainers:
|
| 433 |
+
feature(name = "emcc_debug"),
|
| 434 |
+
feature(name = "emcc_debug_link"),
|
| 435 |
+
feature(
|
| 436 |
+
name = "llvm_backend",
|
| 437 |
+
requires = [feature_set(features = ["crosstool_cpu_wasm"])],
|
| 438 |
+
enabled = True,
|
| 439 |
+
),
|
| 440 |
+
|
| 441 |
+
# Remove once flag is flipped.
|
| 442 |
+
# See https://github.com/bazelbuild/bazel/issues/7687
|
| 443 |
+
feature(
|
| 444 |
+
name = "do_not_split_linking_cmdline",
|
| 445 |
+
),
|
| 446 |
+
|
| 447 |
+
# Adds simd support, only available with the llvm backend.
|
| 448 |
+
feature(
|
| 449 |
+
name = "wasm_simd",
|
| 450 |
+
requires = [feature_set(features = ["llvm_backend"])],
|
| 451 |
+
),
|
| 452 |
+
# Adds relaxed-simd support, only available with the llvm backend.
|
| 453 |
+
feature(
|
| 454 |
+
name = "wasm_relaxed_simd",
|
| 455 |
+
requires = [feature_set(features = ["llvm_backend"])],
|
| 456 |
+
),
|
| 457 |
+
feature(
|
| 458 |
+
name = "precise_long_double_printf",
|
| 459 |
+
enabled = True,
|
| 460 |
+
),
|
| 461 |
+
feature(
|
| 462 |
+
name = "wasm_warnings_as_errors",
|
| 463 |
+
enabled = False,
|
| 464 |
+
),
|
| 465 |
+
|
| 466 |
+
# ASan and UBSan. See also:
|
| 467 |
+
# https://emscripten.org/docs/debugging/Sanitizers.html
|
| 468 |
+
feature(name = "wasm_asan"),
|
| 469 |
+
feature(name = "wasm_ubsan"),
|
| 470 |
+
feature(
|
| 471 |
+
name = "output_format_js",
|
| 472 |
+
enabled = True,
|
| 473 |
+
),
|
| 474 |
+
feature(
|
| 475 |
+
name = "wasm_standalone",
|
| 476 |
+
),
|
| 477 |
+
]
|
| 478 |
+
|
| 479 |
+
crosstool_default_flag_sets = [
|
| 480 |
+
# Compile, Link, and CC_FLAGS make variable
|
| 481 |
+
flag_set(
|
| 482 |
+
actions = [
|
| 483 |
+
ACTION_NAMES.c_compile,
|
| 484 |
+
ACTION_NAMES.cpp_compile,
|
| 485 |
+
ACTION_NAMES.linkstamp_compile,
|
| 486 |
+
ACTION_NAMES.assemble,
|
| 487 |
+
ACTION_NAMES.preprocess_assemble,
|
| 488 |
+
ACTION_NAMES.cpp_header_parsing,
|
| 489 |
+
ACTION_NAMES.cpp_module_compile,
|
| 490 |
+
ACTION_NAMES.cpp_module_codegen,
|
| 491 |
+
ACTION_NAMES.clif_match,
|
| 492 |
+
ACTION_NAMES.cpp_link_executable,
|
| 493 |
+
ACTION_NAMES.cpp_link_dynamic_library,
|
| 494 |
+
ACTION_NAMES.cpp_link_nodeps_dynamic_library,
|
| 495 |
+
],
|
| 496 |
+
flag_groups = [
|
| 497 |
+
flag_group(
|
| 498 |
+
flags = ["--sysroot=%{sysroot}"],
|
| 499 |
+
expand_if_available = "sysroot",
|
| 500 |
+
),
|
| 501 |
+
],
|
| 502 |
+
),
|
| 503 |
+
# Compile + Link
|
| 504 |
+
flag_set(
|
| 505 |
+
actions = [
|
| 506 |
+
ACTION_NAMES.c_compile,
|
| 507 |
+
ACTION_NAMES.cpp_compile,
|
| 508 |
+
ACTION_NAMES.linkstamp_compile,
|
| 509 |
+
ACTION_NAMES.assemble,
|
| 510 |
+
ACTION_NAMES.preprocess_assemble,
|
| 511 |
+
ACTION_NAMES.cpp_header_parsing,
|
| 512 |
+
ACTION_NAMES.cpp_module_compile,
|
| 513 |
+
ACTION_NAMES.cpp_module_codegen,
|
| 514 |
+
ACTION_NAMES.clif_match,
|
| 515 |
+
ACTION_NAMES.cpp_link_executable,
|
| 516 |
+
ACTION_NAMES.cpp_link_dynamic_library,
|
| 517 |
+
ACTION_NAMES.cpp_link_nodeps_dynamic_library,
|
| 518 |
+
],
|
| 519 |
+
# This forces color diagnostics even on Forge (where we don't have an
|
| 520 |
+
# attached terminal).
|
| 521 |
+
flags = [
|
| 522 |
+
"-fdiagnostics-color",
|
| 523 |
+
],
|
| 524 |
+
),
|
| 525 |
+
# C++ compiles (and implicitly link)
|
| 526 |
+
flag_set(
|
| 527 |
+
actions = all_cpp_compile_actions,
|
| 528 |
+
flags = [
|
| 529 |
+
"-fno-exceptions",
|
| 530 |
+
],
|
| 531 |
+
not_features = ["exceptions", "wasm_exceptions"],
|
| 532 |
+
),
|
| 533 |
+
flag_set(
|
| 534 |
+
actions = all_cpp_compile_actions,
|
| 535 |
+
flags = [
|
| 536 |
+
"-fexceptions",
|
| 537 |
+
],
|
| 538 |
+
features = ["exceptions"],
|
| 539 |
+
),
|
| 540 |
+
flag_set(
|
| 541 |
+
actions = all_cpp_compile_actions +
|
| 542 |
+
all_link_actions,
|
| 543 |
+
flags = [
|
| 544 |
+
"-fwasm-exceptions",
|
| 545 |
+
],
|
| 546 |
+
features = ["wasm_exceptions"],
|
| 547 |
+
),
|
| 548 |
+
# All compiles (and implicitly link)
|
| 549 |
+
flag_set(
|
| 550 |
+
actions = all_compile_actions +
|
| 551 |
+
all_link_actions,
|
| 552 |
+
flags = [
|
| 553 |
+
"-fno-strict-aliasing",
|
| 554 |
+
"-funsigned-char",
|
| 555 |
+
"-no-canonical-prefixes",
|
| 556 |
+
],
|
| 557 |
+
),
|
| 558 |
+
# Language Features
|
| 559 |
+
flag_set(
|
| 560 |
+
actions = all_cpp_compile_actions,
|
| 561 |
+
flags = ["-std=gnu++17", "-nostdinc", "-nostdinc++"],
|
| 562 |
+
),
|
| 563 |
+
|
| 564 |
+
# Emscripten-specific settings:
|
| 565 |
+
flag_set(
|
| 566 |
+
actions = all_compile_actions + all_link_actions,
|
| 567 |
+
flags = ["-s", "WASM=0"],
|
| 568 |
+
features = ["crosstool_cpu_asmjs"],
|
| 569 |
+
),
|
| 570 |
+
flag_set(
|
| 571 |
+
actions = all_compile_actions +
|
| 572 |
+
all_link_actions,
|
| 573 |
+
flags = ["-s", "USE_PTHREADS=1"],
|
| 574 |
+
features = ["use_pthreads"],
|
| 575 |
+
),
|
| 576 |
+
flag_set(
|
| 577 |
+
actions = all_link_actions,
|
| 578 |
+
flags = ["-s", "EXIT_RUNTIME=1"],
|
| 579 |
+
features = ["exit_runtime"],
|
| 580 |
+
),
|
| 581 |
+
flag_set(
|
| 582 |
+
actions = all_compile_actions + all_link_actions,
|
| 583 |
+
flags = ["-pthread"],
|
| 584 |
+
features = ["llvm_backend", "use_pthreads"],
|
| 585 |
+
),
|
| 586 |
+
flag_set(
|
| 587 |
+
actions = all_compile_actions + all_link_actions,
|
| 588 |
+
flags = ["-msimd128"],
|
| 589 |
+
features = ["wasm_simd"],
|
| 590 |
+
),
|
| 591 |
+
flag_set(
|
| 592 |
+
actions = all_compile_actions + all_link_actions,
|
| 593 |
+
flags = ["-msimd128", "-mrelaxed-simd"],
|
| 594 |
+
features = ["wasm_relaxed_simd"],
|
| 595 |
+
),
|
| 596 |
+
flag_set(
|
| 597 |
+
actions = all_link_actions,
|
| 598 |
+
flags = ["-s", "PRINTF_LONG_DOUBLE=1"],
|
| 599 |
+
features = ["precise_long_double_printf"],
|
| 600 |
+
),
|
| 601 |
+
flag_set(
|
| 602 |
+
actions = all_link_actions,
|
| 603 |
+
flags = ["--oformat=js"],
|
| 604 |
+
features = ["output_format_js"],
|
| 605 |
+
),
|
| 606 |
+
|
| 607 |
+
# Opt
|
| 608 |
+
flag_set(
|
| 609 |
+
actions = preprocessor_compile_actions,
|
| 610 |
+
flags = ["-DNDEBUG"],
|
| 611 |
+
features = ["opt"],
|
| 612 |
+
),
|
| 613 |
+
flag_set(
|
| 614 |
+
actions = all_compile_actions,
|
| 615 |
+
flags = ["-fomit-frame-pointer"],
|
| 616 |
+
features = ["opt"],
|
| 617 |
+
),
|
| 618 |
+
flag_set(
|
| 619 |
+
actions = all_compile_actions +
|
| 620 |
+
all_link_actions,
|
| 621 |
+
flags = ["-O2"],
|
| 622 |
+
features = ["opt"],
|
| 623 |
+
),
|
| 624 |
+
|
| 625 |
+
# Users can override opt-level with semantic names...
|
| 626 |
+
flag_set(
|
| 627 |
+
actions = all_compile_actions +
|
| 628 |
+
all_link_actions,
|
| 629 |
+
flags = ["-Oz"],
|
| 630 |
+
features = ["optimized_for_size", "opt"],
|
| 631 |
+
),
|
| 632 |
+
flag_set(
|
| 633 |
+
actions = all_compile_actions +
|
| 634 |
+
all_link_actions,
|
| 635 |
+
flags = ["-O3"],
|
| 636 |
+
features = ["optimized_for_speed", "opt"],
|
| 637 |
+
),
|
| 638 |
+
|
| 639 |
+
# Fastbuild
|
| 640 |
+
flag_set(
|
| 641 |
+
actions = all_compile_actions,
|
| 642 |
+
flags = ["-fomit-frame-pointer"],
|
| 643 |
+
features = ["fastbuild"],
|
| 644 |
+
),
|
| 645 |
+
flag_set(
|
| 646 |
+
actions = all_compile_actions +
|
| 647 |
+
all_link_actions,
|
| 648 |
+
flags = ["-O0"],
|
| 649 |
+
features = ["fastbuild"],
|
| 650 |
+
),
|
| 651 |
+
|
| 652 |
+
# Dbg
|
| 653 |
+
flag_set(
|
| 654 |
+
actions = all_compile_actions,
|
| 655 |
+
flags = ["-fno-omit-frame-pointer"],
|
| 656 |
+
features = ["dbg"],
|
| 657 |
+
),
|
| 658 |
+
flag_set(
|
| 659 |
+
actions = all_compile_actions +
|
| 660 |
+
all_link_actions,
|
| 661 |
+
flags = ["-g", "-O0"],
|
| 662 |
+
features = ["dbg"],
|
| 663 |
+
),
|
| 664 |
+
flag_set(
|
| 665 |
+
actions = all_compile_actions +
|
| 666 |
+
all_link_actions,
|
| 667 |
+
flags = [
|
| 668 |
+
"-g",
|
| 669 |
+
"-fsanitize=address",
|
| 670 |
+
"-O1",
|
| 671 |
+
"-DADDRESS_SANITIZER=1",
|
| 672 |
+
"-fno-omit-frame-pointer",
|
| 673 |
+
],
|
| 674 |
+
features = ["wasm_asan"],
|
| 675 |
+
),
|
| 676 |
+
flag_set(
|
| 677 |
+
actions = all_compile_actions +
|
| 678 |
+
all_link_actions,
|
| 679 |
+
flags = [
|
| 680 |
+
"-g3",
|
| 681 |
+
"-fsanitize=undefined",
|
| 682 |
+
"-O1",
|
| 683 |
+
"-DUNDEFINED_BEHAVIOR_SANITIZER=1",
|
| 684 |
+
"-fno-omit-frame-pointer",
|
| 685 |
+
"-fno-sanitize=vptr",
|
| 686 |
+
],
|
| 687 |
+
features = ["wasm_ubsan"],
|
| 688 |
+
),
|
| 689 |
+
|
| 690 |
+
# Profiling provides full debug info and a special --profiling flag
|
| 691 |
+
# to control name mangling
|
| 692 |
+
flag_set(
|
| 693 |
+
actions = all_link_actions,
|
| 694 |
+
flags = ["--profiling"],
|
| 695 |
+
features = ["profiling"],
|
| 696 |
+
),
|
| 697 |
+
flag_set(
|
| 698 |
+
actions = all_link_actions,
|
| 699 |
+
flags = ["--profiling_funcs"],
|
| 700 |
+
features = ["profiling_funcs"],
|
| 701 |
+
),
|
| 702 |
+
flag_set(
|
| 703 |
+
actions = all_compile_actions +
|
| 704 |
+
all_link_actions,
|
| 705 |
+
flags = ["-g3"],
|
| 706 |
+
features = ["full_debug_info"],
|
| 707 |
+
),
|
| 708 |
+
flag_set(
|
| 709 |
+
actions = all_link_actions,
|
| 710 |
+
flags = ["-gseparate-dwarf"],
|
| 711 |
+
features = ["dwarf_debug_info"],
|
| 712 |
+
),
|
| 713 |
+
flag_set(
|
| 714 |
+
actions = all_compile_actions +
|
| 715 |
+
all_link_actions,
|
| 716 |
+
flags = ["-fdebug-compilation-dir=."],
|
| 717 |
+
features = ["dwarf_debug_info"],
|
| 718 |
+
),
|
| 719 |
+
# Generic warning flag list
|
| 720 |
+
flag_set(
|
| 721 |
+
actions = all_compile_actions,
|
| 722 |
+
flags = CROSSTOOL_DEFAULT_WARNINGS,
|
| 723 |
+
),
|
| 724 |
+
|
| 725 |
+
# Defines and Includes and Paths and such
|
| 726 |
+
flag_set(
|
| 727 |
+
actions = all_compile_actions,
|
| 728 |
+
flag_groups = [
|
| 729 |
+
flag_group(flags = ["-fPIC"], expand_if_available = "pic"),
|
| 730 |
+
],
|
| 731 |
+
),
|
| 732 |
+
flag_set(
|
| 733 |
+
actions = preprocessor_compile_actions,
|
| 734 |
+
flag_groups = [
|
| 735 |
+
flag_group(
|
| 736 |
+
flags = ["-D%{preprocessor_defines}"],
|
| 737 |
+
iterate_over = "preprocessor_defines",
|
| 738 |
+
),
|
| 739 |
+
],
|
| 740 |
+
),
|
| 741 |
+
flag_set(
|
| 742 |
+
actions = preprocessor_compile_actions,
|
| 743 |
+
flag_groups = [
|
| 744 |
+
flag_group(
|
| 745 |
+
flags = ["-include", "%{includes}"],
|
| 746 |
+
iterate_over = "includes",
|
| 747 |
+
expand_if_available = "includes",
|
| 748 |
+
),
|
| 749 |
+
],
|
| 750 |
+
),
|
| 751 |
+
flag_set(
|
| 752 |
+
actions = preprocessor_compile_actions,
|
| 753 |
+
flag_groups = [
|
| 754 |
+
flag_group(
|
| 755 |
+
flags = ["-iquote", "%{quote_include_paths}"],
|
| 756 |
+
iterate_over = "quote_include_paths",
|
| 757 |
+
),
|
| 758 |
+
flag_group(
|
| 759 |
+
flags = ["-I%{include_paths}"],
|
| 760 |
+
iterate_over = "include_paths",
|
| 761 |
+
),
|
| 762 |
+
flag_group(
|
| 763 |
+
flags = ["-isystem", "%{system_include_paths}"],
|
| 764 |
+
iterate_over = "system_include_paths",
|
| 765 |
+
),
|
| 766 |
+
],
|
| 767 |
+
),
|
| 768 |
+
|
| 769 |
+
## Linking options (not libs -- those go last)
|
| 770 |
+
|
| 771 |
+
# Generic link options
|
| 772 |
+
flag_set(
|
| 773 |
+
actions = [
|
| 774 |
+
ACTION_NAMES.cpp_link_dynamic_library,
|
| 775 |
+
ACTION_NAMES.cpp_link_nodeps_dynamic_library,
|
| 776 |
+
],
|
| 777 |
+
flags = ["-shared"],
|
| 778 |
+
),
|
| 779 |
+
|
| 780 |
+
# Linker search paths and objects:
|
| 781 |
+
flag_set(
|
| 782 |
+
actions = all_link_actions,
|
| 783 |
+
flag_groups = [
|
| 784 |
+
flag_group(
|
| 785 |
+
iterate_over = "runtime_library_search_directories",
|
| 786 |
+
flag_groups = [
|
| 787 |
+
flag_group(
|
| 788 |
+
flags = [
|
| 789 |
+
"-Wl,-rpath,$EXEC_ORIGIN/%{runtime_library_search_directories}",
|
| 790 |
+
],
|
| 791 |
+
expand_if_true = "is_cc_test",
|
| 792 |
+
),
|
| 793 |
+
flag_group(
|
| 794 |
+
flags = [
|
| 795 |
+
"-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}",
|
| 796 |
+
],
|
| 797 |
+
expand_if_false = "is_cc_test",
|
| 798 |
+
),
|
| 799 |
+
],
|
| 800 |
+
expand_if_available = "runtime_library_search_directories",
|
| 801 |
+
),
|
| 802 |
+
],
|
| 803 |
+
),
|
| 804 |
+
flag_set(
|
| 805 |
+
actions = all_link_actions,
|
| 806 |
+
flag_groups = [
|
| 807 |
+
flag_group(
|
| 808 |
+
flags = ["-L%{library_search_directories}"],
|
| 809 |
+
iterate_over = "library_search_directories",
|
| 810 |
+
expand_if_available = "library_search_directories",
|
| 811 |
+
),
|
| 812 |
+
],
|
| 813 |
+
),
|
| 814 |
+
flag_set(
|
| 815 |
+
actions = all_link_actions,
|
| 816 |
+
flag_groups = [
|
| 817 |
+
flag_group(
|
| 818 |
+
# This is actually a list of object files from the linkstamp steps
|
| 819 |
+
flags = ["%{linkstamp_paths}"],
|
| 820 |
+
iterate_over = "linkstamp_paths",
|
| 821 |
+
expand_if_available = "linkstamp_paths",
|
| 822 |
+
),
|
| 823 |
+
],
|
| 824 |
+
),
|
| 825 |
+
flag_set(
|
| 826 |
+
actions = all_link_actions,
|
| 827 |
+
flag_groups = [
|
| 828 |
+
flag_group(
|
| 829 |
+
flags = ["@%{thinlto_param_file}"],
|
| 830 |
+
expand_if_available = "libraries_to_link",
|
| 831 |
+
expand_if_true = "thinlto_param_file",
|
| 832 |
+
),
|
| 833 |
+
flag_group(
|
| 834 |
+
iterate_over = "libraries_to_link",
|
| 835 |
+
flag_groups = [
|
| 836 |
+
flag_group(
|
| 837 |
+
flags = ["-Wl,--start-lib"],
|
| 838 |
+
expand_if_equal = variable_with_value(
|
| 839 |
+
name = "libraries_to_link.type",
|
| 840 |
+
value = "object_file_group",
|
| 841 |
+
),
|
| 842 |
+
),
|
| 843 |
+
flag_group(
|
| 844 |
+
flags = ["-Wl,-whole-archive"],
|
| 845 |
+
expand_if_true = "libraries_to_link.is_whole_archive",
|
| 846 |
+
),
|
| 847 |
+
flag_group(
|
| 848 |
+
flags = ["%{libraries_to_link.object_files}"],
|
| 849 |
+
iterate_over = "libraries_to_link.object_files",
|
| 850 |
+
expand_if_equal = variable_with_value(
|
| 851 |
+
name = "libraries_to_link.type",
|
| 852 |
+
value = "object_file_group",
|
| 853 |
+
),
|
| 854 |
+
),
|
| 855 |
+
flag_group(
|
| 856 |
+
flags = ["%{libraries_to_link.name}"],
|
| 857 |
+
expand_if_equal = variable_with_value(
|
| 858 |
+
name = "libraries_to_link.type",
|
| 859 |
+
value = "object_file",
|
| 860 |
+
),
|
| 861 |
+
),
|
| 862 |
+
flag_group(
|
| 863 |
+
flags = ["%{libraries_to_link.name}"],
|
| 864 |
+
expand_if_equal = variable_with_value(
|
| 865 |
+
name = "libraries_to_link.type",
|
| 866 |
+
value = "interface_library",
|
| 867 |
+
),
|
| 868 |
+
),
|
| 869 |
+
flag_group(
|
| 870 |
+
flags = ["%{libraries_to_link.name}"],
|
| 871 |
+
expand_if_equal = variable_with_value(
|
| 872 |
+
name = "libraries_to_link.type",
|
| 873 |
+
value = "static_library",
|
| 874 |
+
),
|
| 875 |
+
),
|
| 876 |
+
flag_group(
|
| 877 |
+
flags = ["-l%{libraries_to_link.name}"],
|
| 878 |
+
expand_if_equal = variable_with_value(
|
| 879 |
+
name = "libraries_to_link.type",
|
| 880 |
+
value = "dynamic_library",
|
| 881 |
+
),
|
| 882 |
+
),
|
| 883 |
+
flag_group(
|
| 884 |
+
flags = ["-l:%{libraries_to_link.name}"],
|
| 885 |
+
expand_if_equal = variable_with_value(
|
| 886 |
+
name = "libraries_to_link.type",
|
| 887 |
+
value = "versioned_dynamic_library",
|
| 888 |
+
),
|
| 889 |
+
),
|
| 890 |
+
flag_group(
|
| 891 |
+
flags = ["-Wl,-no-whole-archive"],
|
| 892 |
+
expand_if_true = "libraries_to_link.is_whole_archive",
|
| 893 |
+
),
|
| 894 |
+
flag_group(
|
| 895 |
+
flags = ["-Wl,--end-lib"],
|
| 896 |
+
expand_if_equal = variable_with_value(
|
| 897 |
+
name = "libraries_to_link.type",
|
| 898 |
+
value = "object_file_group",
|
| 899 |
+
),
|
| 900 |
+
),
|
| 901 |
+
],
|
| 902 |
+
expand_if_available = "libraries_to_link",
|
| 903 |
+
),
|
| 904 |
+
],
|
| 905 |
+
),
|
| 906 |
+
|
| 907 |
+
# Configure the header parsing and preprocessing.
|
| 908 |
+
flag_set(
|
| 909 |
+
actions = [ACTION_NAMES.cpp_header_parsing],
|
| 910 |
+
flags = ["-xc++-header", "-fsyntax-only"],
|
| 911 |
+
features = ["parse_headers"],
|
| 912 |
+
),
|
| 913 |
+
|
| 914 |
+
# Note: user compile flags should be nearly last -- you probably
|
| 915 |
+
# don't want to put any more features after this!
|
| 916 |
+
flag_set(
|
| 917 |
+
actions = [
|
| 918 |
+
ACTION_NAMES.c_compile,
|
| 919 |
+
ACTION_NAMES.cpp_compile,
|
| 920 |
+
ACTION_NAMES.linkstamp_compile,
|
| 921 |
+
ACTION_NAMES.assemble,
|
| 922 |
+
ACTION_NAMES.preprocess_assemble,
|
| 923 |
+
ACTION_NAMES.cpp_header_parsing,
|
| 924 |
+
ACTION_NAMES.cpp_module_compile,
|
| 925 |
+
ACTION_NAMES.cpp_module_codegen,
|
| 926 |
+
ACTION_NAMES.clif_match,
|
| 927 |
+
],
|
| 928 |
+
flag_groups = [
|
| 929 |
+
flag_group(
|
| 930 |
+
flags = ["%{user_compile_flags}"],
|
| 931 |
+
iterate_over = "user_compile_flags",
|
| 932 |
+
expand_if_available = "user_compile_flags",
|
| 933 |
+
),
|
| 934 |
+
],
|
| 935 |
+
),
|
| 936 |
+
flag_set(
|
| 937 |
+
actions = all_link_actions,
|
| 938 |
+
flag_groups = [
|
| 939 |
+
flag_group(
|
| 940 |
+
flags = ["%{user_link_flags}"],
|
| 941 |
+
iterate_over = "user_link_flags",
|
| 942 |
+
expand_if_available = "user_link_flags",
|
| 943 |
+
),
|
| 944 |
+
],
|
| 945 |
+
),
|
| 946 |
+
## Options which need to go late -- after all the user options -- go here.
|
| 947 |
+
flag_set(
|
| 948 |
+
# One might hope that these options would only be needed for C++
|
| 949 |
+
# compiles. But, sadly, users compile ".c" files with custom
|
| 950 |
+
# copts=["-x", "c++"], and expect that to be able to find C++ stdlib
|
| 951 |
+
# headers. It might be worth pondering how blaze could support this sort
|
| 952 |
+
# of use-case better.
|
| 953 |
+
actions = preprocessor_compile_actions +
|
| 954 |
+
[ACTION_NAMES.cc_flags_make_variable],
|
| 955 |
+
flags = [
|
| 956 |
+
"-iwithsysroot" + "/include/c++/v1",
|
| 957 |
+
"-iwithsysroot" + "/include/compat",
|
| 958 |
+
"-iwithsysroot" + "/include",
|
| 959 |
+
"-isystem",
|
| 960 |
+
emscripten_dir + "/lib/clang/23/include",
|
| 961 |
+
],
|
| 962 |
+
),
|
| 963 |
+
# Inputs and outputs
|
| 964 |
+
flag_set(
|
| 965 |
+
actions = [
|
| 966 |
+
ACTION_NAMES.c_compile,
|
| 967 |
+
ACTION_NAMES.cpp_compile,
|
| 968 |
+
ACTION_NAMES.linkstamp_compile,
|
| 969 |
+
ACTION_NAMES.assemble,
|
| 970 |
+
ACTION_NAMES.preprocess_assemble,
|
| 971 |
+
ACTION_NAMES.cpp_header_parsing,
|
| 972 |
+
ACTION_NAMES.cpp_module_compile,
|
| 973 |
+
ACTION_NAMES.cpp_module_codegen,
|
| 974 |
+
ACTION_NAMES.clif_match,
|
| 975 |
+
],
|
| 976 |
+
flag_groups = [
|
| 977 |
+
flag_group(
|
| 978 |
+
flags = ["-MD", "-MF", "%{dependency_file}"],
|
| 979 |
+
expand_if_available = "dependency_file",
|
| 980 |
+
),
|
| 981 |
+
],
|
| 982 |
+
),
|
| 983 |
+
flag_set(
|
| 984 |
+
actions = [
|
| 985 |
+
ACTION_NAMES.c_compile,
|
| 986 |
+
ACTION_NAMES.cpp_compile,
|
| 987 |
+
ACTION_NAMES.linkstamp_compile,
|
| 988 |
+
ACTION_NAMES.assemble,
|
| 989 |
+
ACTION_NAMES.preprocess_assemble,
|
| 990 |
+
ACTION_NAMES.cpp_header_parsing,
|
| 991 |
+
ACTION_NAMES.cpp_module_compile,
|
| 992 |
+
ACTION_NAMES.cpp_module_codegen,
|
| 993 |
+
ACTION_NAMES.clif_match,
|
| 994 |
+
],
|
| 995 |
+
flag_groups = [
|
| 996 |
+
flag_group(
|
| 997 |
+
flags = ["-c", "%{source_file}"],
|
| 998 |
+
expand_if_available = "source_file",
|
| 999 |
+
),
|
| 1000 |
+
],
|
| 1001 |
+
),
|
| 1002 |
+
flag_set(
|
| 1003 |
+
actions = [
|
| 1004 |
+
ACTION_NAMES.c_compile,
|
| 1005 |
+
ACTION_NAMES.cpp_compile,
|
| 1006 |
+
ACTION_NAMES.linkstamp_compile,
|
| 1007 |
+
ACTION_NAMES.assemble,
|
| 1008 |
+
ACTION_NAMES.preprocess_assemble,
|
| 1009 |
+
ACTION_NAMES.cpp_header_parsing,
|
| 1010 |
+
ACTION_NAMES.cpp_module_compile,
|
| 1011 |
+
ACTION_NAMES.cpp_module_codegen,
|
| 1012 |
+
ACTION_NAMES.clif_match,
|
| 1013 |
+
],
|
| 1014 |
+
flag_groups = [
|
| 1015 |
+
flag_group(
|
| 1016 |
+
flags = ["-S"],
|
| 1017 |
+
expand_if_available = "output_assembly_file",
|
| 1018 |
+
),
|
| 1019 |
+
flag_group(
|
| 1020 |
+
flags = ["-E"],
|
| 1021 |
+
expand_if_available = "output_preprocess_file",
|
| 1022 |
+
),
|
| 1023 |
+
flag_group(
|
| 1024 |
+
flags = ["-o", "%{output_file}"],
|
| 1025 |
+
expand_if_available = "output_file",
|
| 1026 |
+
),
|
| 1027 |
+
],
|
| 1028 |
+
),
|
| 1029 |
+
flag_set(
|
| 1030 |
+
actions = all_link_actions,
|
| 1031 |
+
flag_groups = [
|
| 1032 |
+
flag_group(
|
| 1033 |
+
flags = ["-o", "%{output_execpath}"],
|
| 1034 |
+
expand_if_available = "output_execpath",
|
| 1035 |
+
),
|
| 1036 |
+
],
|
| 1037 |
+
),
|
| 1038 |
+
# And finally, the params file!
|
| 1039 |
+
flag_set(
|
| 1040 |
+
actions = all_link_actions,
|
| 1041 |
+
flag_groups = [
|
| 1042 |
+
flag_group(
|
| 1043 |
+
flags = ["@%{linker_param_file}"],
|
| 1044 |
+
expand_if_available = "linker_param_file",
|
| 1045 |
+
),
|
| 1046 |
+
],
|
| 1047 |
+
),
|
| 1048 |
+
flag_set(
|
| 1049 |
+
actions = all_compile_actions,
|
| 1050 |
+
flags = [
|
| 1051 |
+
"-Wno-builtin-macro-redefined",
|
| 1052 |
+
# Genrules may not escape quotes enough for these, so
|
| 1053 |
+
# don't put them into $(CC_FLAGS):
|
| 1054 |
+
'-D__DATE__="redacted"',
|
| 1055 |
+
'-D__TIMESTAMP__="redacted"',
|
| 1056 |
+
'-D__TIME__="redacted"',
|
| 1057 |
+
],
|
| 1058 |
+
),
|
| 1059 |
+
flag_set(
|
| 1060 |
+
actions = all_compile_actions,
|
| 1061 |
+
flags = ["-Werror"],
|
| 1062 |
+
features = ["wasm_warnings_as_errors"],
|
| 1063 |
+
),
|
| 1064 |
+
flag_set(
|
| 1065 |
+
actions = all_link_actions,
|
| 1066 |
+
flags = ["-sSTANDALONE_WASM"],
|
| 1067 |
+
features = ["wasm_standalone"],
|
| 1068 |
+
),
|
| 1069 |
+
]
|
| 1070 |
+
|
| 1071 |
+
crosstool_default_env_sets = [
|
| 1072 |
+
# Globals
|
| 1073 |
+
env_set(
|
| 1074 |
+
actions = all_compile_actions +
|
| 1075 |
+
all_link_actions +
|
| 1076 |
+
[ACTION_NAMES.cpp_link_static_library],
|
| 1077 |
+
env_entries = [
|
| 1078 |
+
env_entry(
|
| 1079 |
+
key = "EM_BIN_PATH",
|
| 1080 |
+
value = emscripten_dir,
|
| 1081 |
+
),
|
| 1082 |
+
env_entry(
|
| 1083 |
+
key = "EM_CONFIG_PATH",
|
| 1084 |
+
value = ctx.file.em_config.path,
|
| 1085 |
+
),
|
| 1086 |
+
env_entry(
|
| 1087 |
+
key = "NODE_JS_PATH",
|
| 1088 |
+
value = nodejs_path,
|
| 1089 |
+
),
|
| 1090 |
+
env_entry(
|
| 1091 |
+
key = "BAZEL_PYTHON_RELPATH",
|
| 1092 |
+
value = python_exec_runtime.interpreter.path,
|
| 1093 |
+
),
|
| 1094 |
+
],
|
| 1095 |
+
),
|
| 1096 |
+
# Use llvm backend. Off by default, enabled via --features=llvm_backend
|
| 1097 |
+
env_set(
|
| 1098 |
+
actions = all_compile_actions +
|
| 1099 |
+
all_link_actions +
|
| 1100 |
+
[ACTION_NAMES.cpp_link_static_library],
|
| 1101 |
+
env_entries = [env_entry(key = "EMCC_WASM_BACKEND", value = "1")],
|
| 1102 |
+
with_features = [with_feature_set(features = ["llvm_backend"])],
|
| 1103 |
+
),
|
| 1104 |
+
# Debug compile and link. Off by default, enabled via --features=emcc_debug
|
| 1105 |
+
env_set(
|
| 1106 |
+
actions = all_compile_actions,
|
| 1107 |
+
env_entries = [env_entry(key = "EMCC_DEBUG", value = "1")],
|
| 1108 |
+
with_features = [with_feature_set(features = ["emcc_debug"])],
|
| 1109 |
+
),
|
| 1110 |
+
|
| 1111 |
+
# Debug only link step. Off by default, enabled via --features=emcc_debug_link
|
| 1112 |
+
env_set(
|
| 1113 |
+
actions = all_link_actions,
|
| 1114 |
+
env_entries = [env_entry(key = "EMCC_DEBUG", value = "1")],
|
| 1115 |
+
with_features = [
|
| 1116 |
+
with_feature_set(features = ["emcc_debug"]),
|
| 1117 |
+
with_feature_set(features = ["emcc_debug_link"]),
|
| 1118 |
+
],
|
| 1119 |
+
),
|
| 1120 |
+
]
|
| 1121 |
+
|
| 1122 |
+
crosstool_default_flags_feature = feature(
|
| 1123 |
+
name = "crosstool_default_flags",
|
| 1124 |
+
enabled = True,
|
| 1125 |
+
flag_sets = crosstool_default_flag_sets,
|
| 1126 |
+
env_sets = crosstool_default_env_sets,
|
| 1127 |
+
)
|
| 1128 |
+
|
| 1129 |
+
features.append(crosstool_default_flags_feature)
|
| 1130 |
+
|
| 1131 |
+
cxx_builtin_include_directories = [
|
| 1132 |
+
emscripten_dir + "/emscripten/cache/sysroot/include/c++/v1",
|
| 1133 |
+
emscripten_dir + "/emscripten/cache/sysroot/include/compat",
|
| 1134 |
+
emscripten_dir + "/emscripten/cache/sysroot/include",
|
| 1135 |
+
emscripten_dir + "/lib/clang/21/include",
|
| 1136 |
+
]
|
| 1137 |
+
|
| 1138 |
+
artifact_name_patterns = []
|
| 1139 |
+
|
| 1140 |
+
make_variables = []
|
| 1141 |
+
|
| 1142 |
+
return cc_common.create_cc_toolchain_config_info(
|
| 1143 |
+
ctx = ctx,
|
| 1144 |
+
features = features,
|
| 1145 |
+
action_configs = action_configs,
|
| 1146 |
+
artifact_name_patterns = artifact_name_patterns,
|
| 1147 |
+
cxx_builtin_include_directories = cxx_builtin_include_directories,
|
| 1148 |
+
toolchain_identifier = toolchain_identifier,
|
| 1149 |
+
host_system_name = host_system_name,
|
| 1150 |
+
target_system_name = target_system_name,
|
| 1151 |
+
target_cpu = target_cpu,
|
| 1152 |
+
target_libc = target_libc,
|
| 1153 |
+
compiler = compiler,
|
| 1154 |
+
abi_version = abi_version,
|
| 1155 |
+
abi_libc_version = abi_libc_version,
|
| 1156 |
+
tool_paths = tool_paths,
|
| 1157 |
+
make_variables = make_variables,
|
| 1158 |
+
builtin_sysroot = builtin_sysroot,
|
| 1159 |
+
cc_target_os = cc_target_os,
|
| 1160 |
+
)
|
| 1161 |
+
|
| 1162 |
+
emscripten_cc_toolchain_config_rule = rule(
|
| 1163 |
+
implementation = _impl,
|
| 1164 |
+
attrs = {
|
| 1165 |
+
"cpu": attr.string(mandatory = True, values = ["asmjs", "wasm"]),
|
| 1166 |
+
"em_config": attr.label(mandatory = True, allow_single_file = True),
|
| 1167 |
+
"emscripten_binaries": attr.label(mandatory = True, cfg = "exec"),
|
| 1168 |
+
"_exec_platform_info": attr.label(
|
| 1169 |
+
providers = [PlatformInfo],
|
| 1170 |
+
default = Label(":platform_info"),
|
| 1171 |
+
cfg = "exec",
|
| 1172 |
+
),
|
| 1173 |
+
},
|
| 1174 |
+
provides = [CcToolchainConfigInfo],
|
| 1175 |
+
toolchains = [
|
| 1176 |
+
"@rules_python//python:exec_tools_toolchain_type",
|
| 1177 |
+
"@rules_nodejs//nodejs:toolchain_type",
|
| 1178 |
+
]
|
| 1179 |
+
)
|
| 1180 |
+
|
| 1181 |
+
def _python_interpreter_files_impl(ctx):
|
| 1182 |
+
python_exec_runtime = (
|
| 1183 |
+
ctx.toolchains["@rules_python//python:exec_tools_toolchain_type"].
|
| 1184 |
+
exec_tools.exec_interpreter[platform_common.ToolchainInfo].py3_runtime
|
| 1185 |
+
)
|
| 1186 |
+
|
| 1187 |
+
return DefaultInfo(files = python_exec_runtime.files)
|
| 1188 |
+
|
| 1189 |
+
emscripten_python_interpreter_files = rule(
|
| 1190 |
+
implementation = _python_interpreter_files_impl,
|
| 1191 |
+
toolchains = [
|
| 1192 |
+
"@rules_python//python:exec_tools_toolchain_type",
|
| 1193 |
+
]
|
| 1194 |
+
)
|
bazel/emscripten_toolchain/wasm_binary.py
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Unpackages a bazel emscripten archive for use in a bazel BUILD rule.
|
| 2 |
+
|
| 3 |
+
This script will take a tar archive containing the output of the emscripten
|
| 4 |
+
toolchain. This file contains any output files produced by a wasm_cc_binary or a
|
| 5 |
+
cc_binary built with --config=wasm. The files are extracted into the given
|
| 6 |
+
output paths.
|
| 7 |
+
|
| 8 |
+
The contents of the archive are expected to match the given outputs extnames.
|
| 9 |
+
|
| 10 |
+
This script and its accompanying Bazel rule should allow you to extract a
|
| 11 |
+
WebAssembly binary into a larger web application.
|
| 12 |
+
"""
|
| 13 |
+
|
| 14 |
+
import argparse
|
| 15 |
+
import os
|
| 16 |
+
import tarfile
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
def ensure(f):
|
| 20 |
+
if not os.path.exists(f):
|
| 21 |
+
with open(f, 'w'):
|
| 22 |
+
pass
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
def main():
|
| 26 |
+
parser = argparse.ArgumentParser()
|
| 27 |
+
parser.add_argument('--archive', help='The archive to extract from.')
|
| 28 |
+
parser.add_argument('--outputs', help='Comma separated list of files that should be extracted from the archive. Only the extname has to match a file in the archive.')
|
| 29 |
+
parser.add_argument('--allow_empty_outputs', help='If an output listed in --outputs does not exist, create it anyways.', action='store_true')
|
| 30 |
+
args = parser.parse_args()
|
| 31 |
+
|
| 32 |
+
args.archive = os.path.normpath(args.archive)
|
| 33 |
+
args.outputs = args.outputs.split(",")
|
| 34 |
+
|
| 35 |
+
tar = tarfile.open(args.archive)
|
| 36 |
+
|
| 37 |
+
for member in tar.getmembers():
|
| 38 |
+
extname = '.' + member.name.split('.', 1)[1]
|
| 39 |
+
for idx, output in enumerate(args.outputs):
|
| 40 |
+
if output.endswith(extname):
|
| 41 |
+
member_file = tar.extractfile(member)
|
| 42 |
+
with open(output, "wb") as output_file:
|
| 43 |
+
output_file.write(member_file.read())
|
| 44 |
+
args.outputs.pop(idx)
|
| 45 |
+
break
|
| 46 |
+
|
| 47 |
+
for output in args.outputs:
|
| 48 |
+
extname = '.' + output.split('.', 1)[1]
|
| 49 |
+
if args.allow_empty_outputs:
|
| 50 |
+
ensure(output)
|
| 51 |
+
else:
|
| 52 |
+
print("[ERROR] Archive does not contain file with extname: %s" % extname)
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
if __name__ == '__main__':
|
| 56 |
+
main()
|
bazel/emscripten_toolchain/wasm_cc_binary.bzl
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""wasm_cc_binary rule for compiling C++ targets to WebAssembly.
|
| 2 |
+
"""
|
| 3 |
+
|
| 4 |
+
def _wasm_transition_impl(settings, attr):
|
| 5 |
+
_ignore = (settings, attr)
|
| 6 |
+
|
| 7 |
+
features = list(settings["//command_line_option:features"])
|
| 8 |
+
linkopts = list(settings["//command_line_option:linkopt"])
|
| 9 |
+
|
| 10 |
+
if attr.threads == "emscripten":
|
| 11 |
+
# threads enabled
|
| 12 |
+
features.append("use_pthreads")
|
| 13 |
+
elif attr.threads == "off":
|
| 14 |
+
# threads disabled
|
| 15 |
+
features.append("-use_pthreads")
|
| 16 |
+
|
| 17 |
+
if attr.exit_runtime == True:
|
| 18 |
+
features.append("exit_runtime")
|
| 19 |
+
|
| 20 |
+
if attr.backend == "llvm":
|
| 21 |
+
features.append("llvm_backend")
|
| 22 |
+
elif attr.backend == "emscripten":
|
| 23 |
+
features.append("-llvm_backend")
|
| 24 |
+
|
| 25 |
+
if attr.simd:
|
| 26 |
+
features.append("wasm_simd")
|
| 27 |
+
|
| 28 |
+
platform = "@emsdk//:platform_wasm"
|
| 29 |
+
if attr.standalone:
|
| 30 |
+
platform = "@emsdk//:platform_wasi"
|
| 31 |
+
features.append("wasm_standalone")
|
| 32 |
+
|
| 33 |
+
return {
|
| 34 |
+
"//command_line_option:compiler": "emscripten",
|
| 35 |
+
"//command_line_option:cpu": "wasm",
|
| 36 |
+
"//command_line_option:features": features,
|
| 37 |
+
"//command_line_option:dynamic_mode": "off",
|
| 38 |
+
"//command_line_option:linkopt": linkopts,
|
| 39 |
+
"//command_line_option:platforms": [platform],
|
| 40 |
+
# This is hardcoded to an empty cc_library because the malloc library
|
| 41 |
+
# is implicitly added by the emscripten toolchain
|
| 42 |
+
"//command_line_option:custom_malloc": "@emsdk//emscripten_toolchain:malloc",
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
_wasm_transition = transition(
|
| 46 |
+
implementation = _wasm_transition_impl,
|
| 47 |
+
inputs = [
|
| 48 |
+
"//command_line_option:features",
|
| 49 |
+
"//command_line_option:linkopt",
|
| 50 |
+
],
|
| 51 |
+
outputs = [
|
| 52 |
+
"//command_line_option:compiler",
|
| 53 |
+
"//command_line_option:cpu",
|
| 54 |
+
"//command_line_option:features",
|
| 55 |
+
"//command_line_option:dynamic_mode",
|
| 56 |
+
"//command_line_option:linkopt",
|
| 57 |
+
"//command_line_option:platforms",
|
| 58 |
+
"//command_line_option:custom_malloc",
|
| 59 |
+
],
|
| 60 |
+
)
|
| 61 |
+
|
| 62 |
+
_ALLOW_OUTPUT_EXTNAMES = [
|
| 63 |
+
".js",
|
| 64 |
+
".wasm",
|
| 65 |
+
".wasm.map",
|
| 66 |
+
".data",
|
| 67 |
+
".js.symbols",
|
| 68 |
+
".wasm.debug.wasm",
|
| 69 |
+
".html",
|
| 70 |
+
".ts",
|
| 71 |
+
".d.ts",
|
| 72 |
+
]
|
| 73 |
+
|
| 74 |
+
_WASM_BINARY_COMMON_ATTRS = {
|
| 75 |
+
"backend": attr.string(
|
| 76 |
+
default = "_default",
|
| 77 |
+
values = ["_default", "emscripten", "llvm"],
|
| 78 |
+
),
|
| 79 |
+
"cc_target": attr.label(
|
| 80 |
+
cfg = _wasm_transition,
|
| 81 |
+
mandatory = True,
|
| 82 |
+
),
|
| 83 |
+
"exit_runtime": attr.bool(
|
| 84 |
+
default = False,
|
| 85 |
+
),
|
| 86 |
+
"threads": attr.string(
|
| 87 |
+
default = "_default",
|
| 88 |
+
values = ["_default", "emscripten", "off"],
|
| 89 |
+
),
|
| 90 |
+
"simd": attr.bool(
|
| 91 |
+
default = False,
|
| 92 |
+
),
|
| 93 |
+
"standalone": attr.bool(
|
| 94 |
+
default = False,
|
| 95 |
+
),
|
| 96 |
+
"_allowlist_function_transition": attr.label(
|
| 97 |
+
default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
|
| 98 |
+
),
|
| 99 |
+
"_wasm_binary_extractor": attr.label(
|
| 100 |
+
executable = True,
|
| 101 |
+
allow_files = True,
|
| 102 |
+
cfg = "exec",
|
| 103 |
+
default = Label("@emsdk//emscripten_toolchain:wasm_binary"),
|
| 104 |
+
),
|
| 105 |
+
}
|
| 106 |
+
|
| 107 |
+
def _wasm_cc_binary_impl(ctx):
|
| 108 |
+
args = ctx.actions.args()
|
| 109 |
+
cc_target = ctx.attr.cc_target[0]
|
| 110 |
+
|
| 111 |
+
for output in ctx.outputs.outputs:
|
| 112 |
+
valid_extname = False
|
| 113 |
+
for allowed_extname in _ALLOW_OUTPUT_EXTNAMES:
|
| 114 |
+
if output.path.endswith(allowed_extname):
|
| 115 |
+
valid_extname = True
|
| 116 |
+
break
|
| 117 |
+
if not valid_extname:
|
| 118 |
+
fail("Invalid output '{}'. Allowed extnames: {}".format(output.basename, ", ".join(_ALLOW_OUTPUT_EXTNAMES)))
|
| 119 |
+
|
| 120 |
+
args.add_all("--archive", ctx.files.cc_target)
|
| 121 |
+
args.add_joined("--outputs", ctx.outputs.outputs, join_with = ",")
|
| 122 |
+
|
| 123 |
+
ctx.actions.run(
|
| 124 |
+
inputs = ctx.files.cc_target,
|
| 125 |
+
outputs = ctx.outputs.outputs,
|
| 126 |
+
arguments = [args],
|
| 127 |
+
executable = ctx.executable._wasm_binary_extractor,
|
| 128 |
+
)
|
| 129 |
+
|
| 130 |
+
return [
|
| 131 |
+
DefaultInfo(
|
| 132 |
+
files = depset(ctx.outputs.outputs),
|
| 133 |
+
# This is needed since rules like web_test usually have a data
|
| 134 |
+
# dependency on this target.
|
| 135 |
+
data_runfiles = ctx.runfiles(transitive_files = depset(ctx.outputs.outputs)),
|
| 136 |
+
),
|
| 137 |
+
OutputGroupInfo(_wasm_tar = cc_target.files),
|
| 138 |
+
]
|
| 139 |
+
|
| 140 |
+
def _wasm_cc_binary_legacy_impl(ctx):
|
| 141 |
+
cc_target = ctx.attr.cc_target[0]
|
| 142 |
+
outputs = [
|
| 143 |
+
ctx.outputs.loader,
|
| 144 |
+
ctx.outputs.wasm,
|
| 145 |
+
ctx.outputs.map,
|
| 146 |
+
ctx.outputs.data,
|
| 147 |
+
ctx.outputs.symbols,
|
| 148 |
+
ctx.outputs.dwarf,
|
| 149 |
+
ctx.outputs.html,
|
| 150 |
+
]
|
| 151 |
+
|
| 152 |
+
args = ctx.actions.args()
|
| 153 |
+
args.add("--allow_empty_outputs")
|
| 154 |
+
args.add_all("--archive", ctx.files.cc_target)
|
| 155 |
+
args.add_joined("--outputs", outputs, join_with = ",")
|
| 156 |
+
|
| 157 |
+
ctx.actions.run(
|
| 158 |
+
inputs = ctx.files.cc_target,
|
| 159 |
+
outputs = outputs,
|
| 160 |
+
arguments = [args],
|
| 161 |
+
executable = ctx.executable._wasm_binary_extractor,
|
| 162 |
+
)
|
| 163 |
+
|
| 164 |
+
return [
|
| 165 |
+
DefaultInfo(
|
| 166 |
+
executable = ctx.outputs.wasm,
|
| 167 |
+
files = depset(outputs),
|
| 168 |
+
# This is needed since rules like web_test usually have a data
|
| 169 |
+
# dependency on this target.
|
| 170 |
+
data_runfiles = ctx.runfiles(transitive_files = depset(outputs)),
|
| 171 |
+
),
|
| 172 |
+
OutputGroupInfo(_wasm_tar = cc_target.files),
|
| 173 |
+
]
|
| 174 |
+
|
| 175 |
+
_wasm_cc_binary = rule(
|
| 176 |
+
implementation = _wasm_cc_binary_impl,
|
| 177 |
+
attrs = dict(
|
| 178 |
+
_WASM_BINARY_COMMON_ATTRS,
|
| 179 |
+
outputs = attr.output_list(
|
| 180 |
+
allow_empty = False,
|
| 181 |
+
mandatory = True,
|
| 182 |
+
),
|
| 183 |
+
),
|
| 184 |
+
)
|
| 185 |
+
|
| 186 |
+
def _wasm_binary_legacy_outputs(name, cc_target):
|
| 187 |
+
basename = cc_target.name
|
| 188 |
+
basename = basename.split(".")[0]
|
| 189 |
+
outputs = {
|
| 190 |
+
"loader": "{}/{}.js".format(name, basename),
|
| 191 |
+
"wasm": "{}/{}.wasm".format(name, basename),
|
| 192 |
+
"map": "{}/{}.wasm.map".format(name, basename),
|
| 193 |
+
"data": "{}/{}.data".format(name, basename),
|
| 194 |
+
"symbols": "{}/{}.js.symbols".format(name, basename),
|
| 195 |
+
"dwarf": "{}/{}.wasm.debug.wasm".format(name, basename),
|
| 196 |
+
"html": "{}/{}.html".format(name, basename),
|
| 197 |
+
}
|
| 198 |
+
|
| 199 |
+
return outputs
|
| 200 |
+
|
| 201 |
+
_wasm_cc_binary_legacy = rule(
|
| 202 |
+
implementation = _wasm_cc_binary_legacy_impl,
|
| 203 |
+
attrs = _WASM_BINARY_COMMON_ATTRS,
|
| 204 |
+
outputs = _wasm_binary_legacy_outputs,
|
| 205 |
+
)
|
| 206 |
+
|
| 207 |
+
# Wraps a C++ Blaze target, extracting the appropriate files.
|
| 208 |
+
#
|
| 209 |
+
# This rule will transition to the emscripten toolchain in order
|
| 210 |
+
# to build the the cc_target as a WebAssembly binary.
|
| 211 |
+
#
|
| 212 |
+
# Args:
|
| 213 |
+
# name: The name of the rule.
|
| 214 |
+
# cc_target: The cc_binary or cc_library to extract files from.
|
| 215 |
+
def wasm_cc_binary(outputs = None, **kwargs):
|
| 216 |
+
# for backwards compatibility if no outputs are set the deprecated
|
| 217 |
+
# implementation is used.
|
| 218 |
+
if not outputs:
|
| 219 |
+
_wasm_cc_binary_legacy(**kwargs)
|
| 220 |
+
else:
|
| 221 |
+
_wasm_cc_binary(outputs = outputs, **kwargs)
|
bazel/emscripten_toolchain/wasm_rules.bzl
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Rules related to C++ and WebAssembly.
|
| 2 |
+
"""
|
| 3 |
+
|
| 4 |
+
load(":wasm_cc_binary.bzl", _wasm_cc_binary = "wasm_cc_binary")
|
| 5 |
+
|
| 6 |
+
wasm_cc_binary = _wasm_cc_binary
|
bazel/hello-world/BUILD
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
load("@rules_cc//cc:defs.bzl", "cc_binary")
|
| 2 |
+
load("//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary")
|
| 3 |
+
|
| 4 |
+
cc_binary(
|
| 5 |
+
name = "hello-world",
|
| 6 |
+
srcs = ["hello-world.cc"],
|
| 7 |
+
)
|
| 8 |
+
|
| 9 |
+
cc_binary(
|
| 10 |
+
name = "hello-world-simd",
|
| 11 |
+
srcs = ["hello-world-simd.cc"],
|
| 12 |
+
)
|
| 13 |
+
|
| 14 |
+
wasm_cc_binary(
|
| 15 |
+
name = "hello-world-wasm",
|
| 16 |
+
cc_target = ":hello-world",
|
| 17 |
+
)
|
| 18 |
+
|
| 19 |
+
wasm_cc_binary(
|
| 20 |
+
name = "hello-world-wasm-simd",
|
| 21 |
+
cc_target = ":hello-world-simd",
|
| 22 |
+
simd = True,
|
| 23 |
+
)
|
bazel/hello-world/hello-world-simd.cc
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#include <wasm_simd128.h>
|
| 2 |
+
|
| 3 |
+
void multiply_arrays(int* out, int* in_a, int* in_b, int size) {
|
| 4 |
+
for (int i = 0; i < size; i += 4) {
|
| 5 |
+
v128_t a = wasm_v128_load(&in_a[i]);
|
| 6 |
+
v128_t b = wasm_v128_load(&in_b[i]);
|
| 7 |
+
v128_t prod = wasm_i32x4_mul(a, b);
|
| 8 |
+
wasm_v128_store(&out[i], prod);
|
| 9 |
+
}
|
| 10 |
+
}
|
bazel/hello-world/hello-world.cc
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#include <iostream>
|
| 2 |
+
|
| 3 |
+
int main(int argc, char** argv) {
|
| 4 |
+
std::cout << "hello world!" << std::endl;
|
| 5 |
+
return 0;
|
| 6 |
+
}
|
bazel/remote_emscripten_repository.bzl
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
| 2 |
+
load("@rules_cc//cc:defs.bzl", "cc_toolchain", "cc_toolchain_suite")
|
| 3 |
+
load("//emscripten_toolchain:toolchain.bzl", "emscripten_cc_toolchain_config_rule", "emscripten_python_interpreter_files")
|
| 4 |
+
load(":emscripten_build_file.bzl", "EMSCRIPTEN_BUILD_FILE_CONTENT_TEMPLATE")
|
| 5 |
+
|
| 6 |
+
def remote_emscripten_repository(
|
| 7 |
+
name,
|
| 8 |
+
bin_extension,
|
| 9 |
+
**kwargs):
|
| 10 |
+
"""Imports an Emscripten from an http archive
|
| 11 |
+
|
| 12 |
+
Args:
|
| 13 |
+
name: A unique name for this Emscripten repository.
|
| 14 |
+
bin_extension: Extension for the binaries in this Emscripten repository
|
| 15 |
+
**kwargs: Args for http_archive. Refer to http_archive documentation for more info.
|
| 16 |
+
"""
|
| 17 |
+
http_archive(
|
| 18 |
+
name = name,
|
| 19 |
+
build_file_content = EMSCRIPTEN_BUILD_FILE_CONTENT_TEMPLATE.format(bin_extension = bin_extension),
|
| 20 |
+
**kwargs
|
| 21 |
+
)
|
| 22 |
+
|
| 23 |
+
def emscripten_toolchain_name(name):
|
| 24 |
+
return "emscripten_{}".format(name)
|
| 25 |
+
|
| 26 |
+
def _get_name_and_target(name):
|
| 27 |
+
return name, ":" + name
|
| 28 |
+
|
| 29 |
+
def create_toolchains(name, repo_name, exec_compatible_with):
|
| 30 |
+
"""Creates toolchain definition for an Emscripten
|
| 31 |
+
|
| 32 |
+
Register the toolchains defined by this macro via
|
| 33 |
+
`register_toolchains("//<path-to-target>:cc-toolchain-wasm-<name>")`
|
| 34 |
+
|
| 35 |
+
Args:
|
| 36 |
+
name: A unique name for this Emscripten toolchain
|
| 37 |
+
repo_name: The name of the Emscripten repository for this toolchain
|
| 38 |
+
exec_compatible_with: Execute platform constraints for the Emscripten toolchain associated
|
| 39 |
+
with this repository.
|
| 40 |
+
**kwargs: Args for http_archive. Refer to http_archive documentation for more info.
|
| 41 |
+
"""
|
| 42 |
+
common_files_name, common_files_target = _get_name_and_target("common_files_" + name)
|
| 43 |
+
compiler_files_name, compiler_files_target = _get_name_and_target("compiler_files_" + name)
|
| 44 |
+
linker_files_name, linker_files_target = _get_name_and_target("linker_files_" + name)
|
| 45 |
+
ar_files_name, ar_files_target = _get_name_and_target("ar_files_" + name)
|
| 46 |
+
all_files_name, all_files_target = _get_name_and_target("all_files_" + name)
|
| 47 |
+
cc_wasm_name, cc_wasm_target = _get_name_and_target("cc-compiler-wasm-" + name)
|
| 48 |
+
python_interpreter_name, python_interpreter_target = _get_name_and_target("python_interpreter-" + name)
|
| 49 |
+
|
| 50 |
+
wasm_name = "wasm-" + name
|
| 51 |
+
|
| 52 |
+
# These are file groups defined by the build_file_content on the Emscripten http_archive
|
| 53 |
+
remote_repo = "@{}//".format(repo_name)
|
| 54 |
+
repo_compiler_files_target = remote_repo + ":compiler_files"
|
| 55 |
+
repo_linker_files_target = remote_repo + ":linker_files"
|
| 56 |
+
repo_ar_files_target = remote_repo + ":ar_files"
|
| 57 |
+
|
| 58 |
+
emscripten_python_interpreter_files(
|
| 59 |
+
name = python_interpreter_name,
|
| 60 |
+
)
|
| 61 |
+
|
| 62 |
+
native.filegroup(
|
| 63 |
+
name = common_files_name,
|
| 64 |
+
srcs = [
|
| 65 |
+
"@emscripten_cache//:emscripten_config",
|
| 66 |
+
"@emsdk//emscripten_toolchain:env.sh",
|
| 67 |
+
"@emsdk//emscripten_toolchain:env.bat",
|
| 68 |
+
"@rules_nodejs//nodejs:current_node_toolchain",
|
| 69 |
+
python_interpreter_target,
|
| 70 |
+
],
|
| 71 |
+
)
|
| 72 |
+
|
| 73 |
+
native.filegroup(
|
| 74 |
+
name = compiler_files_name,
|
| 75 |
+
srcs = [
|
| 76 |
+
"@emsdk//emscripten_toolchain:emcc.sh",
|
| 77 |
+
"@emsdk//emscripten_toolchain:emcc.bat",
|
| 78 |
+
repo_compiler_files_target,
|
| 79 |
+
common_files_target,
|
| 80 |
+
],
|
| 81 |
+
)
|
| 82 |
+
|
| 83 |
+
native.filegroup(
|
| 84 |
+
name = linker_files_name,
|
| 85 |
+
srcs = [
|
| 86 |
+
"@emsdk//emscripten_toolchain:emcc_link.sh",
|
| 87 |
+
"@emsdk//emscripten_toolchain:emcc_link.bat",
|
| 88 |
+
"link_wrapper.py",
|
| 89 |
+
repo_linker_files_target,
|
| 90 |
+
common_files_target,
|
| 91 |
+
],
|
| 92 |
+
)
|
| 93 |
+
|
| 94 |
+
native.filegroup(
|
| 95 |
+
name = ar_files_name,
|
| 96 |
+
srcs = [
|
| 97 |
+
"@emsdk//emscripten_toolchain:emar.sh",
|
| 98 |
+
"@emsdk//emscripten_toolchain:emar.bat",
|
| 99 |
+
repo_ar_files_target,
|
| 100 |
+
common_files_target,
|
| 101 |
+
],
|
| 102 |
+
)
|
| 103 |
+
|
| 104 |
+
native.filegroup(
|
| 105 |
+
name = all_files_name,
|
| 106 |
+
srcs = [
|
| 107 |
+
ar_files_target,
|
| 108 |
+
compiler_files_target,
|
| 109 |
+
linker_files_target,
|
| 110 |
+
],
|
| 111 |
+
)
|
| 112 |
+
|
| 113 |
+
emscripten_cc_toolchain_config_rule(
|
| 114 |
+
name = wasm_name,
|
| 115 |
+
cpu = "wasm",
|
| 116 |
+
em_config = "@emscripten_cache//:emscripten_config",
|
| 117 |
+
emscripten_binaries = repo_compiler_files_target,
|
| 118 |
+
)
|
| 119 |
+
|
| 120 |
+
cc_toolchain(
|
| 121 |
+
name = cc_wasm_name,
|
| 122 |
+
all_files = all_files_target,
|
| 123 |
+
ar_files = ar_files_target,
|
| 124 |
+
as_files = ":empty",
|
| 125 |
+
compiler_files = compiler_files_target,
|
| 126 |
+
dwp_files = ":empty",
|
| 127 |
+
linker_files = linker_files_target,
|
| 128 |
+
objcopy_files = ":empty",
|
| 129 |
+
strip_files = ":empty",
|
| 130 |
+
toolchain_config = wasm_name,
|
| 131 |
+
toolchain_identifier = "emscripten-wasm-" + name,
|
| 132 |
+
)
|
| 133 |
+
|
| 134 |
+
native.toolchain(
|
| 135 |
+
name = "cc-toolchain-wasm-" + name,
|
| 136 |
+
target_compatible_with = ["@platforms//cpu:wasm32"],
|
| 137 |
+
exec_compatible_with = exec_compatible_with,
|
| 138 |
+
toolchain = cc_wasm_target,
|
| 139 |
+
toolchain_type = "@rules_cc//cc:toolchain_type",
|
| 140 |
+
)
|
| 141 |
+
|
| 142 |
+
cc_toolchain_suite(
|
| 143 |
+
name = "everything-" + name,
|
| 144 |
+
toolchains = {
|
| 145 |
+
"wasm": cc_wasm_target,
|
| 146 |
+
"wasm|emscripten": cc_wasm_target,
|
| 147 |
+
},
|
| 148 |
+
)
|
bazel/revisions.bzl
ADDED
|
@@ -0,0 +1,949 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# This file is automatically updated by emsdk/scripts/update_bazel_workspace.py
|
| 2 |
+
# DO NOT MODIFY
|
| 3 |
+
|
| 4 |
+
EMSCRIPTEN_TAGS = {
|
| 5 |
+
"5.0.7": struct(
|
| 6 |
+
hash = "6cd98e86d7749ff98b82b7f2ae78eb4f01942788",
|
| 7 |
+
sha_linux = "f96cc4df9263e386d70ad37c731959886cb2a7e983b7a68bdc9ccf32402be1bd",
|
| 8 |
+
sha_linux_arm64 = "3cd706f3c97bc9e2abc9898c66ed15988243d189194623a4fb02ec207dc48693",
|
| 9 |
+
sha_mac = "0ccd510ae3e1014ffc565de482982507d1c2d3d6dc6f5bf243e857c73bd5d352",
|
| 10 |
+
sha_mac_arm64 = "37554ed4c36abb1c802aa280f2c1ef9702e19e832a66c2fe6d940b65a2049b2c",
|
| 11 |
+
sha_win = "32995a98db21951cb7e84b4898b235ba57553c9f35eeaa158cfff052fab83856",
|
| 12 |
+
),
|
| 13 |
+
"5.0.6": struct(
|
| 14 |
+
hash = "1724b50443d92e23ef2a56abf0dc501206839cef",
|
| 15 |
+
sha_linux = "5688561ef52f981f2a3a939b783e6bdcfbb8487ae947a7d0aa6da4efc805dedd",
|
| 16 |
+
sha_linux_arm64 = "7cdaccc7ae87916462fa9567e73e4b22b746f9eacc1385aff9753bf56b12bc72",
|
| 17 |
+
sha_mac = "d26b1f7d8a17ad4aecc6b198c380e14033e9ecca76979ac59e1a63744641f415",
|
| 18 |
+
sha_mac_arm64 = "249121390c3bc89c59394143c768cb3c37586620eebe82a8f09f12af5003a31b",
|
| 19 |
+
sha_win = "bbea17bc23e80a15d959af2dcb8bd9d23d625701d784ffe9118267698d6e7049",
|
| 20 |
+
),
|
| 21 |
+
"5.0.5": struct(
|
| 22 |
+
hash = "6eae703422b3962d1ed75e15f728ece57aad6bd6",
|
| 23 |
+
sha_linux = "6b95750efacf09cc868ea2c8a3889529704c75acd04c5dcde03293b7aa56b002",
|
| 24 |
+
sha_linux_arm64 = "922e4fe6fbbcb0e303be8fb429f5ff2264c00c79e5b7f34a988df542d56a3669",
|
| 25 |
+
sha_mac = "52640186e373b9f15749d17a7b83b5c961bafe15c69229400c08b81f04528d1e",
|
| 26 |
+
sha_mac_arm64 = "34a2b349a6f1542241fb11abd5c7bd7ce89330183d764f620bb59f7264a1cf1d",
|
| 27 |
+
sha_win = "95fcef69d9128a75e4f6f7731a5c7d026fcf3f43dcd3d2c54ec7b3ae83ffa640",
|
| 28 |
+
),
|
| 29 |
+
"5.0.4": struct(
|
| 30 |
+
hash = "54d45123d7ad4aa96ce57e74a1f3f9d1c54e6402",
|
| 31 |
+
sha_linux = "dac0c07aaa3558b564b1252764b1b1aca3136bee34f54bb50130bb7bee124d7a",
|
| 32 |
+
sha_linux_arm64 = "0c632bf6a185906036edea8b39bc4658193674a27221c0f07d8c9b10ce5b3b9c",
|
| 33 |
+
sha_mac = "61c2d4ae5fc3cf601d8cd7291a9fc6a5cbf0e5e20ba7129ad172a7b0c9a8416b",
|
| 34 |
+
sha_mac_arm64 = "6246ab40dc94e1df47c6df41f8ebd2473dfa1c74b7079ff67c2fb1793bb87ea8",
|
| 35 |
+
sha_win = "b5863a51fc5c2227a2a743fb18da70e4b6f1b9ddc0fe4243f99cc8bca783bbde",
|
| 36 |
+
),
|
| 37 |
+
"5.0.3": struct(
|
| 38 |
+
hash = "065bfade0ee2c02138b83cb10049d8be95e146b6",
|
| 39 |
+
sha_linux = "7ae996db24911edc535cccf069fb8a3ed63e8dac7abe58e758431abfe3255165",
|
| 40 |
+
sha_linux_arm64 = "75fbc24f4e55e6011cbe31bd086758b7c47cee58d482ab54845def2b16dfb23f",
|
| 41 |
+
sha_mac = "b49f6dbc715864aaa38b161262cec91b32f34af32c6e87ee4cd4f3a98bb2a892",
|
| 42 |
+
sha_mac_arm64 = "91c38a2f68e7e307b351a3dc05637e2f4c5f083f185f7d59e70f6434889c5b94",
|
| 43 |
+
sha_win = "87a8ff5afeddfab1b602d6b4bcbd13ea9c8b951da1684740586cae3860aed9e9",
|
| 44 |
+
),
|
| 45 |
+
"5.0.2": struct(
|
| 46 |
+
hash = "0a320d2395858e63288b3632b81535444ca2c59d",
|
| 47 |
+
sha_linux = "e4982d48f5e7796526fbdeb719b2e437991cb41f7d658e6c29e333394d17a681",
|
| 48 |
+
sha_linux_arm64 = "7dc80fe9a32ff23b8328b9c3585040e263392d4b52f46909e5ebd6ba63f03d64",
|
| 49 |
+
sha_mac = "57c2a250c86d4fc19b961595076580b7eaa0c3838a59431a4df156c613a5e9ff",
|
| 50 |
+
sha_mac_arm64 = "fda96643a173de9f25be9bcbb50c26ebd4fe9bc109c842ca95ff5e6fbb89b7a5",
|
| 51 |
+
sha_win = "80e35f785c2e697cc2133c982156411715877ee54ce61a136fa3abd8b763cd0d",
|
| 52 |
+
),
|
| 53 |
+
"5.0.1": struct(
|
| 54 |
+
hash = "bf32ae8b61ac8efeb7eca01b54c8307f992724f7",
|
| 55 |
+
sha_linux = "bda6917b630fcc604cca39af433180adfd7195e378075331ceac926553684249",
|
| 56 |
+
sha_linux_arm64 = "050cb3e926187ade7a08ff3e58dd1fae7f4d84c540f9e0e0b008b562ad8922db",
|
| 57 |
+
sha_mac = "c3779aedbed7c860aeedc098deffaa351cb5da490dd17bd48d37715fdb4fe07a",
|
| 58 |
+
sha_mac_arm64 = "76bcc261810a6facb482c6314711c7bb429ad52f7ed0af6285a278478aa27f21",
|
| 59 |
+
sha_win = "68765c3eca68b715772cf84963371448480d034cfbbcdc54dc7379786cb4e71c",
|
| 60 |
+
),
|
| 61 |
+
"5.0.0": struct(
|
| 62 |
+
hash = "e44d3cc557d78155966478aa2bd8dec657609619",
|
| 63 |
+
sha_linux = "ba97bdf3737d19f70af390223eb6262013b89206202779b6a8d57568b3241a59",
|
| 64 |
+
sha_linux_arm64 = "d3e0a648d1d8a33908e8f1d0878b62ec10f3714c13045f29c720e3936a1c411c",
|
| 65 |
+
sha_mac = "5020626bc87d3a9634bfa63fda05aa44f74144a849453c9cf1f014d9fdc63a5d",
|
| 66 |
+
sha_mac_arm64 = "7172745de73be538e86680ae04856f8608370c971f5f21bb5cf1d6331c83ef6a",
|
| 67 |
+
sha_win = "660fcee6fff5042ca4b535f6100319303be399ca86c393266da09e709944915b",
|
| 68 |
+
),
|
| 69 |
+
"4.0.23": struct(
|
| 70 |
+
hash = "aaa43392544d695232b70eda706d751f18980c2a",
|
| 71 |
+
sha_linux = "5f1565fe45a1223cedf3b0300f5089c2c64954d2895b2aaedc85043c719be965",
|
| 72 |
+
sha_linux_arm64 = "d8ed075930b397d3aed8a1c7558db1918ade786349b07d5c042dfa7f65f78563",
|
| 73 |
+
sha_mac = "5823ef26fd45b5a960960fb53026513d43922eac7a1e3ba12d1344d7a94699f9",
|
| 74 |
+
sha_mac_arm64 = "54234e108d6612eca5dc9280d1779ccec3d49ad4d8c8562a6b2046b0a5a8d5d4",
|
| 75 |
+
sha_win = "c2e1b9a2eed20f9d5903780b559ce2b384132713f07936512e6d962dd5a5dae6",
|
| 76 |
+
),
|
| 77 |
+
"4.0.22": struct(
|
| 78 |
+
hash = "bebaf7e50e31865b0724f17eaa52e161e2dfef5a",
|
| 79 |
+
sha_linux = "81219e78defb2f46d12a67a2fa6d128344d850f1e4375b173a324036236b40ef",
|
| 80 |
+
sha_linux_arm64 = "5bff19114edb410863634b14e3f459e7d90dc5339f7e5c7bdd5a946356b1dd54",
|
| 81 |
+
sha_mac = "a40cfb7c4c4f8cac9c6521475abca80f20986c8c438d46ac745bb4316d838a30",
|
| 82 |
+
sha_mac_arm64 = "1a3fb183385682e790cf617824681dc72c2b30e8db2afc9189d0dadea9ccd466",
|
| 83 |
+
sha_win = "4a29b0bdc3d477ce39a9e6cd508f16dc19ea1bf861a66c1d715e0264ab550e45",
|
| 84 |
+
),
|
| 85 |
+
"4.0.21": struct(
|
| 86 |
+
hash = "d70a5da89b3e673bf6a482724478fc17e81e575e",
|
| 87 |
+
sha_linux = "e8516b903cd4dc16bf5aa2aacd826adcff5ff1d97d3d88e5e3871decd94cd8b2",
|
| 88 |
+
sha_linux_arm64 = "415024a22f84424c713b117c3a24cefb98ec03737e02063074010fdc8eaeb334",
|
| 89 |
+
sha_mac = "f17989b3528cd14971fe75ae9b2aa7d8cc4cc5bbb6d408660e059f822e108a46",
|
| 90 |
+
sha_mac_arm64 = "7960d8d33243f2f7acdac157136c6e93680550361ed71bb225fcfa25b6bbb2fb",
|
| 91 |
+
sha_win = "79b3a6b77cf8015cc07ad25353f17f1828e731b0d8757a046071fffbdd5aaf70",
|
| 92 |
+
),
|
| 93 |
+
"4.0.20": struct(
|
| 94 |
+
hash = "c387d7a7e9537d0041d2c3ae71b7538cc978104e",
|
| 95 |
+
sha_linux = "a06e7ddda0c168f7ad52e6e0509c98db3545dcb254d3b9052e9e6b8423eaee7d",
|
| 96 |
+
sha_linux_arm64 = "a42862782c1d23330d2f55936e451f54ed4a630f9d7430ffd1936dc6967a29d1",
|
| 97 |
+
sha_mac = "6c4e8445a8e47e55fcd99789ec023d614c8dbd916afe64e9feb7a292c5070cd2",
|
| 98 |
+
sha_mac_arm64 = "144433e905ec1db726df9128e99624b9b4a3716e96dfb37dde22e2294a675c07",
|
| 99 |
+
sha_win = "388e9fab2bc9f94e85b1541e6ae0f1d9a5b9dfa9d756d89a0a3fc7acc052fbd5",
|
| 100 |
+
),
|
| 101 |
+
"4.0.19": struct(
|
| 102 |
+
hash = "8b01e2ec3f33e6b94842096d7312ce4ef5f33f6c",
|
| 103 |
+
sha_linux = "f83aa5ee648a4591ddbfcbd19a3040056c9c5a846adb2b9c342b37f2dd557f82",
|
| 104 |
+
sha_linux_arm64 = "75c040b3463e58ba1fc15c18878327ef678a5f64621378cf2899aa4cf54c1dab",
|
| 105 |
+
sha_mac = "b6492abede5c1569d46044e750ed20e3e081e8a1c480913892cf5b9d84a5027c",
|
| 106 |
+
sha_mac_arm64 = "5e522c7c03b83929a1d2a2321d8e5cc8fe3d0f0aeb05d1d26213b52008494731",
|
| 107 |
+
sha_win = "39078e88c6d29e6a09892df2d6440df4f47f78292377b89174ea209b1188a6f9",
|
| 108 |
+
),
|
| 109 |
+
"4.0.18": struct(
|
| 110 |
+
hash = "df7d4d811503e86e7728326e3eabbc383cb8042d",
|
| 111 |
+
sha_linux = "38148e69fd718e81de6edc3bc03b1851da436b145caa3c90544f128279eaac75",
|
| 112 |
+
sha_linux_arm64 = "9b86ffc6185d4367718d679db2bcc0dadb64f8caffbfadf3db93d9d1ae5ab34c",
|
| 113 |
+
sha_mac = "c6ab987445e37632202253b15b871628385f281e85d54a36a4f7357fd3a3f4bb",
|
| 114 |
+
sha_mac_arm64 = "762cda293d5737414c12d0a1d09e765d22dea3944c032aa56d98d3a37abc02ea",
|
| 115 |
+
sha_win = "c80405bd2898051de00869f31568c3217ebc8d9cba33a18f8c01e8bb3c4b4f7b",
|
| 116 |
+
),
|
| 117 |
+
"4.0.17": struct(
|
| 118 |
+
hash = "41d2106c68c28e101e6252a48e22c78b07722508",
|
| 119 |
+
sha_linux = "5e4269ab4d4dd97da93f2833bb97780ef6ddee9a7325d345587bddf8890d89aa",
|
| 120 |
+
sha_linux_arm64 = "2ca54b47a73f1f6687e33b3494748f52d753e2e21b9db505e358d362da4794bb",
|
| 121 |
+
sha_mac = "d574a26c775b4f737a6960871340b4cdb04eefe44f6fd3a5072c62e86837c1fe",
|
| 122 |
+
sha_mac_arm64 = "8a571a73461d7755787fc5ffb35b7284216741cfbbcf52d855d54d2cc36ecb9e",
|
| 123 |
+
sha_win = "a394e719b3258ca7502cb85c9f1031b356ec41f511a187f79bb50b91678aae75",
|
| 124 |
+
),
|
| 125 |
+
"4.0.16": struct(
|
| 126 |
+
hash = "e68ea3dc5ca3eda4e2bba62359b033074e506925",
|
| 127 |
+
sha_linux = "c1ad0e9259eec965eb9724bbe5ca3fce45939da58d840f9eda71c52f83447561",
|
| 128 |
+
sha_linux_arm64 = "295cd1406ac584c92ce58f01ad2ae813893932c26eb7201caaeca45d3c6f8a9d",
|
| 129 |
+
sha_mac = "ee29be60e98ea37446b839dc46049c04a7efce7b60b7737423d36051dbb630b2",
|
| 130 |
+
sha_mac_arm64 = "f8d06789195f0c3b07d7f241b11f2aed9099f3e3ba69dd0fb85a93b9edcfec45",
|
| 131 |
+
sha_win = "e3cc92b6b55604fd9c2017a7659cd5ecc234e9522f9bfccb1454130c6189e309",
|
| 132 |
+
),
|
| 133 |
+
"4.0.15": struct(
|
| 134 |
+
hash = "b412b6307e541b93dd93f01b61181e15c17302ec",
|
| 135 |
+
sha_linux = "c0ed25c30e1d747072de0c9053cde27ca83a8d2424e8bc6b7d39dccf42fcba35",
|
| 136 |
+
sha_linux_arm64 = "1e250570d0ea7a3112f65ca0f31031793aa836d968dfc88323b7826d737c1b81",
|
| 137 |
+
sha_mac = "b34bb7fb7a49fe9427a62521685980cc8739a290cdbbba9b00bdb581338b2111",
|
| 138 |
+
sha_mac_arm64 = "1669390cc812bdebc234f3ce7e5c2f90076e5b6ca52a0822be52d5638b15a380",
|
| 139 |
+
sha_win = "726046170075416370af4f13276990dde9560a844c14ece74912fce6fffd03da",
|
| 140 |
+
),
|
| 141 |
+
"4.0.14": struct(
|
| 142 |
+
hash = "4658718c188782acc67a249d45fce2d891ee3cc1",
|
| 143 |
+
sha_linux = "4f83b1ef38c4d4c6df1ad6d9ae9970fb1f4bda7342c5860868d1825f4460b27c",
|
| 144 |
+
sha_linux_arm64 = "ddb831fd4ba096d58c638f44a887f7dcb925d3a1befc95d43c69db5ad3c2d81b",
|
| 145 |
+
sha_mac = "2e73d422b5fd54cfe188151fe4a19651fdad2d47614d1d7eee5adc124cfc2dc9",
|
| 146 |
+
sha_mac_arm64 = "4e01d07b379257e30e6daf61d171015e578a5eb004c7113eda964b181313c4b0",
|
| 147 |
+
sha_win = "b67f5027dd9f9e51bdcf0b8bd2da5203a45b4b3338a0e288ee43e186375a91ae",
|
| 148 |
+
),
|
| 149 |
+
"4.0.13": struct(
|
| 150 |
+
hash = "32b8ae819674cb42b8ac2191afeb9571e33ad5e2",
|
| 151 |
+
sha_linux = "2ad887035e3e5cac78abcaeca3b3881897f03b9919d008cbc0ef41d7641247c9",
|
| 152 |
+
sha_linux_arm64 = "675156bd626c7b19d4f2271ea8ffa77a235d9b0a031116632e53b374cf23754c",
|
| 153 |
+
sha_mac = "657cbd01e84f0a33cb7a1379baecd18a7d96883222a3a99b43919d8bb2374f55",
|
| 154 |
+
sha_mac_arm64 = "12ac26e298ef973207eba9332e28da375ec2ba1d32e68e0d8b32de3c886a2e39",
|
| 155 |
+
sha_win = "a363d6e92dcaf0024d378f1faabb61a139d9152a796f66a475a48e33e90f6adb",
|
| 156 |
+
),
|
| 157 |
+
"4.0.12": struct(
|
| 158 |
+
hash = "209b886304498eff50dd835850dc5715803401ed",
|
| 159 |
+
sha_linux = "1c303712707a91b88f743b0ad6dd1544c289e614844396698a2510a66c5608f1",
|
| 160 |
+
sha_linux_arm64 = "2c503d031d2ad2b13c6e4fe09f104fe50c5d1319feaa2b3d19d4e4608435fbb8",
|
| 161 |
+
sha_mac = "c85830f151ec8eebec6bb2344e3eed942bc7b5dc91b146326635f9f71af459f2",
|
| 162 |
+
sha_mac_arm64 = "853dff1a8451b54ff7cdd95f923851dd9b58ab36873b7b600d16243a5fb6d907",
|
| 163 |
+
sha_win = "7b7e58fbd35a78ddf9a2a4a3f6215857bf2342942c429cdf540a2251540cb845",
|
| 164 |
+
),
|
| 165 |
+
"4.0.11": struct(
|
| 166 |
+
hash = "7033fec38817ec01909b044ea0193ddd5057255c",
|
| 167 |
+
sha_linux = "f38e70b53be587e7c757f375b3452e259c70130d4b40db3213c95b7ae321f5d7",
|
| 168 |
+
sha_linux_arm64 = "42020e4db200ac366a3e91ac2fccc04ee0ffc090cd2d5986c892b27f39172bb9",
|
| 169 |
+
sha_mac = "4169811f9682f54ae5c9d0662d0a4dd4318abab5d3d0473fa54007f515a8cdea",
|
| 170 |
+
sha_mac_arm64 = "09554371e3941306d047d67618532e5366ba6c9b5bda1a504a917bfbabc5d414",
|
| 171 |
+
sha_win = "bd2094ca9bde5df25020a46ece7f56b622d1d22214fbd12950b01b952dd40084",
|
| 172 |
+
),
|
| 173 |
+
"4.0.10": struct(
|
| 174 |
+
hash = "8103ffedfb0c42d231c6af6859a5a1a832260b43",
|
| 175 |
+
sha_linux = "0183f887b56c3f8d4b45826cb49856a3324afb66236ad3c13944c0fd2550cbbc",
|
| 176 |
+
sha_linux_arm64 = "0679f459118d80163d0712b0abda00cbc97a90cddf1dcefa9efb1bf89f67baed",
|
| 177 |
+
sha_mac = "02f3179f703b4d196a679897b430c1eeeb1d5f9aeba9b435b04ba3f526f7e8e0",
|
| 178 |
+
sha_mac_arm64 = "c744ffe06ffed55cd8dae42862b7646f15550c7decd47a48d09a474af83732b0",
|
| 179 |
+
sha_win = "1a66825e85fda039f57d39c98ae2bdb96a18e53745159e9599f69679be18439f",
|
| 180 |
+
),
|
| 181 |
+
"4.0.9": struct(
|
| 182 |
+
hash = "cb2a69bce627bd2247624c71fc12907cb8785d2f",
|
| 183 |
+
sha_linux = "c6fd245138e6bbdd8349963cb4045c557d657e4be0ea44155375633c689c8be9",
|
| 184 |
+
sha_linux_arm64 = "872d7f5870f1bfc523a446ca66ab1b47009a96be33c398dbbb12a56597e46ab5",
|
| 185 |
+
sha_mac = "7efb0a6ddcb915aeca9f8685db909ae7799452894876fc1223a78d5c3288ff2d",
|
| 186 |
+
sha_mac_arm64 = "b97f3cda61211dd83b31ef9ea92e83d416a9422192cf3ee484fffe11e5d6e5b9",
|
| 187 |
+
sha_win = "e6e409ae564c041691f2fecd690431a9935401f8ab6afe284b222546887e84c5",
|
| 188 |
+
),
|
| 189 |
+
"4.0.8": struct(
|
| 190 |
+
hash = "56f86607aeb458086e72f23188789be2ee0e971a",
|
| 191 |
+
sha_linux = "7b50b2b40f80d4531ae29a0a5b902eca41552e04815f59880a122ac81e8f269d",
|
| 192 |
+
sha_linux_arm64 = "d6e3ab0cdec2e6983235322f600f248d313bfce4a6a69ef16cdfdc330ff748b8",
|
| 193 |
+
sha_mac = "e1b2e6d4797338ed884f9d8a8419f93fc42cfcdea5e8a8b29fe13c6fd3fe7f7a",
|
| 194 |
+
sha_mac_arm64 = "115b207304d5471b77fc7649904111f3bb5ed7998ad192cba6cfc5fd0b2d78cb",
|
| 195 |
+
sha_win = "9ca65cb49287f448216c2eac12dacff9808ae827d5de267aaf2bd65f6d4f233e",
|
| 196 |
+
),
|
| 197 |
+
"4.0.7": struct(
|
| 198 |
+
hash = "ef4e9cedeac3332e4738087567552063f4f250d3",
|
| 199 |
+
sha_linux = "60079078b1ecc4e96ab01c4189aceeff9049a1bb2544123295e9841b91a9410d",
|
| 200 |
+
sha_linux_arm64 = "caa10ae2d2b01eb290957e96636f0a6861e7305c8d991c762379542208415793",
|
| 201 |
+
sha_mac = "d588cc31b7db0d876f1d45f4d0c656d5e205d049c0bb27209cad04cfebe19309",
|
| 202 |
+
sha_mac_arm64 = "c0153cc053d8961e094447c3e706cb8f379c263bee64202fd78251fe018fb014",
|
| 203 |
+
sha_win = "7974b6e11164c2c94ddb252c9728d21de321094421f5d0856702e65c06751e54",
|
| 204 |
+
),
|
| 205 |
+
"4.0.6": struct(
|
| 206 |
+
hash = "14767574a5c37ff9526a253a65ddbe0811cb3667",
|
| 207 |
+
sha_linux = "27fc220a9ad98d323cad73531ff563e9838c9e1205f51ee2a5632bb4266a35d2",
|
| 208 |
+
sha_linux_arm64 = "2d03f8eb3f81dd94821658eefbb442a92b0b7601f4cfb08590590fd7bc467ef8",
|
| 209 |
+
sha_mac = "c06048915595726fc2e2da6a8db3134581a6287645fb818802a9734ff9785e77",
|
| 210 |
+
sha_mac_arm64 = "35d743453d0f91857b09f00d721037bb46753aaeae373bd7f64746338db11770",
|
| 211 |
+
sha_win = "3b576e825b26426bb72854ed98752df3fcb58cc3ab1dc116566e328b79a8abb3",
|
| 212 |
+
),
|
| 213 |
+
"4.0.5": struct(
|
| 214 |
+
hash = "d7f8ff5e2ca3539c33fae81e98f7c56ef9fa1239",
|
| 215 |
+
sha_linux = "fdd4d9d6b37e845039b207baaef60cd98fb594ea13a3e6d622c2dcd8f2a48ac6",
|
| 216 |
+
sha_linux_arm64 = "0007aec32eee609b91f35c32481ec060ea7dac7151e36344bbcae419907f9240",
|
| 217 |
+
sha_mac = "f4e5a6c57ad9de59bff73463972213a299af2bb419dafbdd3959947fa801a342",
|
| 218 |
+
sha_mac_arm64 = "b8b93190fa17afe32a5eaa7120b807767b1c9d6e1d4ae6b9a2c6adb231758683",
|
| 219 |
+
sha_win = "3b8ed9e298a6d58fee841f5c3f1d3e7b2dff104cc7df314cd329f4c05d470be0",
|
| 220 |
+
),
|
| 221 |
+
"4.0.4": struct(
|
| 222 |
+
hash = "ea71afcf5a172125179a07ff1731de6e81c92222",
|
| 223 |
+
sha_linux = "f05dab4a6a13a5fe6972e95e918d1483e687faf468e1a653deaa8d7956a97a3a",
|
| 224 |
+
sha_linux_arm64 = "95a421f304a7209c6f259754ad15aea5bbbbb1838139b51837aeb2c184fa4a89",
|
| 225 |
+
sha_mac = "d8b44aae37224ae76572ad84b60a2adaa126826332864fb689944d5130705d8d",
|
| 226 |
+
sha_mac_arm64 = "ade1c1a0c2e5893c6f74079beeae8b7e2a0c3f3b7ae88891064104fd985dfc2b",
|
| 227 |
+
sha_win = "342cf9dfb83e95bf678d07e460e093ea61a609d34b4603d9be06d4f31784409d",
|
| 228 |
+
),
|
| 229 |
+
"4.0.3": struct(
|
| 230 |
+
hash = "de2109f0e5e7278d470da11de526aed16c527722",
|
| 231 |
+
sha_linux = "6480f51d0c24130424c696bf83e9774f42246a0109c8d48b59f4520fdfadb928",
|
| 232 |
+
sha_linux_arm64 = "76b1511d550b4f47276b93581ae5122063acbca7c960703637657388cf178636",
|
| 233 |
+
sha_mac = "f40851b816b31b3ca3214ebf61cc152625a05c24f43e2b13c2ad9b9e5dca73c0",
|
| 234 |
+
sha_mac_arm64 = "6d8ac5ad1f59f71de0927eb2c595dab2f21d9946ca293434359a6db2ab06a138",
|
| 235 |
+
sha_win = "3702e4a518057520d4ad9e7cd63a01a829770d090551e00f19f417f55b0170d3",
|
| 236 |
+
),
|
| 237 |
+
"4.0.2": struct(
|
| 238 |
+
hash = "cc8eba40de8235f9c33d92463018f87b3edaa09e",
|
| 239 |
+
sha_linux = "3c0e3940240709388c24a4262680c18bb1d5979f2337abe53db00fb039606c44",
|
| 240 |
+
sha_linux_arm64 = "21ed0c31c1fc972e3509fcb140e0323061b5f2b173fe56d1f8961df2a37e4c11",
|
| 241 |
+
sha_mac = "e1bd96ec790968adf583d348158375b76ee0287e348954c3393c82565475b07b",
|
| 242 |
+
sha_mac_arm64 = "e5bf9a5efabc114b42636abcea07a1e02d3a9406cd399a29ccbc730586dce465",
|
| 243 |
+
sha_win = "78010f8e2f7bb6868bb20e3fc32e24d45e6fca749c388c2d25bea9845512338d",
|
| 244 |
+
),
|
| 245 |
+
"4.0.1": struct(
|
| 246 |
+
hash = "5ff495a591978fdf8a16f2d172be3616f3150d1e",
|
| 247 |
+
sha_linux = "7b2b64b1bc15555696f78cbcb54c8d75832222d1578270ff5f56a8024c9a0dbc",
|
| 248 |
+
sha_linux_arm64 = "5c046a22b933de14be6b2522b75796afffe3940a19422eee483b7f3f1a226d66",
|
| 249 |
+
sha_mac = "d089eba9c3cad675bbd7d3318aec166ebe5ba984a6c5291136c09c68324d9818",
|
| 250 |
+
sha_mac_arm64 = "c8359b334bad71719e8d29e796ca7b63891e0305987b2572eb5a2f020e34f773",
|
| 251 |
+
sha_win = "9cf861339327f3657281c5c8c18aa723323acffe3b3d1c3807b9d4576d097e0e",
|
| 252 |
+
),
|
| 253 |
+
"4.0.0": struct(
|
| 254 |
+
hash = "3ebc04a3dab24522a5bf8ced3ce3caea816558f6",
|
| 255 |
+
sha_linux = "6836988f0b7ee6ce3df5192dd4375b9eee55be78847ce31cf1d2abfb00f1e991",
|
| 256 |
+
sha_linux_arm64 = "d4e6e04b7e2fa1bdffc9c07ab4e0a3f66bde75adb06ebf9cc66a341907b17db4",
|
| 257 |
+
sha_mac = "4123e9ff6a699dac303c4fe22529ae0d618c118fcd8267df590363b0fc98c91d",
|
| 258 |
+
sha_mac_arm64 = "4b5fb7cc4f5f8526aaa41c8560a00ad6782b97cd3894d856beb635f05a825613",
|
| 259 |
+
sha_win = "6b1e5aee4b4a4274712566c845888bdf4eced09a5aaa64c1796cda57cd2854c4",
|
| 260 |
+
),
|
| 261 |
+
"3.1.74": struct(
|
| 262 |
+
hash = "c2655005234810c7c42e02a18e4696554abe0352",
|
| 263 |
+
sha_linux = "a987bb4cded4f29437e8589accac204ce3c134feaaaf251bb97d0fdf450dce65",
|
| 264 |
+
sha_linux_arm64 = "c7fcc532eb7ee1dc7df0eacb49128ded12e4d55a973b8a2a5215da8bb6c4027c",
|
| 265 |
+
sha_mac = "04f848f40bd19220a43abde2dd1012d95bf1f89c618c0f631b83d18357e2bb65",
|
| 266 |
+
sha_mac_arm64 = "fc71758a5bfb02b8a5c2dd21d6bfc34aa3c64698f6105e204a1f4d11f6d67603",
|
| 267 |
+
sha_win = "603b0515e0367ee2718b2f360ef0194663d23a91236910d5f4a90ac4d745a4f2",
|
| 268 |
+
),
|
| 269 |
+
"3.1.73": struct(
|
| 270 |
+
hash = "b363a836e75a245c548b7a6a021822d8c9e4c6df",
|
| 271 |
+
sha_linux = "4f3bc91cffec9096c3d3ccb11c222e1c2cb7734a0ff9a92d192e171849e68f28",
|
| 272 |
+
sha_linux_arm64 = "e6fb8a32889d4e4a3ac3e45d8012641369251ddd1255ada132ff6c70ab62b932",
|
| 273 |
+
sha_mac = "8d52ec080834f49996534de26772800dee048ec9bf148bb508be95887e267735",
|
| 274 |
+
sha_mac_arm64 = "58e6c984c5a1fb71e0871f0c3bb9e32d41e7553260c6eeb38800a4612623a99d",
|
| 275 |
+
sha_win = "d76003fad2146ad1f2289e8b251fbc359406ced0857f141a41f15149c2138302",
|
| 276 |
+
),
|
| 277 |
+
"3.1.72": struct(
|
| 278 |
+
hash = "7a360458327cd24c2a7aab428bdbcb5bca8810e4",
|
| 279 |
+
sha_linux = "be094d6dd27c27a64116e9c0165d6cade5d329f5137e56696773e98e1df83fa7",
|
| 280 |
+
sha_linux_arm64 = "5dba64454809d72d53c432f3c91830d69d413ebd9dcd0ce18df5a79a3af235a6",
|
| 281 |
+
sha_mac = "52f713c118717814d2371912ab9019a3605b7d6acc627f3842e6aa7d3ffff7bf",
|
| 282 |
+
sha_mac_arm64 = "644593539684f59c635c7eae2e743f5e4e27b1d665f9c71c23dcefd4c2448b3c",
|
| 283 |
+
sha_win = "c72623fb68f109d8f122036f25b9fc75353bd1ce28995d9920277d4be4a1d99c",
|
| 284 |
+
),
|
| 285 |
+
"3.1.71": struct(
|
| 286 |
+
hash = "7ee0f9488f152e9e9cf0d4d243970e03742f1a5c",
|
| 287 |
+
sha_linux = "43f87aa84a73697b905d2a13c89d016af8ec66bed792f37dd5a0059529abee12",
|
| 288 |
+
sha_linux_arm64 = "d25f5e57b2e7557df39cd9dec3b0283fb086f66c800af3d9a3f70f36c5fc6b14",
|
| 289 |
+
sha_mac = "8dac015c03c4f2e594d8bca25fe35d1e4d808aea81705121e852aff0464c4a9d",
|
| 290 |
+
sha_mac_arm64 = "a7797c3d210eda29f88eede261fc8f0aabf22c7b05214916b5b50a1271e9f0b8",
|
| 291 |
+
sha_win = "dfe77eaf22278ca975519f0497c8b336c86e52461c478060418fe67b39b6e87c",
|
| 292 |
+
),
|
| 293 |
+
"3.1.70": struct(
|
| 294 |
+
hash = "6fa6145af41e835f3d13edf7d308c08e4573357a",
|
| 295 |
+
sha_linux = "c29b4a2c6addd5aafa613768d34273a23d8fcd1753c685ff61099506710cd8d7",
|
| 296 |
+
sha_linux_arm64 = "b13386975023a06f19057daef3896d480229b144d1e97f8764ed2f3e0fcb7d37",
|
| 297 |
+
sha_mac = "bc0edcaaaa19daeda9164d38d36c5f7d7b4b4e1eb7695ad58e776336c571fcc4",
|
| 298 |
+
sha_mac_arm64 = "e470d5eeb570850d66a79bd4c06064b9b3a1e90c7c2101e1a444ebcd6466fe5a",
|
| 299 |
+
sha_win = "f0118d71fd67583ddcfd39af2ed8bec3d18152fb6aadee085ebec5bcaf4ac4f5",
|
| 300 |
+
),
|
| 301 |
+
"3.1.69": struct(
|
| 302 |
+
hash = "8fe01288bc35668c13316324336ea00195dfb814",
|
| 303 |
+
sha_linux = "24a786666e6f48ed3c3944b44df5cf146c45cf4faece4cb2686312a3d052a00c",
|
| 304 |
+
sha_linux_arm64 = "48e670501d215ac5b6b2680c900c517d9028dbc4de43be5dd6f25211a3640f2b",
|
| 305 |
+
sha_mac = "8503fe87dd2f30abff2550e9d6eb8aadeaf30fd3c6972d635b31e67f82e155f7",
|
| 306 |
+
sha_mac_arm64 = "995c7b3c84458edf6b8945e81405320c64a25dfe79eaa427fc1fe9a680f56b4f",
|
| 307 |
+
sha_win = "3839e0a581ae7b19156f004762a8221585e9a0d6237e468b13a878d1947636c5",
|
| 308 |
+
),
|
| 309 |
+
"3.1.68": struct(
|
| 310 |
+
hash = "b52d8c9150dc7d4c8e4a7a08c7a9b4006c9abe49",
|
| 311 |
+
sha_linux = "1f2bcb47d85eb31d90fa797b3513221adc50f0656bb37f0962a40fd0f49fcf6a",
|
| 312 |
+
sha_linux_arm64 = "de346e7a489aa27a442215945d154d58a0d35c608b6150b2992af0e70c04e1c5",
|
| 313 |
+
sha_mac = "b180711544d783121370d2c894703f99d370a864ab147730f82fd59b88fa3481",
|
| 314 |
+
sha_mac_arm64 = "5e9b6242b56edc8cb404cbaf6c8bd7eb1f0f168b55b580bd92652f98c5d286f4",
|
| 315 |
+
sha_win = "824d37e8a0845f44e4c1111e8365640eea28944f1bdbd1e9e3fea0279b68baea",
|
| 316 |
+
),
|
| 317 |
+
"3.1.67": struct(
|
| 318 |
+
hash = "4ae62984ea36ef0e5bfcbd0ed9b62f04bee6426a",
|
| 319 |
+
sha_linux = "535b64822916c80124363a5c7a5bd0cafd703f166d5155c0ad0e464e4a879091",
|
| 320 |
+
sha_linux_arm64 = "04c5f959702d8c1e5c000752b562271c224dee593e81144280840fed06e36cd9",
|
| 321 |
+
sha_mac = "692b8fdc79a47332ba9881966c72517eedf15b2da7bed37a535dfec55e6bbd9c",
|
| 322 |
+
sha_mac_arm64 = "ac26753f59fa9c8e92be9c91666014ad9400c91fbd37064105d1b5fcae503985",
|
| 323 |
+
sha_win = "8c6af8046ed47386018e42d18b53f57fad0926306dd4315d7f09dfae844b3dd3",
|
| 324 |
+
),
|
| 325 |
+
"3.1.66": struct(
|
| 326 |
+
hash = "243eae09cf5c20c4fde51a620b92f483255c8214",
|
| 327 |
+
sha_linux = "b10eac37c978b28da2f1f34cdd8a7759c0ed5e5a2d8eb4f4e6790209de33dbf7",
|
| 328 |
+
sha_linux_arm64 = "9c78a470f74c24fc1fde2c8d86583ed98847b6cbdd87cd0b36ff2d6b4799d950",
|
| 329 |
+
sha_mac = "64fd0603ccbf949967cb0dfd8f1b0b25e018abf8bfe813b53596c4fc78751027",
|
| 330 |
+
sha_mac_arm64 = "fd6250f25101957f56086d292263379880c4b3329819a021008b2058f92ef67b",
|
| 331 |
+
sha_win = "b24f65a1a1111d8ace6ba47b55e07681cd0620f7bf711d1018ee262c9501defc",
|
| 332 |
+
),
|
| 333 |
+
"3.1.65": struct(
|
| 334 |
+
hash = "fdcf56c75a1d27fdff6525a7e03423595485ca19",
|
| 335 |
+
sha_linux = "b2b7de13d37c4c5126e6c6a077e6019ebacc78ef1fb1b35b9035f03975f5ffaa",
|
| 336 |
+
sha_linux_arm64 = "f838af6495408f3c0a14d233171b4919b62e445c62805a22dea1875cb709a116",
|
| 337 |
+
sha_mac = "cc50b829a21a041979e0941cfd2047d30a06e3c4a8fd9f662ecdc12a0ab40535",
|
| 338 |
+
sha_mac_arm64 = "db4430db6a085d6ed5284917e632541dad3ce0a9464659fb674055247ad059d0",
|
| 339 |
+
sha_win = "e72ae4ec3231d9a492eadbf77ff28c13efd90307a69df04234792e67a001d05e",
|
| 340 |
+
),
|
| 341 |
+
"3.1.64": struct(
|
| 342 |
+
hash = "fd61bacaf40131f74987e649a135f1dd559aff60",
|
| 343 |
+
sha_linux = "c39de24beca60fd580f6dff0eca0e275016042a30234588b19eda82397e299f3",
|
| 344 |
+
sha_linux_arm64 = "61b412135630a60c5517278dc83930e06f80fa286fcc2bb6366c4f620c86e4e0",
|
| 345 |
+
sha_mac = "2644772be398c8095621b3d0fe9ff2d122b18b7b0963c0eb702639d94dfb8e90",
|
| 346 |
+
sha_mac_arm64 = "47449057c345a09aa8750be1a357c364ffea9f8a066066cb341a7a2a14bac96a",
|
| 347 |
+
sha_win = "eb5b59afb420915daab4c383e5f73d456cc14776dce02fdc852c46522cda5531",
|
| 348 |
+
),
|
| 349 |
+
"3.1.63": struct(
|
| 350 |
+
hash = "aeb36a44b29e8ca9f4c7efbb4735b69003ac2bb9",
|
| 351 |
+
sha_linux = "2a38ac1ea2fe3b7169879f0f666ea278f344cbb5db6e34421b9554939559109c",
|
| 352 |
+
sha_linux_arm64 = "f1dd5fe4cd22e89b1f5bfd216f1245f9f40f6ea76651a7f66e925a68ff6f18b8",
|
| 353 |
+
sha_mac = "7e192b84aecfade22817b5b38f0c69d1f795a9b990308188d39ed1d218692cd3",
|
| 354 |
+
sha_mac_arm64 = "751ef26a3682f5f23dfdc1c2f80cd0604a32cad61e6373c823de774722ecb9af",
|
| 355 |
+
sha_win = "947f8e867e781750d374d659644897f2345a133ad3d0f9ade23afcb81eeaddd3",
|
| 356 |
+
),
|
| 357 |
+
"3.1.62": struct(
|
| 358 |
+
hash = "d52176ac8e07c47c1773bb2776ebd91e3886c3af",
|
| 359 |
+
sha_linux = "fd303a2b2a85c4b3ab8aa29595d70c5fde9df71c5254d56ed19d54e9ee98e881",
|
| 360 |
+
sha_linux_arm64 = "233c0df77644472cd322b45b2d7cf709e6c338799b46f6ec5d5f39ca4dbe8aef",
|
| 361 |
+
sha_mac = "d9cfef7ba8f44bf21be715244d0d5f909f1ccc2a481a301b3c01d12d1babc049",
|
| 362 |
+
sha_mac_arm64 = "de5484d60c858aaa8b93ba6485924adffe734cf4f8296765c089900cf9ce0701",
|
| 363 |
+
sha_win = "7455680bf9c19a26fe4868111ac01401023b0f92e862d3cabadf7950b87707fd",
|
| 364 |
+
),
|
| 365 |
+
"3.1.61": struct(
|
| 366 |
+
hash = "28e4a74b579b4157bda5fc34f23c7d3905a8bd6c",
|
| 367 |
+
sha_linux = "e3e20e09219fd47a0019bb3252e17db4a00ded39b39b41634bc73f840a8ff2be",
|
| 368 |
+
sha_linux_arm64 = "a6b858601ca09fb7bb6ddf1a5ffb1a4130454c936ad046d45fef183037828c46",
|
| 369 |
+
sha_mac = "1fe69a3c42fb2857b80c8e77bfab780cb212ed7cf81ae57c0c4d235504df5269",
|
| 370 |
+
sha_mac_arm64 = "4ba702eea409e2d4bfabc73a68919217d3993e7585d95734e3e40a3c9ce1bd21",
|
| 371 |
+
sha_win = "bbafba849ff072a61dd34a8ffc0c85eed20a417854a3ca751b092e3565a92581",
|
| 372 |
+
),
|
| 373 |
+
"3.1.60": struct(
|
| 374 |
+
hash = "87709b5747de5b1993fe314285528bf4b65c23e1",
|
| 375 |
+
sha_linux = "ff5eb062165920c7cb69935d396f13e9f8ca5b13f2d7f3af2759bcacb5e877e2",
|
| 376 |
+
sha_linux_arm64 = "2c291942df4868d3f65b31dd964bda9736bfddcd6a7886158963f797d1b45cf5",
|
| 377 |
+
sha_mac = "45586fab1bad65a4293ea8939dafb5ec711ba92ae7b4d1edbaae3b4486f398b5",
|
| 378 |
+
sha_mac_arm64 = "8dc27416a378ad07285d380f68717cfe0db1ea6252fdb1ad012af95e4d3f342e",
|
| 379 |
+
sha_win = "f3147ef2d4ca48ea2624039969fd0529d0bacb63bf49ee4809c681902768b973",
|
| 380 |
+
),
|
| 381 |
+
"3.1.59": struct(
|
| 382 |
+
hash = "e20ee09a8a740544c4bc6de5d4ba5f81f74b74d6",
|
| 383 |
+
sha_linux = "ae59d1946cb92e1651cbb904fe824b3f07b39f42fa25f582116b5aaa226fa239",
|
| 384 |
+
sha_linux_arm64 = "25b918d6d5ee2af7ef6b28e089dc21d2dc419dca76c8079bb638cb20459eb9e5",
|
| 385 |
+
sha_mac = "af175bd559cb80459749e504da314af0163291f195461bf4d376d6980c4c60c3",
|
| 386 |
+
sha_mac_arm64 = "e17553bca5d00b30c920595e785281627e973f9e7e14c5dc0a73c355ccafe113",
|
| 387 |
+
sha_win = "bb54256fc3b7824cb75d5474f887d9bf8e1e63c15b351bdfbed898aa293ee4ab",
|
| 388 |
+
),
|
| 389 |
+
"3.1.58": struct(
|
| 390 |
+
hash = "a4d4afb626c5010f6ccda4638b8d77579a63782e",
|
| 391 |
+
sha_linux = "b188249ecb939dadc679aaf2d3d9afd0fe19ab942f91b7bc926b4f252915dd1a",
|
| 392 |
+
sha_linux_arm64 = "4aedc8ca641b40d9bd82d85b1dc3458fe1afc9a132da06a09384a5f89c058969",
|
| 393 |
+
sha_mac = "2092aa4bef3b9f88d3f343b042a417ba617d4e04454656d8f2e101ba53f854e8",
|
| 394 |
+
sha_mac_arm64 = "7a9a15845257629b7602d15bdf7633a8e10472b0fa9b3d9ee7149938aa2f2039",
|
| 395 |
+
sha_win = "9fe76b6189566d56f0cf9aecbd23a006778530aa87184a900f5662e39ce7272a",
|
| 396 |
+
),
|
| 397 |
+
"3.1.57": struct(
|
| 398 |
+
hash = "523b29e1b99a61069a2fa9f9d3cc9be1c4c53d4d",
|
| 399 |
+
sha_linux = "5bc444132258d4404d396f2044a4a334064ad0f1022555cad5ec72804a98ba5a",
|
| 400 |
+
sha_linux_arm64 = "f0022413afcc1610deff10921b3f5938bf4d01eba46ce96655f2295bdd84bd6a",
|
| 401 |
+
sha_mac = "31ddccb68c86f0a45332982938c49505158860ed4f7e8ccef72a48382e0e3c96",
|
| 402 |
+
sha_mac_arm64 = "cc5fdb65b339464f99b9c731cc63c233ec9577268886a856fa49f227ca2a56d1",
|
| 403 |
+
sha_win = "b53555420bb9b6e31c153e4c59427000ec692be17ae900f659a9b774d1ecebed",
|
| 404 |
+
),
|
| 405 |
+
"3.1.56": struct(
|
| 406 |
+
hash = "9d106be887796484c4aaffc9dc45f48a8810f336",
|
| 407 |
+
sha_linux = "52338cca556002251e5e7d738adb1870d14331ddf463e613af02028b64e05a82",
|
| 408 |
+
sha_mac = "fc5cca6a9db571ecb2974bf0d4e12f1bc6068726271464586cf7e8723004b4c6",
|
| 409 |
+
sha_mac_arm64 = "aed728d09d801c4a33210505874ce066269292e7809a7d6a6414146be01545f1",
|
| 410 |
+
sha_win = "cd5fbe94fb0bcf01badc10eace48eddbca22b34f31229e3d70c68ade7bcdd571",
|
| 411 |
+
),
|
| 412 |
+
"3.1.55": struct(
|
| 413 |
+
hash = "f5557e3b7166d05bddb5977e363ec48cd06e9d32",
|
| 414 |
+
sha_linux = "2a1cccc2f6db801219eb966d00af78a026af7822055064092387e7eba18e75ad",
|
| 415 |
+
sha_mac = "f1f8f4ebd086d0cd8bd54c41c6a0e86bbb26d7b8020484fef3dba67cd9e6906c",
|
| 416 |
+
sha_mac_arm64 = "7533b7a1beaa692a4f1e57b91c456b13e6bcc367dc9a414cb066350e8a2058c7",
|
| 417 |
+
sha_win = "204984cbb755f9aa09c21b49129d908f59617a60d5aebd8742097a9a2c196abb",
|
| 418 |
+
),
|
| 419 |
+
"3.1.54": struct(
|
| 420 |
+
hash = "aa1588cd28c250a60457b5ed342557c762f416e3",
|
| 421 |
+
sha_linux = "5c8db804abe1ac7ddaa99a6997683cf9fa9004de655b32b5b612d59a94bd59d0",
|
| 422 |
+
sha_mac = "e6d2b8c6983767c7ced83d40b87081a221f05bab08d0fa4f0c6de652547c8a9f",
|
| 423 |
+
sha_mac_arm64 = "83764751ee5c7b42529e1df168695d4a51a23c9c165f3f90693baa9bd9256efa",
|
| 424 |
+
sha_win = "c0a1c9f3e1dfc9bb2e600501aea999f53b34a16f82da387317fdcae7e9c2a79b",
|
| 425 |
+
),
|
| 426 |
+
"3.1.53": struct(
|
| 427 |
+
hash = "e5523d57a0e0dcf80f3b101bbc23613fcc3101aa",
|
| 428 |
+
sha_linux = "1025c0c738fbaedf3f8fcffee23bef71c8d04a95b30ea8a69a47231fb35d1c8b",
|
| 429 |
+
sha_mac = "318dc0cc51a237040bc1cb0a9e7d6c214196c8a100b50d0e298cf3ea7c365dbe",
|
| 430 |
+
sha_mac_arm64 = "e346ef588f7cfe1e41623de2257a11ecf8381fbd3bde63a8773b3a663411ea12",
|
| 431 |
+
sha_win = "af7f7175ab0b3c1e9121c713764e8ac1d970b6dbee8a84602b4a69cc5ec5940d",
|
| 432 |
+
),
|
| 433 |
+
"3.1.52": struct(
|
| 434 |
+
hash = "ce2097fb81953331e65543c20b437475f218127c",
|
| 435 |
+
sha_linux = "1c0cd572067c6348cea5e347b9ef7c5460493ca3f0d84bb991689731d0e140ef",
|
| 436 |
+
sha_mac = "5d9c801f9cfe81337d65969e174e0b3ef4cf2b47eb548ff4695abe3a2e69ba70",
|
| 437 |
+
sha_mac_arm64 = "7ce8fef7542437c85412143cb59b13b8804bb06243a106d2d342c7d9132edc8e",
|
| 438 |
+
sha_win = "82ed01d965f5c2765191c67da5baecd2d3ce3f82a8cf30fc47fcd56d47826cf6",
|
| 439 |
+
),
|
| 440 |
+
"3.1.51": struct(
|
| 441 |
+
hash = "4f416d92fbff66ce79901cfc8263768f1b25dd3e",
|
| 442 |
+
sha_linux = "09af08eb562cccf85770e4b8e368acb5accb1759fe3bc436b8fad80c27f90c79",
|
| 443 |
+
sha_mac = "b12201caf9ff2b981349edebd2d2c022ff000c74241ef96305b831abbd4f9450",
|
| 444 |
+
sha_mac_arm64 = "65fbee020cf965f9216607bad56215795529cbe8cef318fadcb33141dd6b5e82",
|
| 445 |
+
sha_win = "65c2d005a6be80723fa795ea724d4db9960601cf7d59d880f2882ecd45c8ad2b",
|
| 446 |
+
),
|
| 447 |
+
"3.1.50": struct(
|
| 448 |
+
hash = "2ce4170cef5ce46f337f9fd907b614a8db772c7d",
|
| 449 |
+
sha_linux = "8822050b999286694cd4ffc7d959a8ea3137e3a910121d78b5377439ede9b598",
|
| 450 |
+
sha_mac = "39ce2f689be348b558df9c2c988b03472d43f8ac0827624397f7c0bb56a1e893",
|
| 451 |
+
sha_mac_arm64 = "5a9fa8de121db400bb46e716d861283b938ad87257d7c48f99dd5557100bd3ea",
|
| 452 |
+
sha_win = "29096f5596d93dbf620a9547fd1ecec8f54f3f52d49b13f09959d852310220db",
|
| 453 |
+
),
|
| 454 |
+
"3.1.49": struct(
|
| 455 |
+
hash = "bd0a2e230466dadb36efc71aa7271f17c6c35420",
|
| 456 |
+
sha_linux = "18f452f8bdcd13e0d3a65c569180d1b83579775eadb8069cb32bca1f2e751751",
|
| 457 |
+
sha_mac = "c5275eab15e42abb3a42bbe1cfe38ee1b852febc78f65f5605b8972a7bee672f",
|
| 458 |
+
sha_mac_arm64 = "10a722e2c7dcc97236f70f2d68b23a7975800ebf27ec4fdf76deddf483b1c6d6",
|
| 459 |
+
sha_win = "4361fc18faaf70a2dc342c219b13c39a8196e9a48e6897d08c7b0dca6ba6525d",
|
| 460 |
+
),
|
| 461 |
+
"3.1.48": struct(
|
| 462 |
+
hash = "694434b6d47c5f6eff2c8fbd9eeb016c977ae9dc",
|
| 463 |
+
sha_linux = "689fffcb60f93a60a7bb52cc205ead43ab31f252753cfef39ae2074f6a442634",
|
| 464 |
+
sha_mac = "8ac2a3f32b4cba0d84ca5a1fe1db883dbfc2731432833ab5a7e6967c5f4ab7dc",
|
| 465 |
+
sha_mac_arm64 = "10dd40f94fe5c5f8c4efc838d1623cafe98c629d4c7872ad8c15cd7b0836f281",
|
| 466 |
+
sha_win = "9276435ea7c402c18572a4301d6a26426eac73414b0ed5cb3e721044a50f651d",
|
| 467 |
+
),
|
| 468 |
+
"3.1.47": struct(
|
| 469 |
+
hash = "39ade279e75e6d17dd6b7eb9fba2006e61fe966b",
|
| 470 |
+
sha_linux = "bdc50abe5c7d4b4f14acea4ec36b270e86770cea2da4b0c393b80a692dc7eb7a",
|
| 471 |
+
sha_mac = "6a3a116707037d75a967a7d971894d8ace74a2a230aa50ba55e88e7cd7b94953",
|
| 472 |
+
sha_mac_arm64 = "b13d228e6a1c89c13a1500fff07dcf093fb01fa621d458496d4a6d7f05cfd600",
|
| 473 |
+
sha_win = "66a6c4f0cda4ace14a86d3e59d20685d35211854d21670632b0566ac73638245",
|
| 474 |
+
),
|
| 475 |
+
"3.1.46": struct(
|
| 476 |
+
hash = "21644188d5c473e92f1d7df2f9f60c758a78a486",
|
| 477 |
+
sha_linux = "75cbf14629b06e417b597d3f897ad7d881c53762380aca2f0dd85f1b15891511",
|
| 478 |
+
sha_mac = "06f45608381203d501141be632cab960aa105626c3a0f7a48657b79728103880",
|
| 479 |
+
sha_mac_arm64 = "c2a85b509a91663b390f77d51fba775421d42456211466fd3757f9dede7af9e4",
|
| 480 |
+
sha_win = "1ed3a3f36dee5d373ebea213fc723b3eeb7d6ba4c43da6a951ea0d76f265f234",
|
| 481 |
+
),
|
| 482 |
+
"3.1.45": struct(
|
| 483 |
+
hash = "2b7c5fb8ffeac3315deb1f82ab7bf8da544f84a1",
|
| 484 |
+
sha_linux = "1c0576765f8b34603eead6f2bd4bc77bf68ea2f0a39ed4c144514103e85bc7d9",
|
| 485 |
+
sha_mac = "87f63ebb2f9807435016b238bbf46ccb94c919ec0786b46463cd788634391b0c",
|
| 486 |
+
sha_mac_arm64 = "29e698772c0e00c21ce120dd1db1586f5c65507168babff148c2e628add6e72a",
|
| 487 |
+
sha_win = "891d49f8828f715ef621d55fe202de4929bbdc89b69101fd33963571458a7f47",
|
| 488 |
+
),
|
| 489 |
+
"3.1.44": struct(
|
| 490 |
+
hash = "b90507fcf011da61bacfca613569d882f7749552",
|
| 491 |
+
sha_linux = "5ffa2bab560a9cda6db6ee041a635d10e1ef26c8fc63675d682917b8d3d53263",
|
| 492 |
+
sha_mac = "291b2653f7576f8354f0267047e47a5ddef11223c89d5be399d04618f13b3832",
|
| 493 |
+
sha_mac_arm64 = "ad1625821b49ccbbe733596223fdf99fd786470d679f2c9dfabd4a1a7b929282",
|
| 494 |
+
sha_win = "8b61f60ef169b1c20207361067c40192c83b96cdbdb2f4cff21dfb20b9ee528d",
|
| 495 |
+
),
|
| 496 |
+
"3.1.43": struct(
|
| 497 |
+
hash = "bf3c159888633d232c0507f4c76cc156a43c32dc",
|
| 498 |
+
sha_linux = "147a67a3454783b8c351780ec0111329d1e6fbb1d2fcdfe1c035e1c0997e0701",
|
| 499 |
+
sha_mac = "d84896c6d1ba0fbd9a5e5c5830b3ac4a02da5e683e9d8c7172f4c3ffdfaa0392",
|
| 500 |
+
sha_mac_arm64 = "d684f0bfc655f61e76cec29fdaad1668f3d21a229fdd908267f400691468328d",
|
| 501 |
+
sha_win = "a335f5f5b070cf354f1ca8e0afb23c06ae5f9ffb2c501124da7fcaea09a7db6d",
|
| 502 |
+
),
|
| 503 |
+
"3.1.42": struct(
|
| 504 |
+
hash = "9d73bf4bd5b5c9ce6e51be0ed5ce6599fcb28e9e",
|
| 505 |
+
sha_linux = "aaa076e64dd511b0d874c348f8dab80a2f9ade0887ba74845fd02c40bbf9e68f",
|
| 506 |
+
sha_mac = "4715002394c5d444243c77ca231883eb999cf3313c4869cf0ae288d911f80f89",
|
| 507 |
+
sha_mac_arm64 = "84dede714edd81362ed2a2f79b91b1bd9cd544f219f937582e616d73bf0ea7f9",
|
| 508 |
+
sha_win = "4c704f4a4927aa537c2815a72915b7591c163ae8f0dbaedc167e810dd2a4a83d",
|
| 509 |
+
),
|
| 510 |
+
"3.1.41": struct(
|
| 511 |
+
hash = "eb71265ef0ab905620015adbfedacf88c5dbf021",
|
| 512 |
+
sha_linux = "493ec8bd3f3ea3d6d616de01d6dac9c2af696978c6c44d453757ab2f8a666656",
|
| 513 |
+
sha_mac = "bb088e7b8f83b6bae02a0992eae61351e4e97bd033f8c8937cdaea0cb961ac9e",
|
| 514 |
+
sha_mac_arm64 = "aaba2de03a6dcc0db90e61e5e405a52aa47124e5ef21953d052ca015ce5ee773",
|
| 515 |
+
sha_win = "c7afbf2dfb6040990bd40bd72c726ada36e3e6f1985c4b62db7296465dd0778f",
|
| 516 |
+
),
|
| 517 |
+
"3.1.40": struct(
|
| 518 |
+
hash = "c3122846bb040798aab975f61008c37eb19476de",
|
| 519 |
+
sha_linux = "5501e750c92f5a54b27ee101f6816e7416f154cb4181b73fd0be3faae947016c",
|
| 520 |
+
sha_mac = "052d6236ce49eaf3aa02b3c4d367b5ed4fb78209c1f1e64d48beb79e9c0b7131",
|
| 521 |
+
sha_mac_arm64 = "c8af68f904367938bac255f5e64ed271021b289bb135dc77ab3b58b87e1ea5b2",
|
| 522 |
+
sha_win = "3ec21ca18b56f7d3953da2e0d468154fcaaf30b5ac663d9ad00c41540923a099",
|
| 523 |
+
),
|
| 524 |
+
"3.1.39": struct(
|
| 525 |
+
hash = "1b56b171b627af0841cf8d4d8c0160c6cb6d855f",
|
| 526 |
+
sha_linux = "7ec6e15a2da2701243f89af7744403ee011211e59e4f0a6fd8ced544e72e917d",
|
| 527 |
+
sha_mac = "dad7d270207aaffb8b8ef584cf0579bbad144879ea6f00ec9a8080adf22130dc",
|
| 528 |
+
sha_mac_arm64 = "c5e474ca661348d0339c785e25ad81845d49dab19d5e3e84eef2393e623e0bac",
|
| 529 |
+
sha_win = "a04f898b9d54dd2dc95fb697a92a1b65d07102a4cc36a02dea44c448fad83472",
|
| 530 |
+
),
|
| 531 |
+
"3.1.38": struct(
|
| 532 |
+
hash = "03ecb526947f6a3702a0d083083799fe410d3893",
|
| 533 |
+
sha_linux = "e2812859fa32b6019f688dd66f2fa48efbfb5594da9a43b876fd4fe4ca474c20",
|
| 534 |
+
sha_mac = "a88c4b9eeb5dedb0d9af3b6b84bd45c486de567fbeba1675edb2d7d196e0013b",
|
| 535 |
+
sha_mac_arm64 = "0e5d1519ccc1163c13ee93d85f70ef6a520464f59ca3795c47cc7c44ab0f5f49",
|
| 536 |
+
sha_win = "bcdea031961a4f3c23008d53e083770d19751dd2a2aa71cacdea8462d09548be",
|
| 537 |
+
),
|
| 538 |
+
"3.1.37": struct(
|
| 539 |
+
hash = "7c905cfc1ca6699f6ccb288ae174902cfbdcf0a2",
|
| 540 |
+
sha_linux = "9ff44ef69d3f389adcacbb9b95331da72cffdf6e9431c8beb6ebf7aedb77499c",
|
| 541 |
+
sha_mac = "accfe90322b6449933c3d8e1346024e2e2e3bef7b101942294f995b2c8e1b60f",
|
| 542 |
+
sha_mac_arm64 = "a0461e234c08bd7ddd7a86b49b52ccc853ebe4ce0fb5b4314e9de0193c32514a",
|
| 543 |
+
sha_win = "e026ea2570e747d0640829c62abddcdc14a4acffe31180110971750b80042d7a",
|
| 544 |
+
),
|
| 545 |
+
"3.1.36": struct(
|
| 546 |
+
hash = "adedc0750c4a89b65bee866edab24298cb8d6677",
|
| 547 |
+
sha_linux = "55d3cc557a83716f7a7fe121a07dbd59ed4b5d425051e22c902570e3e0ea6c4c",
|
| 548 |
+
sha_mac = "6643fcef0f928cd730b894f0c2c3343eeef870576e43e56428a7a8247c7bc921",
|
| 549 |
+
sha_mac_arm64 = "2e8d9103cd0ba7a2b143927196a630b091b981006c908d7d36995a210a04d73b",
|
| 550 |
+
sha_win = "69a197f6fc153d9f98ced539564683cb13ff0ef144d3d4fbddf643e33b5f860c",
|
| 551 |
+
),
|
| 552 |
+
"3.1.35": struct(
|
| 553 |
+
hash = "671550b5bdceee7bdb21493714f9a815aa5149a9",
|
| 554 |
+
sha_linux = "9d4b5dcb719d39e59b646ecf7c409db20c5cb6b9575f5362ffb49a9e66290819",
|
| 555 |
+
sha_mac = "01ea06c1f4a6c980bfdc812f9599a8ef424a975c89d5c288c9e6f2fa5e5ef5ad",
|
| 556 |
+
sha_mac_arm64 = "f6480ee21c80fe062e0f9d8555f8bdef621601634b9bd1e5ad07b90777ff5e4b",
|
| 557 |
+
sha_win = "cd26088365433ce1263a11898406c2f9284e55c2c7f23b26170c2a172c52f0b1",
|
| 558 |
+
),
|
| 559 |
+
"3.1.34": struct(
|
| 560 |
+
hash = "2fdd6b9e5b67d5b62f84d0501a876513ff118ef1",
|
| 561 |
+
sha_linux = "dd3713f077072dcdb811f934d6685187daa47c424039e31cba83633c8d1681b1",
|
| 562 |
+
sha_mac = "3824609ee9b7c9919e29b19775d495a16778adb981867901f4bc503fe2f65d7d",
|
| 563 |
+
sha_mac_arm64 = "72728637171df46e7cd22f90537dd6faf1d4809ed1befc504ff96768c82f0e0f",
|
| 564 |
+
sha_win = "7538d1a1e0d586bd0723f595557551b05d724a5803132949a6fafb8b056af995",
|
| 565 |
+
),
|
| 566 |
+
"3.1.33": struct(
|
| 567 |
+
hash = "49b960bd03b3a9da478a08541ce6eafe792a58a8",
|
| 568 |
+
sha_linux = "eab02b3f4b7c076974452ba602f908a36adf597afa15b16095b441f191ede1bb",
|
| 569 |
+
sha_linux_arm64 = "5e15af6affcf37c9ce6c304b4aeccb87a2758e1ef029dbc996f9d77d7444378e",
|
| 570 |
+
sha_mac = "b8dad3cddb19c1daf9dae99020bd17b903ae9649cfc58e433ea4951e758804de",
|
| 571 |
+
sha_mac_arm64 = "fbf03d06c7503f091191e440b8ea577d65b3261167cdb47359d053f12888974b",
|
| 572 |
+
sha_win = "031f951668eaeea39bd9363abb3f514efc3401506374984fa9b1d7ba3130a62f",
|
| 573 |
+
),
|
| 574 |
+
"3.1.32": struct(
|
| 575 |
+
hash = "29ad1037cd6b99e5d8a1bd75bc188c1e9a6fda8d",
|
| 576 |
+
sha_linux = "25fa252e9fc674d1bcef35b3a10dd85024aa93c843b8067f8d917e5151968ffc",
|
| 577 |
+
sha_mac = "7881714e7738eb183b5a421bb2b907e96359e791ad0a622be6e7f5690a16b9d6",
|
| 578 |
+
sha_mac_arm64 = "04eede7352aca4b6fc1c111a8b31d00e8aa40547c3cd062ff9be4ffe1ed98d95",
|
| 579 |
+
sha_win = "22c3429eb1e6051bda46e9c02c14eca1ae3749ba8c411fbd5a3b51e3b9623161",
|
| 580 |
+
),
|
| 581 |
+
"3.1.31": struct(
|
| 582 |
+
hash = "1eec24930cb2f56f6d9cd10ffcb031e27ea4157a",
|
| 583 |
+
sha_linux = "5952523c0c58cfc7c8839c1d3fe42ff34af5d8721231306ee432063dfacf96ca",
|
| 584 |
+
sha_mac = "13482cf3cb29f423f2037b9dc2b9e4ff72d0a49fcd471bbaa9b76d9f86f31d82",
|
| 585 |
+
sha_mac_arm64 = "654a35af16be5eeb2082e68fb36190fe76de28fa2da75ac0d2197482a203f39a",
|
| 586 |
+
sha_win = "493c29f5a505ccd9687036ee4c580d190b1c32b286be0e751a78e68997cec8b2",
|
| 587 |
+
),
|
| 588 |
+
"3.1.30": struct(
|
| 589 |
+
hash = "dc1fdcfd3f5b9d29cb1ebdf15e6e845bef9b0cc1",
|
| 590 |
+
sha_linux = "151d7afdfb728e1e55ed1d100e4d3fbd20925fd65f3c3b9e093061a2c89dcac7",
|
| 591 |
+
sha_mac = "f0cdbc676c58bce7a65572418fb1521665ed522d7d05ae90f0764b77801982bb",
|
| 592 |
+
sha_mac_arm64 = "fca4eaf8ff528bb9308e5e8d0cf2709713b99fc19d55c6578a6c8f3e66182f55",
|
| 593 |
+
sha_win = "3001101622d98b2af3e5209154f60bbe341d32f6178307c6c723e84b5fe08bdc",
|
| 594 |
+
),
|
| 595 |
+
"3.1.29": struct(
|
| 596 |
+
hash = "d949f1b99a477d4b0b54d95413df3688afa69d0a",
|
| 597 |
+
sha_linux = "d3f274446924c27082603170fab60ba78a2fb51360e5578fab4d9b5adab0fa9a",
|
| 598 |
+
sha_mac = "ed224c296efd22437f298f0fe0852613b0b1d48810b1b6d87b6b7e6beb589fe2",
|
| 599 |
+
sha_mac_arm64 = "af9bb86a7996bbbb36820e93dbc7f537ac23070e8730439b1e49792c4fc008e9",
|
| 600 |
+
sha_win = "6203f80273565a2ee6734bd33ad7bc6940ef709cbd593e70d6489e96c02ced25",
|
| 601 |
+
),
|
| 602 |
+
"3.1.28": struct(
|
| 603 |
+
hash = "30b9e46ddcea66e91530559379089002d8b692cf",
|
| 604 |
+
sha_linux = "c23426d8b6d94cea702542c39e3bcef9439425dd4bd03bcc172e291dbbe5ed0d",
|
| 605 |
+
sha_mac = "4cfb918fe3233a2b31e5734e85b2a365e634f4e8a83c4390e8595cb98ae6bd8c",
|
| 606 |
+
sha_mac_arm64 = "a47f1f09bc7bbd4952cf54445d4fbfae53623ecbfecee0506a637665c7b4ea4c",
|
| 607 |
+
sha_win = "4388d230871d5b1e15c2fd0db21a792ab2836f23d860475fe183c03c5db75c8c",
|
| 608 |
+
),
|
| 609 |
+
"3.1.27": struct(
|
| 610 |
+
hash = "48ce0b44015d0182fc8c27aa9fbc0a4474b55982",
|
| 611 |
+
sha_linux = "4dc872260c8f42a8e20c8612b2255adbd466fec54cfbe37b46eca4eb34a2b03f",
|
| 612 |
+
sha_mac = "40c3326147b162b8357efdc72476faaa6686338cff3e176680e361c2511453e8",
|
| 613 |
+
sha_mac_arm64 = "7b87610de966b84353c8c1ded8e12c034b5b913c093210ebd3b26320e2ac2990",
|
| 614 |
+
sha_win = "39bbfcb09ba7feb214518a67b1ff6d38bae065b416b4483834e4fdaef2316f8c",
|
| 615 |
+
),
|
| 616 |
+
"3.1.26": struct(
|
| 617 |
+
hash = "4f68bb2a505c727bcf58195cf4da20592a6e92c8",
|
| 618 |
+
sha_linux = "82d24d5619c814ae99ef7243de428600c02e96dfc49c36e44753b1fce626766e",
|
| 619 |
+
sha_mac = "7b645979d8901f3153507561bbec10ecfeb197dca5914228715a74b760cf7eec",
|
| 620 |
+
sha_mac_arm64 = "d9c647fd70588bae71303a6c923df8a44ffe63e168b375d35bf6ceda21258fa1",
|
| 621 |
+
sha_win = "1ad49d69634ce2d1fe04614c18060a903c102e1dbc9dfdef3a03e52c189b4c92",
|
| 622 |
+
),
|
| 623 |
+
"3.1.25": struct(
|
| 624 |
+
hash = "ff6babb041d0f31575cc16d15ef82c6222ca99b8",
|
| 625 |
+
sha_linux = "c5ae6b4525845ea36bde89cbf4e1d03de87a2658862d76c6a53bbf8de7c67ff5",
|
| 626 |
+
sha_mac = "d2581aaa7207f0d9dd9949247f0706bda8561e805d67aec166ed4f3b39c3a3fa",
|
| 627 |
+
sha_mac_arm64 = "dbcb76036a09248c2a839872c27b87b6d4ccc81e57add4e2a6f5e560a2c530fc",
|
| 628 |
+
sha_win = "3a86d98d934456a74ed06388c1487d95a0d5a3f31777636453f22e61d57d7fb1",
|
| 629 |
+
),
|
| 630 |
+
"3.1.24": struct(
|
| 631 |
+
hash = "54217a0950bb1dafe8808cc6207d378e323f9d74",
|
| 632 |
+
sha_linux = "20e8e5bd745e3ad69c03bb877091d2fbb0c7db1eab309de8f185e9821aea40f4",
|
| 633 |
+
sha_mac = "cfb897a980dd51fceb02ff143ad0fd8e5d299db640c5646d1547d522194545f2",
|
| 634 |
+
sha_mac_arm64 = "e87b0727343051312f82a6653cad4682a518dd9cb6575844c0cd6505d520fab6",
|
| 635 |
+
sha_win = "a0ea07f9014a912f13176fdbbc1ee7ab08104d45e7ca7e1c237505579b63d530",
|
| 636 |
+
),
|
| 637 |
+
"3.1.23": struct(
|
| 638 |
+
hash = "bfd5e63a44ba4c8568cd8ac87c27b35e40732bf4",
|
| 639 |
+
sha_linux = "3b8d9e163d6afc8569deca0ba1d4042f80da7a31e23cee006c3faa9cbf2fbc31",
|
| 640 |
+
sha_mac = "fd1c79475e47fd2f06ee9ba189e68309e443c2d3c56fd28163d1cd6f77047075",
|
| 641 |
+
sha_mac_arm64 = "66e57ee0962ec31056674b5681f91bd62f85b0bf1238a8d5b160660c0bf47292",
|
| 642 |
+
sha_win = "7c30b281abcc0ffb9e7575197f1ac0598a94c6cec36547b81554a97b792a9e75",
|
| 643 |
+
),
|
| 644 |
+
"3.1.22": struct(
|
| 645 |
+
hash = "990cee04a21caafc75955d736fb45791a7f2aeee",
|
| 646 |
+
sha_linux = "a310ed9f16c97a91c72564ca5f85c412cb99429d8001825663fda1b28c00346e",
|
| 647 |
+
sha_mac = "b19afaf414178781c4c91ee711ec4d9063b9736719e45ca2e8b45c2258df16be",
|
| 648 |
+
sha_mac_arm64 = "7c8212abf77f0307b6ff848bf9c6212f870506df6d074349f76401f30f9fcefe",
|
| 649 |
+
sha_win = "2c0cfe267d47f390d7e35a83545b1d5043e4a7fb77b838ee19b0fce65035f55d",
|
| 650 |
+
),
|
| 651 |
+
"3.1.21": struct(
|
| 652 |
+
hash = "a16a8bca2466eb144f7c93fa899c0272c8815dc3",
|
| 653 |
+
sha_linux = "7045ddb3b37a2cc63cb1cf976019a6a3b7f8dbdc71254db0eee5b0452f94e9e7",
|
| 654 |
+
sha_linux_arm64 = "2852c8b108ec748d52d31dab3f4854bc6022df008019daff1c7e31ac00363b3f",
|
| 655 |
+
sha_mac = "2a8d3d3ad721fec81ca1a4a581e4183b6e732e9905beb874531851846a05a367",
|
| 656 |
+
sha_mac_arm64 = "cf788a7bdc38bb40d01f94b2d46acafb0e2f02d8ee3b3d69541c114e467ee37f",
|
| 657 |
+
sha_win = "81518bba13f41717ffe6990b6d4a5af635d0c9d0f71a8d3bc0980cd0bc8f5f66",
|
| 658 |
+
),
|
| 659 |
+
"3.1.20": struct(
|
| 660 |
+
hash = "d92c8639f406582d70a5dde27855f74ecf602f45",
|
| 661 |
+
sha_linux = "3b606d133489aac8cdfff4f99ff14a35563b1fafe658aa23f83694f77ed9467a",
|
| 662 |
+
sha_mac = "cc9ea1696bdb3f28778bac1cf4587a34e90830e1c64976cd205fd73e77566cd8",
|
| 663 |
+
sha_mac_arm64 = "b976410bf4fa1af9896be1c736634bfb56b2ef0f3386cd3cf39616ce47445cc0",
|
| 664 |
+
sha_win = "1e6806ee240ab838ae7eee618c57efc793195c62e4d167136507efcfa66d6c6d",
|
| 665 |
+
),
|
| 666 |
+
"3.1.19": struct(
|
| 667 |
+
hash = "4c3772879a04140298c3abde90962d5567b5e2fc",
|
| 668 |
+
sha_linux = "18d4a5bb93371fe1d4586db9804f673fff0c510d98713ec25b6bda1a8457230d",
|
| 669 |
+
sha_mac = "6adb721340cb93b7a3efafbfd1d283842a39bb6f1390630b0806c8af26b66840",
|
| 670 |
+
sha_mac_arm64 = "429c9e3a79d32380f3dfee52b1001963edaa2e3035fce9f52ca87b08e1a2f26e",
|
| 671 |
+
sha_win = "0368eefb28f42799ce897020d0d10a4a27e1b69b650575d94deb268e402a3632",
|
| 672 |
+
),
|
| 673 |
+
"3.1.18": struct(
|
| 674 |
+
hash = "49d45744895c7d7e28acd94a385d7ee361653b4a",
|
| 675 |
+
sha_linux = "6ef373c4ff3cdf33d7beecea47d4eaee7795693f8ca9469f33785cb9c54f40bb",
|
| 676 |
+
sha_mac = "ad0e645abdb6d3f0b6c6ad0ee70761010a712949c9b0b193aefc78ecbc3f1710",
|
| 677 |
+
sha_mac_arm64 = "68d0a1ec3e83e0415e24133c59e64206b83686712434c8c2e6792547cf654b1c",
|
| 678 |
+
sha_win = "96829a228f7c08fabd37833f7361614785aa39aa865beef06890ee8ede58dc66",
|
| 679 |
+
),
|
| 680 |
+
"3.1.17": struct(
|
| 681 |
+
hash = "d27fef2070c86a218965da8b8b5df8b4425aa3bb",
|
| 682 |
+
sha_linux = "562b3ba75ce77a917317bc697febb38194e85cfe07f4fec308c3b29c621f8f13",
|
| 683 |
+
sha_mac = "8a2bee8ea434049e40663a6d78d1c3584e5c32196fd85d6a10f3192d2e3aba4e",
|
| 684 |
+
sha_mac_arm64 = "5f60d3f351d06d862e853a294642d24243d6cb197e34c2f2602d80555c2eb014",
|
| 685 |
+
sha_win = "90b2ade825e07bb05831090dd64b5f5b01a4169a84a3ddec85fcd60be3b246a5",
|
| 686 |
+
),
|
| 687 |
+
"3.1.16": struct(
|
| 688 |
+
hash = "fb1baf00423818052359cf9126e94bc71c39feb5",
|
| 689 |
+
sha_linux = "bdce7e58833069a98d7e0b4fd9d6fea7394770ec10339cc95ed9fe52ba39f3a7",
|
| 690 |
+
sha_mac = "d05f4e997324d7f7d8561436677687d296893d6414f53930184fab272e4c6158",
|
| 691 |
+
sha_mac_arm64 = "36ab8da30698558a567c5c1c0e130b59f08cf4b29c9c5242f4ea60b449ecff17",
|
| 692 |
+
sha_win = "e1324c22c914ab7f62fe6d38a550de25b2232a723c80393fa8884a260c07766d",
|
| 693 |
+
),
|
| 694 |
+
"3.1.15": struct(
|
| 695 |
+
hash = "568a46a9fb7e1f1686a6f7216b3dc976f28d2a79",
|
| 696 |
+
sha_linux = "737db513047d12e95a12f4fbe05314f3af79ac955d1ea43fc83626337e307edc",
|
| 697 |
+
sha_mac = "f8993371a1ff713203023f0283054a31df5342ca287debc4e16d04d97e069aee",
|
| 698 |
+
sha_mac_arm64 = "c61a8efa8543a6c44e394a0685e7d4facb4c7dbb210c4c32d311b0002c4dec99",
|
| 699 |
+
sha_win = "235592467a0be6a537e03fb587aaee230aa2c889f2785cb9754eb44bfbf747ed",
|
| 700 |
+
),
|
| 701 |
+
"3.1.14": struct(
|
| 702 |
+
hash = "ade9d780ff17c88d81aa13860361743e3c1e1396",
|
| 703 |
+
sha_linux = "e2c43068fb1985592db42183a13f85bbd9518b3747746e0003d70c7d770a0b2f",
|
| 704 |
+
sha_mac = "567e9548f3fa7c1aa717821af4aaa7849a0f7217cb55eb7f66a06c898808fd96",
|
| 705 |
+
sha_mac_arm64 = "df8319aba8bc0d0c40ebec3c8f45e507c2a51a57df24826d4cab6f6cd75017ac",
|
| 706 |
+
sha_win = "6bfec6bf6a01e483a57e91f7223340a425f6ff711cbd32a08ed78002810d7882",
|
| 707 |
+
),
|
| 708 |
+
"3.1.13": struct(
|
| 709 |
+
hash = "bc44364b561cfde15c243a54e3b96ea12d7ea284",
|
| 710 |
+
sha_linux = "290f04300465cbb7c8e920f9986128b3f287b14b93627b0c6d069d534860c1b4",
|
| 711 |
+
sha_mac = "72b209a3e5800be155cf5b29bdaceb18aefceeba68f35ac719a483bd27d85705",
|
| 712 |
+
sha_mac_arm64 = "2bf90ed73454f58b810e09a776a34ddf7395f9ee45580f3a8fea53f74ba7ede2",
|
| 713 |
+
sha_win = "07fd730289c26f72ae4037fd25f608f6b9d36f1950677229b6c7d392957db3d2",
|
| 714 |
+
),
|
| 715 |
+
"3.1.12": struct(
|
| 716 |
+
hash = "a8c3b314d61e2bb98581d522f858132b2fc21488",
|
| 717 |
+
sha_linux = "ac8ae46b2fe2fbef07077cdeefc8288d2a73e3189958f32b36f2d17d868275d0",
|
| 718 |
+
sha_mac = "c33afddd7c8f7a5293cb427ef26eb65f51fa3121d0577568824174227aa37ef3",
|
| 719 |
+
sha_mac_arm64 = "253feff779385d2499764cd988175446e21db8cbb9952746e96969c2a763924c",
|
| 720 |
+
sha_win = "04015fb6a1b4ad4d7c16587a7eeaabf19c5b35097f3e28efa029c0c67547067c",
|
| 721 |
+
),
|
| 722 |
+
"3.1.11": struct(
|
| 723 |
+
hash = "8c3a799341c01148692c52fda73bbba5e89c5727",
|
| 724 |
+
sha_linux = "ba52cfd784362530866c9d554ddc62cfa3f0690f44007c0b3b36e189bb579d5e",
|
| 725 |
+
sha_mac = "c46548425e0bf4acd3c4275aff6a463c90ff1faf283ae7f5237d8c17bf84d779",
|
| 726 |
+
sha_mac_arm64 = "c5ae40c468955ed02b86c54061278d2b4075b1230612bae5910f836aa9c200b3",
|
| 727 |
+
sha_win = "74481a1998236fd9d296f367584934d5ab8bbf174446ceb647f714031671de98",
|
| 728 |
+
),
|
| 729 |
+
"3.1.10": struct(
|
| 730 |
+
hash = "8bd05c7221b4ce34d4bedec40b672d94e681a765",
|
| 731 |
+
sha_linux = "f5a937383b5c9fa15071a31d679a2ddd5c03bc8952cbbd5bfbf7c0a86c2dae5a",
|
| 732 |
+
sha_mac = "e73491f2787cbda75e718c3947916b57259164eddd9b2db16b9c876d3deb16a9",
|
| 733 |
+
sha_mac_arm64 = "d7485ce3b13f183484af5163d7bec79ece9a1fdc5845f8152e36270e6f90cfd9",
|
| 734 |
+
sha_win = "dd75061405bc902ecd983bd3e4cfd6931a866e1c9de602c4458280cbeb271720",
|
| 735 |
+
),
|
| 736 |
+
"3.1.9": struct(
|
| 737 |
+
hash = "edabe25af34554d19c046078f853999b074259ca",
|
| 738 |
+
sha_linux = "89fa75c981e47ad19942b8236d2604b2666dfd516a08626aaa1bfb0d657c87bf",
|
| 739 |
+
sha_mac = "6c7f59dd84d1484f1dfa041d71cc79fc97db8d15834b6220e5868bd9bd373a24",
|
| 740 |
+
sha_mac_arm64 = "13a258de0daaa3c09a53e21a67414cbf5fa5706f955767fe791a059ed5eb90bf",
|
| 741 |
+
sha_win = "0857b03919b948558f9a57d15cf2b220852cc070359c386da0e6e4831c7ac5e0",
|
| 742 |
+
),
|
| 743 |
+
"3.1.8": struct(
|
| 744 |
+
hash = "8c9e0a76ebed2c5e88a718d43e8b62452def3771",
|
| 745 |
+
sha_linux = "6b170777eb523e62972ad458e533b1853cd0c4e02f6f2cf4cd68e109499ccd9b",
|
| 746 |
+
sha_mac = "ede01fe160c3b8443f53f94dbad530e0e7e8197a1b874c7bb9038b187279080c",
|
| 747 |
+
sha_mac_arm64 = "9ecc8678f948875e7f64defeababc0320f98e103547f395c390c01d76e5a1d64",
|
| 748 |
+
sha_win = "039d27d4ae43b50d0858dbc4dcf412f572351e98e1056d7fdcdf2aab1740557e",
|
| 749 |
+
),
|
| 750 |
+
"3.1.7": struct(
|
| 751 |
+
hash = "d0e637fe48197587d981f79e8114757731d0c2a9",
|
| 752 |
+
sha_linux = "d941738a3c755d6d530bab66d38325515b9dbaa588d2db2b8a63b2a8a1961e52",
|
| 753 |
+
sha_mac = "597aacdb25d422094427014d3a97e8b91ec80df2255a66e0986414bf71aaf37d",
|
| 754 |
+
sha_mac_arm64 = "a0b2db0269c55e854d1007a59f95b8e5f14d32309e76f985ea9afe481b2bd6e6",
|
| 755 |
+
sha_win = "cb44339db27b694862efb37539d41eaff7253c93c0882cf7d9aaf4afeaa82912",
|
| 756 |
+
),
|
| 757 |
+
"3.1.6": struct(
|
| 758 |
+
hash = "8791c3e936141cbc2dd72d76290ea9b2726d39f3",
|
| 759 |
+
sha_linux = "f43dfe707dff18fa7a08dbfe2fa3f8d46afb65ccba9bbe554465d83d5d80e388",
|
| 760 |
+
sha_mac = "13a01080ff042560b9a9b1b2c9fc5f8c154710bc41db8bbd907a9e53c286afd0",
|
| 761 |
+
sha_mac_arm64 = "7ae97e85593b037c345b539e7f8b8952b82c001be982219060c83f0834bb6827",
|
| 762 |
+
sha_win = "e7005c0a5439e532cb64f34ba90405792288a1ed8845cdafcedd3de5af6fd3f2",
|
| 763 |
+
),
|
| 764 |
+
"3.1.5": struct(
|
| 765 |
+
hash = "2dee36c7163f7394ab9341854ef5281501dd97d0",
|
| 766 |
+
sha_linux = "6641703b7da1805aa5a8488d231ae7fedfe27f1a5a33e7d05a2ee5902ab84180",
|
| 767 |
+
sha_mac = "9dba57f09702a7eed53f3f71cdd8a4ed1202ca5a5f4449249c2d98a285b26f75",
|
| 768 |
+
sha_mac_arm64 = "0093b4d47c9eb9c8bab5b3048c68855255b5e5a8bfd78f4183424009489327e6",
|
| 769 |
+
sha_win = "849edc42b494f670df4763dbc8ebbb5464ac28787482668c3f6e27588a77cb3a",
|
| 770 |
+
),
|
| 771 |
+
"3.1.4": struct(
|
| 772 |
+
hash = "39e60dda6945cfcd6487725bdb1361ae7975173f",
|
| 773 |
+
sha_linux = "4a57c0d60eeb4e021de61c8497f0b595a0a9db0235f1640a528de752409f4fcf",
|
| 774 |
+
sha_mac = "f28a9a4f42f67de1d5c4d8a288f29e5082bbf4fcb172e0c6e248695163372478",
|
| 775 |
+
sha_mac_arm64 = "be35043edad7a7022f7b174e8efc90e2db54ba4fd71288760bea4db082835f56",
|
| 776 |
+
sha_win = "d97ff247bdfc7e839610cbcd87d30a65018f964d183d5b852b6021d43c5d199a",
|
| 777 |
+
),
|
| 778 |
+
"3.1.3": struct(
|
| 779 |
+
hash = "2ddc66235392b37e5b33477fd86cbe01a14b8aa2",
|
| 780 |
+
sha_linux = "8b840819eb88f9178c11bad25859ce448a0559e485823a863a6add21380636ca",
|
| 781 |
+
sha_mac = "0cb3f9bfbcc744233eae9d20036155738409405eacf8a3d4f9beefc5919d809a",
|
| 782 |
+
sha_mac_arm64 = "ee2772f380419df17d154e00388a16bcddc78c7af035c16a2ee534d6ecf099aa",
|
| 783 |
+
sha_win = "c0549e1dbaa581ae66934c38beebd4250cd450cc2778e9a602cd9431bc81bc37",
|
| 784 |
+
),
|
| 785 |
+
"3.1.2": struct(
|
| 786 |
+
hash = "6626e25d6d866cf283147ca68d54ac9326fe399f",
|
| 787 |
+
sha_linux = "4fb53364a2ba1de8978445aa26b2204bfd215b41da5d7df04f231040b197010a",
|
| 788 |
+
sha_mac = "a8e347accb1ff402d96a128912ac8cda1731611c9f89095fee0ad39a6a18bbc3",
|
| 789 |
+
sha_mac_arm64 = "4374f5c852d0403b0a3b0e9dc8a3856a340e9d82ecf0f20aa8b36c6179d31fc8",
|
| 790 |
+
sha_win = "e96f6ab8252fefa42f461676311d4c4e2d96fdc2e876ece07d9d7a49ef31aef0",
|
| 791 |
+
),
|
| 792 |
+
"3.1.1": struct(
|
| 793 |
+
hash = "5ee64de9809592480da01372880ea11debd6c740",
|
| 794 |
+
sha_linux = "ba94c5ecabacbedc89665a742c37c4c132c739aea46aa66fd744cb72b260c870",
|
| 795 |
+
sha_mac = "8b5f8cec55af0e6816a08d8d1e8b873f96d0e0504fdd6e8deb2fc024957d1aa7",
|
| 796 |
+
sha_win = "6cbe976aff6155cf1c48707f0520b5aa6a7770860e9b1964bfca3e5923ce7225",
|
| 797 |
+
),
|
| 798 |
+
"3.1.0": struct(
|
| 799 |
+
hash = "562e3a0af169e6dea5e6dbecac2255d67c2c8b94",
|
| 800 |
+
sha_linux = "0714344e32e244e6d44d9ea75937633ab1338e417a232fb66d6dcd7d4b704e8c",
|
| 801 |
+
sha_mac = "f6c1cad729ed799e1df09eacf5aa80cce9861d69ec6d9581c17e4ba8d9b064ce",
|
| 802 |
+
sha_win = "756c41cbcab4ae6077cca30834d16151392b8c19ab186c13d42d7d05d6d727cc",
|
| 803 |
+
),
|
| 804 |
+
"3.0.1": struct(
|
| 805 |
+
hash = "91b7a67a486d2430e73423a38d950d8a550826ed",
|
| 806 |
+
sha_linux = "25fd430268596229c4ac38e188d7c2b31f75c2ec8172b1351d763e37c830c6af",
|
| 807 |
+
sha_mac = "52ec2204115b727cc4de38b5eeae147eead12b299b98e5a88653d12958cae4d4",
|
| 808 |
+
sha_win = "0e072736b471c9a07cdf534ba4da46b3b6545b63c8a6cbb0ef7d544251e15092",
|
| 809 |
+
),
|
| 810 |
+
"3.0.0": struct(
|
| 811 |
+
hash = "7fbe748230f2ce99abbf975d9ad997699efb3153",
|
| 812 |
+
sha_linux = "10646b64daea15354f14f89f7e79937f420b77f31bda7c4b174de2474835950f",
|
| 813 |
+
sha_mac = "ebb17bc91c6a72ca06d17337d27aa1a2be4c9af4c68644c221712123f663b8ab",
|
| 814 |
+
sha_win = "0d4f2ff5d88a8eef5ed769ee4ffc5d5574143911d2e0079325cdc5206c9e9bb1",
|
| 815 |
+
),
|
| 816 |
+
"2.0.34": struct(
|
| 817 |
+
hash = "d8fc1b92dbc0ce8d740a7adb937c5137ba4755e0",
|
| 818 |
+
sha_linux = "a6304e3a52c172eb178c6f9817d74aa3ee411e97ef00bcae0884377799c49954",
|
| 819 |
+
sha_mac = "975ae11000100362baf19d161fec04d82e1f7c9fb7d43c43864ddd65a47f1780",
|
| 820 |
+
sha_win = "8167a44bb895a0fdc153836bed91bf387be57f2dc1b8f103bf70e68923b61d39",
|
| 821 |
+
),
|
| 822 |
+
"2.0.33": struct(
|
| 823 |
+
hash = "cef8850d57278271766fb2163eebcb07354018e7",
|
| 824 |
+
sha_linux = "958a0f4b1533e877c1a5ed3c13cb8baabc80e791d45858c2c94ac62325ada953",
|
| 825 |
+
sha_mac = "8ecb248653d44c3748e23c089cb9f0e3d4eee7cda13fdec27ec0113b896e34c4",
|
| 826 |
+
sha_mac_arm64 = "1ec6f3d7afa5e10f3af996e26d9c3a66f02ae49e48e512a4b5d6b7165c61290f",
|
| 827 |
+
sha_win = "6b6b2831f8b338488f787b4a8c34700277bf3988358dbb54426f017155603ac9",
|
| 828 |
+
),
|
| 829 |
+
"2.0.32": struct(
|
| 830 |
+
hash = "74646397e3c5010824ad60d1de86c6bcbe334dff",
|
| 831 |
+
sha_linux = "236b3954e71d3bb30d347c655b9f47f2a091aa2e61046e1912c8da90152f4ca1",
|
| 832 |
+
sha_mac = "6a03267574534948e3b041e5d3e31bd757751ef17912eb6e90b96a47da03afb6",
|
| 833 |
+
sha_win = "2f8fbf0db097d67d0c364946faceec27c569c5c2d7b22068eef8db55645aba36",
|
| 834 |
+
),
|
| 835 |
+
"2.0.31": struct(
|
| 836 |
+
hash = "597724ca3f6cd6e84bea73f1f519a3953b5c273d",
|
| 837 |
+
sha_linux = "ef70c7733aa0df41cb4c812f5a89bf6b2ed13ca8aa252872396c0be271156d9e",
|
| 838 |
+
sha_mac = "77e57c3e98758488ef676f8f58a85faa0bd65a1d326a91771ad83d7cb0e373ca",
|
| 839 |
+
sha_win = "541605b740afccd08a39f5ae815978f699f350d621a1b2dfba0763970b56aee4",
|
| 840 |
+
),
|
| 841 |
+
"2.0.30": struct(
|
| 842 |
+
hash = "c69458f1bbf3ef5b8da4e934de210659cc9bca04",
|
| 843 |
+
sha_linux = "ee1c8270096a728966ae38af548047d1f64c18318e06ba75952e657136f02537",
|
| 844 |
+
sha_mac = "574a5819308eba6c8be6a780e26dff415a0e7178d3f44162dd8dca87eb40d4a7",
|
| 845 |
+
sha_win = "242d244f4f5f5af08e6e6ac9c143aebf1b7bb2a23fd2992350731e59acfee07c",
|
| 846 |
+
),
|
| 847 |
+
"2.0.29": struct(
|
| 848 |
+
hash = "c2369dc425725fff86ba90a9007a4603ddf7941b",
|
| 849 |
+
sha_linux = "7df4a8f3e25820becadfa7f1fe0d78e764102ec3ee50c474ca1634ed90d48890",
|
| 850 |
+
sha_mac = "d998521ba95882a27792f0113ea2c972fbb891c240649f4c994f0260c0e1a213",
|
| 851 |
+
sha_win = "c64aa3f2af6503f6711b2322986a45784e00d7c7fe13ec3f5c4f740472d065a0",
|
| 852 |
+
),
|
| 853 |
+
"2.0.28": struct(
|
| 854 |
+
hash = "866055ea639d64dfedc625d28ec981e47ce37168",
|
| 855 |
+
sha_linux = "7dca7704eb14e367bb67e9abc9eaf59e75f59b74e32422e04556de10897a9a86",
|
| 856 |
+
sha_mac = "370f76493e3805e2538290b698a381f04b6d78a77771e48fc0099cf89dad985f",
|
| 857 |
+
sha_win = "e913c50ea5f196d36971f7cf5b1cf9a9ca27ce0818aba56be3a66e31e95c0e5b",
|
| 858 |
+
),
|
| 859 |
+
"2.0.27": struct(
|
| 860 |
+
hash = "1ac46e3b84955231ab4a4f4cbe0c7ac28c86b8cc",
|
| 861 |
+
sha_linux = "3e124e278de168cf22e03b93b2f14a65a86777e428cdaab7e5e1c2289eb41605",
|
| 862 |
+
sha_mac = "388262b9e1042ef9a3a1945d5a23dcd634c8042a225e8fdf80bcc2c1cb7e05cc",
|
| 863 |
+
sha_win = "762276a332432e717afb988310d21ae10e36facc1e05bfd77042a364fb43cc3c",
|
| 864 |
+
),
|
| 865 |
+
"2.0.26": struct(
|
| 866 |
+
hash = "823d37b15d1ab61bc9ac0665ceef6951d3703842",
|
| 867 |
+
sha_linux = "996e16d368a99dd4dd12126acbcb8bea9a607b5257cc7b747c4afc2f036fd8cf",
|
| 868 |
+
sha_mac = "8b2d7e84cc449531e88034beb31da89a0b61ccaeaa1584ffb6da7842c6348fdc",
|
| 869 |
+
sha_win = "095e772764d7f8c0f8228bda4b8500ae43aac2303567da5cdc9f8623f70a5743",
|
| 870 |
+
),
|
| 871 |
+
"2.0.25": struct(
|
| 872 |
+
hash = "f6f001b08fbb67935379cf13d17fd9bfdbaff791",
|
| 873 |
+
sha_linux = "06d8e2f3d4f4b35a57de9c15e62a559c941cfba1dd7ec02353d815904d912c3b",
|
| 874 |
+
sha_mac = "6541bf3a648aae7df84de424ff392dd1513ab5450203c84f72a6a03e321a301b",
|
| 875 |
+
sha_win = "267fbfa809ec0eb911c1962b1b9768675cb82228e694a5f9ef570232ee71db76",
|
| 876 |
+
),
|
| 877 |
+
"2.0.24": struct(
|
| 878 |
+
hash = "6ab7fc5622a67e6111d07c4ba61c8d3c8fc33ed2",
|
| 879 |
+
sha_linux = "e5daa0e87f3afd2197e7975297cb0cd4c245edccb964ca5f1f32ee7d985bf440",
|
| 880 |
+
sha_mac = "e4b7f2a7b71d6ac4610ee7b14743570e0dfba3668dc6b4f984cbe7a135888527",
|
| 881 |
+
sha_win = "db2aad422a3ca2295be6101b0151eeee55dcea29ba1f31b4594c02ba46591cbe",
|
| 882 |
+
),
|
| 883 |
+
"2.0.23": struct(
|
| 884 |
+
hash = "77b065ace39e6ab21446e13f92897f956c80476a",
|
| 885 |
+
sha_linux = "7713a9a5572d839aea9eaa84a7c4779d11c6c8818ee64a0f443b62081fae6d47",
|
| 886 |
+
sha_mac = "b793087462d581e25c8c267fca9d30519619e3272480862a56cc316a32c7afab",
|
| 887 |
+
sha_win = "b8885cbb41a39e4734861462e05ee58c7ff7562016a842bcee2603f229940e8b",
|
| 888 |
+
),
|
| 889 |
+
"2.0.22": struct(
|
| 890 |
+
hash = "6465a9acb820207acf7da44661a7de52d0a1ae3c",
|
| 891 |
+
sha_linux = "c079781124e763c53c9fc73781fcee40296ce3314276836bc694f07bd331a859",
|
| 892 |
+
sha_mac = "ab95574dfc685b0300e37bea36aba413045bbfa2ab06b93eceb881670489eec1",
|
| 893 |
+
sha_win = "ba142e7e380596cba763e3a414de6511bcb86de48e4b48cf393b1ea449a24aaa",
|
| 894 |
+
),
|
| 895 |
+
"2.0.21": struct(
|
| 896 |
+
hash = "72f4ec97fbc7ec16c15ae68a75b0a257b2835160",
|
| 897 |
+
sha_linux = "741264f33f96ba4b785ed0b133861ebdfefbaefab76ddcfe7bde6522829d6f70",
|
| 898 |
+
sha_mac = "b07c0d65ee7e2799170c6f3b2aacebfe070c2e4975088bcd1b3a4140fecd8418",
|
| 899 |
+
sha_win = "dc3cbf47aa4be52a92526f1790a013734ecbd407f7f36286ed0283c96355999a",
|
| 900 |
+
),
|
| 901 |
+
"2.0.20": struct(
|
| 902 |
+
hash = "e0c15cd14170f407a9eb27fcbad22931dc67feb7",
|
| 903 |
+
sha_linux = "a196504fd1095836ca3961208338ff9e292be7729ea529bc19800aa7c966d34a",
|
| 904 |
+
sha_mac = "6cdbf17ed61486b38ea79d3f31d74483e7388d1e7468518dccba3f24e0ddd4c4",
|
| 905 |
+
sha_win = "4d22a32c219dbe18c55b635d014b9eaf7da60536171b7af37d9a8099fd33794b",
|
| 906 |
+
),
|
| 907 |
+
"2.0.19": struct(
|
| 908 |
+
hash = "9b9ff2dabfb4a7fbacbc004c0bead12a60f9d05c",
|
| 909 |
+
sha_linux = "bd7c2a38ac88d219a1ab5003ddbf8fdc66a6ba55bc69f99077346edf2753b4ea",
|
| 910 |
+
sha_mac = "6cc44029c9052855a55938eb6496b5659da4b1ce9cb34502b740af5993a94f93",
|
| 911 |
+
sha_win = "a1fa8b1c387b9307f9b87c43dc83c0ff1bc04b9f29fbe4f39aff2dd946ca4b70",
|
| 912 |
+
),
|
| 913 |
+
"2.0.18": struct(
|
| 914 |
+
hash = "c2ac7520fad29a7937ed60ab6a95b08eb374c7ba",
|
| 915 |
+
sha_linux = "e9f777de592f606b10104b2efe5179a7a8f44e3a9dffa1e3aaf73e05eb8893d7",
|
| 916 |
+
sha_mac = "86b1dd62e424e3788bf132292a694a25ca9b0875d06f50d0f5d424593697452c",
|
| 917 |
+
sha_win = "49ce07bda6be070251db44a08fcc05cae21ffdbd7522423a0c79bde635e87e28",
|
| 918 |
+
),
|
| 919 |
+
"2.0.17": struct(
|
| 920 |
+
hash = "f5c45e60392b82f603e3a8039c62db294fab02d2",
|
| 921 |
+
sha_linux = "b40a4874057e4cace600f8ee9787dcbe236e3dc5b2fff5c2ecb0e867e426f99c",
|
| 922 |
+
sha_mac = "081f61abf7d5ac0ec31aaffc5550013d4093ea4ea39520b7a32b7448d2a6ee70",
|
| 923 |
+
sha_win = "45d06e597e6a1185a76200bd0481495e7298800a4805045d9cdbcce6311c91b2",
|
| 924 |
+
),
|
| 925 |
+
"2.0.16": struct(
|
| 926 |
+
hash = "80d9674f2fafa6b9346d735c42d5c52b8cc8aa8e",
|
| 927 |
+
sha_linux = "e527638b224d9a30dc7e5fa4b9bd2eb2ab76ad306739ba8cacf5a5e333933a2a",
|
| 928 |
+
sha_mac = "061020eb0e3ee0611dc5a0008ccc7778168a4f838d49ca41c0aad8c52c1a01c9",
|
| 929 |
+
sha_win = "99364ed0388f928e0594f790662bf3a30c2894b0eff81797e1b64f62128561cb",
|
| 930 |
+
),
|
| 931 |
+
"2.0.15": struct(
|
| 932 |
+
hash = "89202930a98fe7f9ed59b574469a9471b0bda7dd",
|
| 933 |
+
sha_linux = "7ff49fc63adf29970f6e7af1df445d7f554bdbbb2606db1cb5d3567ce69df1db",
|
| 934 |
+
sha_mac = "e35cced1514ad0da40584f8dd6f76aabf847ce0fa82c6dc8dd9442fb74ed6d0d",
|
| 935 |
+
sha_win = "31d5f8107c87833cea57edc57613bba4b36b16152772f744c5ad204594b4e666",
|
| 936 |
+
),
|
| 937 |
+
"2.0.14": struct(
|
| 938 |
+
hash = "fc5562126762ab26c4757147a3b4c24e85a7289e",
|
| 939 |
+
sha_linux = "e466cd47ddd4bf0acd645412fdf08eda6d232484e48e5a2643e08062a7a4cf56",
|
| 940 |
+
sha_mac = "1c554c08459b7025638ca4eddba0d35babe8c26b202a70a74e9442d577896211",
|
| 941 |
+
sha_win = "428bc6094671937af96f26d803871fc5cd83d4d2b1c1df45fa6873a9bc5cac51",
|
| 942 |
+
),
|
| 943 |
+
"2.0.13": struct(
|
| 944 |
+
hash = "ce0e4a4d1cab395ee5082a60ebb4f3891a94b256",
|
| 945 |
+
sha_linux = "8986ed886e111c661099c5147126b8a379a4040aab6a1f572fe01f0f9b99a343",
|
| 946 |
+
sha_mac = "88c91332c8c76fed14ebf0edc9a08f586012f54f04ad61e5b1b6d02bf96bdeab",
|
| 947 |
+
sha_win = "9fb3b945b7bd56e34d17ec04de4cce475f26c49d161aee9d9c0b8b1434591f88",
|
| 948 |
+
),
|
| 949 |
+
}
|
bazel/test_external/.bazelrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
build --incompatible_enable_cc_toolchain_resolution
|
bazel/test_external/.gitignore
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
bazel-bin
|
| 2 |
+
bazel-out
|
| 3 |
+
bazel-test_external
|
| 4 |
+
bazel-testlogs
|
bazel/test_external/BUILD
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
load("@emsdk//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary")
|
| 2 |
+
load("@rules_cc//cc:defs.bzl", "cc_binary")
|
| 3 |
+
|
| 4 |
+
cc_binary(
|
| 5 |
+
name = "hello-world",
|
| 6 |
+
srcs = ["hello-world.cc"],
|
| 7 |
+
)
|
| 8 |
+
|
| 9 |
+
wasm_cc_binary(
|
| 10 |
+
name = "hello-world-wasm",
|
| 11 |
+
cc_target = ":hello-world",
|
| 12 |
+
outputs = [
|
| 13 |
+
"hello-world.js",
|
| 14 |
+
"hello-world.wasm",
|
| 15 |
+
],
|
| 16 |
+
)
|
| 17 |
+
|
| 18 |
+
BASE_LINKOPTS = [
|
| 19 |
+
"--bind", # Enable embind
|
| 20 |
+
"-sMODULARIZE",
|
| 21 |
+
"--pre-js",
|
| 22 |
+
"hello-embind-interface.js",
|
| 23 |
+
]
|
| 24 |
+
|
| 25 |
+
RELEASE_OPTS = [
|
| 26 |
+
"--closure=1", # Run the closure compiler
|
| 27 |
+
# Tell closure about the externs file, so as not to minify our JS public API.
|
| 28 |
+
"--closure-args=--externs=$(location hello-embind-externs.js)",
|
| 29 |
+
]
|
| 30 |
+
|
| 31 |
+
DEBUG_OPTS = [
|
| 32 |
+
"--closure=0", # Do not use closure
|
| 33 |
+
]
|
| 34 |
+
|
| 35 |
+
config_setting(
|
| 36 |
+
name = "release_opts",
|
| 37 |
+
values = {"compilation_mode": "opt"},
|
| 38 |
+
)
|
| 39 |
+
|
| 40 |
+
config_setting(
|
| 41 |
+
name = "debug_opts",
|
| 42 |
+
values = {"compilation_mode": "dbg"},
|
| 43 |
+
)
|
| 44 |
+
|
| 45 |
+
cc_binary(
|
| 46 |
+
name = "hello-embind",
|
| 47 |
+
srcs = ["hello-embind.cc"],
|
| 48 |
+
additional_linker_inputs = [
|
| 49 |
+
"hello-embind-externs.js",
|
| 50 |
+
"hello-embind-interface.js",
|
| 51 |
+
],
|
| 52 |
+
features = ["emcc_debug_link"],
|
| 53 |
+
linkopts = select({
|
| 54 |
+
":debug_opts": BASE_LINKOPTS + DEBUG_OPTS,
|
| 55 |
+
":release_opts": BASE_LINKOPTS + RELEASE_OPTS,
|
| 56 |
+
"//conditions:default": BASE_LINKOPTS + RELEASE_OPTS,
|
| 57 |
+
}),
|
| 58 |
+
# This target won't build successfully on its own because of missing emscripten
|
| 59 |
+
# headers etc. Therefore, we hide it from wildcards.
|
| 60 |
+
tags = ["manual"],
|
| 61 |
+
)
|
| 62 |
+
|
| 63 |
+
wasm_cc_binary(
|
| 64 |
+
name = "hello-embind-wasm",
|
| 65 |
+
cc_target = ":hello-embind",
|
| 66 |
+
)
|
bazel/test_external/MODULE.bazel
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
bazel_dep(name = "rules_cc", version = "0.2.16")
|
| 2 |
+
bazel_dep(name = "emsdk")
|
| 3 |
+
local_path_override(
|
| 4 |
+
module_name = "emsdk",
|
| 5 |
+
path = "..",
|
| 6 |
+
)
|
bazel/test_external/MODULE.bazel.lock
ADDED
|
@@ -0,0 +1,902 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"lockFileVersion": 13,
|
| 3 |
+
"registryFileHashes": {
|
| 4 |
+
"https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497",
|
| 5 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2",
|
| 6 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589",
|
| 7 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0",
|
| 8 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb",
|
| 9 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16",
|
| 10 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915",
|
| 11 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed",
|
| 12 |
+
"https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da",
|
| 13 |
+
"https://bcr.bazel.build/modules/apple_support/1.23.1/MODULE.bazel": "53763fed456a968cf919b3240427cf3a9d5481ec5466abc9d5dc51bc70087442",
|
| 14 |
+
"https://bcr.bazel.build/modules/apple_support/1.23.1/source.json": "d888b44312eb0ad2c21a91d026753f330caa48a25c9b2102fae75eb2b0dcfdd2",
|
| 15 |
+
"https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f",
|
| 16 |
+
"https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.2/MODULE.bazel": "30dfabbfae0139b1f0036e01c201dd4c0167da3017f0b7ef3820d78e07622989",
|
| 17 |
+
"https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.2/source.json": "89d8e5d7088ae33972733099b756dae71e1647ae684ab50b26adfa853c506d01",
|
| 18 |
+
"https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838",
|
| 19 |
+
"https://bcr.bazel.build/modules/aspect_rules_js/2.9.2/MODULE.bazel": "93fd5b85e6e912fb0712cbab453c43271d4ea33a093f84fd587638fbc9f8c145",
|
| 20 |
+
"https://bcr.bazel.build/modules/aspect_rules_js/2.9.2/source.json": "4bff7c03ab387b60deb15649ba575688e62f2a71a7544cbc7a660b19ec473808",
|
| 21 |
+
"https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183",
|
| 22 |
+
"https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348",
|
| 23 |
+
"https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd",
|
| 24 |
+
"https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8",
|
| 25 |
+
"https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d",
|
| 26 |
+
"https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d",
|
| 27 |
+
"https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a",
|
| 28 |
+
"https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58",
|
| 29 |
+
"https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b",
|
| 30 |
+
"https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65",
|
| 31 |
+
"https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d",
|
| 32 |
+
"https://bcr.bazel.build/modules/bazel_features/1.39.0/MODULE.bazel": "28739425c1fc283c91931619749c832b555e60bcd1010b40d8441ce0a5cf726d",
|
| 33 |
+
"https://bcr.bazel.build/modules/bazel_features/1.39.0/source.json": "f63cbeb4c602098484d57001e5a07d31cb02bbccde9b5e2c9bf0b29d05283e93",
|
| 34 |
+
"https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7",
|
| 35 |
+
"https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b",
|
| 36 |
+
"https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d",
|
| 37 |
+
"https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751",
|
| 38 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8",
|
| 39 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e",
|
| 40 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686",
|
| 41 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a",
|
| 42 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5",
|
| 43 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d",
|
| 44 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651",
|
| 45 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138",
|
| 46 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917",
|
| 47 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d",
|
| 48 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b",
|
| 49 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6",
|
| 50 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67",
|
| 51 |
+
"https://bcr.bazel.build/modules/bazel_skylib/1.8.2/source.json": "34a3c8bcf233b835eb74be9d628899bb32999d3e0eadef1947a0a562a2b16ffb",
|
| 52 |
+
"https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84",
|
| 53 |
+
"https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8",
|
| 54 |
+
"https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb",
|
| 55 |
+
"https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4",
|
| 56 |
+
"https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6",
|
| 57 |
+
"https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4",
|
| 58 |
+
"https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f",
|
| 59 |
+
"https://bcr.bazel.build/modules/jq.bzl/0.1.0/MODULE.bazel": "2ce69b1af49952cd4121a9c3055faa679e748ce774c7f1fda9657f936cae902f",
|
| 60 |
+
"https://bcr.bazel.build/modules/jq.bzl/0.1.0/source.json": "746bf13cac0860f091df5e4911d0c593971cd8796b5ad4e809b2f8e133eee3d5",
|
| 61 |
+
"https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075",
|
| 62 |
+
"https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d",
|
| 63 |
+
"https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902",
|
| 64 |
+
"https://bcr.bazel.build/modules/package_metadata/0.0.2/MODULE.bazel": "fb8d25550742674d63d7b250063d4580ca530499f045d70748b1b142081ebb92",
|
| 65 |
+
"https://bcr.bazel.build/modules/package_metadata/0.0.2/source.json": "e53a759a72488d2c0576f57491ef2da0cf4aab05ac0997314012495935531b73",
|
| 66 |
+
"https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5",
|
| 67 |
+
"https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f",
|
| 68 |
+
"https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee",
|
| 69 |
+
"https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37",
|
| 70 |
+
"https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615",
|
| 71 |
+
"https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814",
|
| 72 |
+
"https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d",
|
| 73 |
+
"https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc",
|
| 74 |
+
"https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580",
|
| 75 |
+
"https://bcr.bazel.build/modules/platforms/1.0.0/source.json": "f4ff1fd412e0246fd38c82328eb209130ead81d62dcd5a9e40910f867f733d96",
|
| 76 |
+
"https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7",
|
| 77 |
+
"https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c",
|
| 78 |
+
"https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df",
|
| 79 |
+
"https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92",
|
| 80 |
+
"https://bcr.bazel.build/modules/protobuf/29.0-rc3/source.json": "c16a6488fb279ef578da7098e605082d72ed85fc8d843eaae81e7d27d0f4625d",
|
| 81 |
+
"https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0",
|
| 82 |
+
"https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858",
|
| 83 |
+
"https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e",
|
| 84 |
+
"https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022",
|
| 85 |
+
"https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206",
|
| 86 |
+
"https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4",
|
| 87 |
+
"https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8",
|
| 88 |
+
"https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e",
|
| 89 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647",
|
| 90 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002",
|
| 91 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.11/MODULE.bazel": "9f249c5624a4788067b96b8b896be10c7e8b4375dc46f6d8e1e51100113e0992",
|
| 92 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191",
|
| 93 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc",
|
| 94 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87",
|
| 95 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c",
|
| 96 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f",
|
| 97 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e",
|
| 98 |
+
"https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5",
|
| 99 |
+
"https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8",
|
| 100 |
+
"https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4",
|
| 101 |
+
"https://bcr.bazel.build/modules/rules_cc/0.2.16/source.json": "d03d5cde49376d87e14ec14b666c56075e5e3926930327fd5d0484a1ff2ac1cc",
|
| 102 |
+
"https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6",
|
| 103 |
+
"https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8",
|
| 104 |
+
"https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e",
|
| 105 |
+
"https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74",
|
| 106 |
+
"https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86",
|
| 107 |
+
"https://bcr.bazel.build/modules/rules_java/6.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963",
|
| 108 |
+
"https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31",
|
| 109 |
+
"https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a",
|
| 110 |
+
"https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6",
|
| 111 |
+
"https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab",
|
| 112 |
+
"https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe",
|
| 113 |
+
"https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1",
|
| 114 |
+
"https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017",
|
| 115 |
+
"https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939",
|
| 116 |
+
"https://bcr.bazel.build/modules/rules_java/8.5.1/source.json": "db1a77d81b059e0f84985db67a22f3f579a529a86b7997605be3d214a0abe38e",
|
| 117 |
+
"https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7",
|
| 118 |
+
"https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909",
|
| 119 |
+
"https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036",
|
| 120 |
+
"https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0",
|
| 121 |
+
"https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197",
|
| 122 |
+
"https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3",
|
| 123 |
+
"https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5",
|
| 124 |
+
"https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0",
|
| 125 |
+
"https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d",
|
| 126 |
+
"https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c",
|
| 127 |
+
"https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb",
|
| 128 |
+
"https://bcr.bazel.build/modules/rules_nodejs/6.3.3/MODULE.bazel": "b66eadebd10f1f1b25f52f95ab5213a57e82c37c3f656fcd9a57ad04d2264ce7",
|
| 129 |
+
"https://bcr.bazel.build/modules/rules_nodejs/6.7.3/MODULE.bazel": "c22a48b2a0dbf05a9dc5f83837bbc24c226c1f6e618de3c3a610044c9f336056",
|
| 130 |
+
"https://bcr.bazel.build/modules/rules_nodejs/6.7.3/source.json": "a3f966f4415a8a6545e560ee5449eac95cc633f96429d08e87c87775c72f5e09",
|
| 131 |
+
"https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc",
|
| 132 |
+
"https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff",
|
| 133 |
+
"https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a",
|
| 134 |
+
"https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06",
|
| 135 |
+
"https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7",
|
| 136 |
+
"https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73",
|
| 137 |
+
"https://bcr.bazel.build/modules/rules_proto/6.0.2/source.json": "17a2e195f56cb28d6bbf763e49973d13890487c6945311ed141e196fb660426d",
|
| 138 |
+
"https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f",
|
| 139 |
+
"https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7",
|
| 140 |
+
"https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300",
|
| 141 |
+
"https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382",
|
| 142 |
+
"https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed",
|
| 143 |
+
"https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58",
|
| 144 |
+
"https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c",
|
| 145 |
+
"https://bcr.bazel.build/modules/rules_python/1.8.3/MODULE.bazel": "f343e159b59701334be3914416b9f1b72845801ba47920fcb288af4ce8c5cce3",
|
| 146 |
+
"https://bcr.bazel.build/modules/rules_python/1.8.3/source.json": "e5439f308e3c6f79f318a0f87108db46fc575be89370c3dfb3f7e0eaa571a3f8",
|
| 147 |
+
"https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c",
|
| 148 |
+
"https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592",
|
| 149 |
+
"https://bcr.bazel.build/modules/rules_shell/0.4.1/source.json": "4757bd277fe1567763991c4425b483477bb82e35e777a56fd846eb5cceda324a",
|
| 150 |
+
"https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8",
|
| 151 |
+
"https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c",
|
| 152 |
+
"https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd",
|
| 153 |
+
"https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c",
|
| 154 |
+
"https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5",
|
| 155 |
+
"https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216",
|
| 156 |
+
"https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468",
|
| 157 |
+
"https://bcr.bazel.build/modules/tar.bzl/0.2.1/source.json": "600ac6ff61744667a439e7b814ae59c1f29632c3984fccf8000c64c9db8d7bb6",
|
| 158 |
+
"https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
|
| 159 |
+
"https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072",
|
| 160 |
+
"https://bcr.bazel.build/modules/yq.bzl/0.3.2/MODULE.bazel": "0384efa70e8033d842ea73aa4b7199fa099709e236a7264345c03937166670b6",
|
| 161 |
+
"https://bcr.bazel.build/modules/yq.bzl/0.3.2/source.json": "c4ec3e192477e154f08769e29d69e8fd36e8a4f0f623997f3e1f6f7d328f7d7d",
|
| 162 |
+
"https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0",
|
| 163 |
+
"https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27",
|
| 164 |
+
"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79",
|
| 165 |
+
"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d",
|
| 166 |
+
"https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198"
|
| 167 |
+
},
|
| 168 |
+
"selectedYankedVersions": {},
|
| 169 |
+
"moduleExtensions": {
|
| 170 |
+
"@@emsdk~//:emscripten_cache.bzl%emscripten_cache": {
|
| 171 |
+
"general": {
|
| 172 |
+
"bzlTransitiveDigest": "uqDvXmpTNqW4+ie/Fk+xC3TrFrKvL+9hNtoP51Kt2oo=",
|
| 173 |
+
"usagesDigest": "jV72lfl76C0OC79x7zJCuHL9MQ48s2xwbFo4eE4mv+w=",
|
| 174 |
+
"recordedFileInputs": {},
|
| 175 |
+
"recordedDirentsInputs": {},
|
| 176 |
+
"envVariables": {},
|
| 177 |
+
"generatedRepoSpecs": {
|
| 178 |
+
"emscripten_cache": {
|
| 179 |
+
"bzlFile": "@@emsdk~//:emscripten_cache.bzl",
|
| 180 |
+
"ruleClassName": "_emscripten_cache_repository",
|
| 181 |
+
"attributes": {
|
| 182 |
+
"configuration": [],
|
| 183 |
+
"targets": []
|
| 184 |
+
}
|
| 185 |
+
}
|
| 186 |
+
},
|
| 187 |
+
"recordedRepoMappingEntries": []
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"@@emsdk~//:emscripten_deps.bzl%emscripten_deps": {
|
| 191 |
+
"general": {
|
| 192 |
+
"bzlTransitiveDigest": "l13dpT30uo2JkUyTZcaXwreRsEt2lTQVOStOPWoZeaI=",
|
| 193 |
+
"usagesDigest": "JNMjHXCqUsMLiBJnH4xCE/8Hjcsv9bkczErK6IcoW60=",
|
| 194 |
+
"recordedFileInputs": {},
|
| 195 |
+
"recordedDirentsInputs": {},
|
| 196 |
+
"envVariables": {},
|
| 197 |
+
"generatedRepoSpecs": {
|
| 198 |
+
"emscripten_bin_linux": {
|
| 199 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 200 |
+
"ruleClassName": "http_archive",
|
| 201 |
+
"attributes": {
|
| 202 |
+
"build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
|
| 203 |
+
"sha256": "ba97bdf3737d19f70af390223eb6262013b89206202779b6a8d57568b3241a59",
|
| 204 |
+
"strip_prefix": "install",
|
| 205 |
+
"type": "tar.xz",
|
| 206 |
+
"url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/e44d3cc557d78155966478aa2bd8dec657609619/wasm-binaries.tar.xz"
|
| 207 |
+
}
|
| 208 |
+
},
|
| 209 |
+
"emscripten_bin_linux_arm64": {
|
| 210 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 211 |
+
"ruleClassName": "http_archive",
|
| 212 |
+
"attributes": {
|
| 213 |
+
"build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
|
| 214 |
+
"sha256": "d3e0a648d1d8a33908e8f1d0878b62ec10f3714c13045f29c720e3936a1c411c",
|
| 215 |
+
"strip_prefix": "install",
|
| 216 |
+
"type": "tar.xz",
|
| 217 |
+
"url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/e44d3cc557d78155966478aa2bd8dec657609619/wasm-binaries-arm64.tar.xz"
|
| 218 |
+
}
|
| 219 |
+
},
|
| 220 |
+
"emscripten_bin_mac": {
|
| 221 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 222 |
+
"ruleClassName": "http_archive",
|
| 223 |
+
"attributes": {
|
| 224 |
+
"build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
|
| 225 |
+
"sha256": "5020626bc87d3a9634bfa63fda05aa44f74144a849453c9cf1f014d9fdc63a5d",
|
| 226 |
+
"strip_prefix": "install",
|
| 227 |
+
"type": "tar.xz",
|
| 228 |
+
"url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/e44d3cc557d78155966478aa2bd8dec657609619/wasm-binaries.tar.xz"
|
| 229 |
+
}
|
| 230 |
+
},
|
| 231 |
+
"emscripten_bin_mac_arm64": {
|
| 232 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 233 |
+
"ruleClassName": "http_archive",
|
| 234 |
+
"attributes": {
|
| 235 |
+
"build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
|
| 236 |
+
"sha256": "7172745de73be538e86680ae04856f8608370c971f5f21bb5cf1d6331c83ef6a",
|
| 237 |
+
"strip_prefix": "install",
|
| 238 |
+
"type": "tar.xz",
|
| 239 |
+
"url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/e44d3cc557d78155966478aa2bd8dec657609619/wasm-binaries-arm64.tar.xz"
|
| 240 |
+
}
|
| 241 |
+
},
|
| 242 |
+
"emscripten_bin_win": {
|
| 243 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 244 |
+
"ruleClassName": "http_archive",
|
| 245 |
+
"attributes": {
|
| 246 |
+
"build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang.exe\",\n \"bin/clang++.exe\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang.exe\",\n \"bin/llvm-ar.exe\",\n \"bin/llvm-dwarfdump.exe\",\n \"bin/llvm-nm.exe\",\n \"bin/llvm-objcopy.exe\",\n \"bin/wasm-ctor-eval.exe\",\n \"bin/wasm-emscripten-finalize.exe\",\n \"bin/wasm-ld.exe\",\n \"bin/wasm-metadce.exe\",\n \"bin/wasm-opt.exe\",\n \"bin/wasm-split.exe\",\n \"bin/wasm2js.exe\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar.exe\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
|
| 247 |
+
"sha256": "660fcee6fff5042ca4b535f6100319303be399ca86c393266da09e709944915b",
|
| 248 |
+
"strip_prefix": "install",
|
| 249 |
+
"type": "zip",
|
| 250 |
+
"url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/win/e44d3cc557d78155966478aa2bd8dec657609619/wasm-binaries.zip"
|
| 251 |
+
}
|
| 252 |
+
}
|
| 253 |
+
},
|
| 254 |
+
"recordedRepoMappingEntries": [
|
| 255 |
+
[
|
| 256 |
+
"emsdk~",
|
| 257 |
+
"bazel_tools",
|
| 258 |
+
"bazel_tools"
|
| 259 |
+
],
|
| 260 |
+
[
|
| 261 |
+
"emsdk~",
|
| 262 |
+
"rules_cc",
|
| 263 |
+
"rules_cc~"
|
| 264 |
+
],
|
| 265 |
+
[
|
| 266 |
+
"rules_cc~",
|
| 267 |
+
"bazel_tools",
|
| 268 |
+
"bazel_tools"
|
| 269 |
+
],
|
| 270 |
+
[
|
| 271 |
+
"rules_cc~",
|
| 272 |
+
"cc_compatibility_proxy",
|
| 273 |
+
"rules_cc~~compatibility_proxy~cc_compatibility_proxy"
|
| 274 |
+
],
|
| 275 |
+
[
|
| 276 |
+
"rules_cc~",
|
| 277 |
+
"rules_cc",
|
| 278 |
+
"rules_cc~"
|
| 279 |
+
],
|
| 280 |
+
[
|
| 281 |
+
"rules_cc~~compatibility_proxy~cc_compatibility_proxy",
|
| 282 |
+
"rules_cc",
|
| 283 |
+
"rules_cc~"
|
| 284 |
+
]
|
| 285 |
+
]
|
| 286 |
+
}
|
| 287 |
+
},
|
| 288 |
+
"@@rules_java~//java:rules_java_deps.bzl%compatibility_proxy": {
|
| 289 |
+
"general": {
|
| 290 |
+
"bzlTransitiveDigest": "C4xqrMy1wN4iuTN6Z2eCm94S5XingHhD6uwrIXvCxVI=",
|
| 291 |
+
"usagesDigest": "pwHZ+26iLgQdwvdZeA5wnAjKnNI3y6XO2VbhOTeo5h8=",
|
| 292 |
+
"recordedFileInputs": {},
|
| 293 |
+
"recordedDirentsInputs": {},
|
| 294 |
+
"envVariables": {},
|
| 295 |
+
"generatedRepoSpecs": {
|
| 296 |
+
"compatibility_proxy": {
|
| 297 |
+
"bzlFile": "@@rules_java~//java:rules_java_deps.bzl",
|
| 298 |
+
"ruleClassName": "_compatibility_proxy_repo_rule",
|
| 299 |
+
"attributes": {}
|
| 300 |
+
}
|
| 301 |
+
},
|
| 302 |
+
"recordedRepoMappingEntries": [
|
| 303 |
+
[
|
| 304 |
+
"rules_java~",
|
| 305 |
+
"bazel_tools",
|
| 306 |
+
"bazel_tools"
|
| 307 |
+
]
|
| 308 |
+
]
|
| 309 |
+
}
|
| 310 |
+
},
|
| 311 |
+
"@@rules_kotlin~//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": {
|
| 312 |
+
"general": {
|
| 313 |
+
"bzlTransitiveDigest": "eecmTsmdIQveoA97hPtH3/Ej/kugbdCI24bhXIXaly8=",
|
| 314 |
+
"usagesDigest": "aJF6fLy82rR95Ff5CZPAqxNoFgOMLMN5ImfBS0nhnkg=",
|
| 315 |
+
"recordedFileInputs": {},
|
| 316 |
+
"recordedDirentsInputs": {},
|
| 317 |
+
"envVariables": {},
|
| 318 |
+
"generatedRepoSpecs": {
|
| 319 |
+
"com_github_jetbrains_kotlin_git": {
|
| 320 |
+
"bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:compiler.bzl",
|
| 321 |
+
"ruleClassName": "kotlin_compiler_git_repository",
|
| 322 |
+
"attributes": {
|
| 323 |
+
"urls": [
|
| 324 |
+
"https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip"
|
| 325 |
+
],
|
| 326 |
+
"sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88"
|
| 327 |
+
}
|
| 328 |
+
},
|
| 329 |
+
"com_github_jetbrains_kotlin": {
|
| 330 |
+
"bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:compiler.bzl",
|
| 331 |
+
"ruleClassName": "kotlin_capabilities_repository",
|
| 332 |
+
"attributes": {
|
| 333 |
+
"git_repository_name": "com_github_jetbrains_kotlin_git",
|
| 334 |
+
"compiler_version": "1.9.23"
|
| 335 |
+
}
|
| 336 |
+
},
|
| 337 |
+
"com_github_google_ksp": {
|
| 338 |
+
"bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:ksp.bzl",
|
| 339 |
+
"ruleClassName": "ksp_compiler_plugin_repository",
|
| 340 |
+
"attributes": {
|
| 341 |
+
"urls": [
|
| 342 |
+
"https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip"
|
| 343 |
+
],
|
| 344 |
+
"sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d",
|
| 345 |
+
"strip_version": "1.9.23-1.0.20"
|
| 346 |
+
}
|
| 347 |
+
},
|
| 348 |
+
"com_github_pinterest_ktlint": {
|
| 349 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 350 |
+
"ruleClassName": "http_file",
|
| 351 |
+
"attributes": {
|
| 352 |
+
"sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985",
|
| 353 |
+
"urls": [
|
| 354 |
+
"https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint"
|
| 355 |
+
],
|
| 356 |
+
"executable": true
|
| 357 |
+
}
|
| 358 |
+
},
|
| 359 |
+
"rules_android": {
|
| 360 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 361 |
+
"ruleClassName": "http_archive",
|
| 362 |
+
"attributes": {
|
| 363 |
+
"sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806",
|
| 364 |
+
"strip_prefix": "rules_android-0.1.1",
|
| 365 |
+
"urls": [
|
| 366 |
+
"https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"
|
| 367 |
+
]
|
| 368 |
+
}
|
| 369 |
+
}
|
| 370 |
+
},
|
| 371 |
+
"recordedRepoMappingEntries": [
|
| 372 |
+
[
|
| 373 |
+
"rules_kotlin~",
|
| 374 |
+
"bazel_tools",
|
| 375 |
+
"bazel_tools"
|
| 376 |
+
]
|
| 377 |
+
]
|
| 378 |
+
}
|
| 379 |
+
},
|
| 380 |
+
"@@rules_nodejs~//nodejs:extensions.bzl%node": {
|
| 381 |
+
"general": {
|
| 382 |
+
"bzlTransitiveDigest": "4pUxCNc22K4I+6+4Nxu52Hur12tFRfa1JMsN5mdDv60=",
|
| 383 |
+
"usagesDigest": "MjIIdA2dWsEfaskRbGc/REWUeha5SGkXZt/Zx7Hfr50=",
|
| 384 |
+
"recordedFileInputs": {},
|
| 385 |
+
"recordedDirentsInputs": {},
|
| 386 |
+
"envVariables": {},
|
| 387 |
+
"generatedRepoSpecs": {
|
| 388 |
+
"nodejs_linux_amd64": {
|
| 389 |
+
"bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
|
| 390 |
+
"ruleClassName": "_nodejs_repositories",
|
| 391 |
+
"attributes": {
|
| 392 |
+
"node_download_auth": {},
|
| 393 |
+
"node_repositories": {},
|
| 394 |
+
"node_urls": [
|
| 395 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 396 |
+
],
|
| 397 |
+
"node_version": "20.18.0",
|
| 398 |
+
"include_headers": false,
|
| 399 |
+
"platform": "linux_amd64"
|
| 400 |
+
}
|
| 401 |
+
},
|
| 402 |
+
"nodejs_linux_arm64": {
|
| 403 |
+
"bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
|
| 404 |
+
"ruleClassName": "_nodejs_repositories",
|
| 405 |
+
"attributes": {
|
| 406 |
+
"node_download_auth": {},
|
| 407 |
+
"node_repositories": {},
|
| 408 |
+
"node_urls": [
|
| 409 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 410 |
+
],
|
| 411 |
+
"node_version": "20.18.0",
|
| 412 |
+
"include_headers": false,
|
| 413 |
+
"platform": "linux_arm64"
|
| 414 |
+
}
|
| 415 |
+
},
|
| 416 |
+
"nodejs_linux_s390x": {
|
| 417 |
+
"bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
|
| 418 |
+
"ruleClassName": "_nodejs_repositories",
|
| 419 |
+
"attributes": {
|
| 420 |
+
"node_download_auth": {},
|
| 421 |
+
"node_repositories": {},
|
| 422 |
+
"node_urls": [
|
| 423 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 424 |
+
],
|
| 425 |
+
"node_version": "20.18.0",
|
| 426 |
+
"include_headers": false,
|
| 427 |
+
"platform": "linux_s390x"
|
| 428 |
+
}
|
| 429 |
+
},
|
| 430 |
+
"nodejs_linux_ppc64le": {
|
| 431 |
+
"bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
|
| 432 |
+
"ruleClassName": "_nodejs_repositories",
|
| 433 |
+
"attributes": {
|
| 434 |
+
"node_download_auth": {},
|
| 435 |
+
"node_repositories": {},
|
| 436 |
+
"node_urls": [
|
| 437 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 438 |
+
],
|
| 439 |
+
"node_version": "20.18.0",
|
| 440 |
+
"include_headers": false,
|
| 441 |
+
"platform": "linux_ppc64le"
|
| 442 |
+
}
|
| 443 |
+
},
|
| 444 |
+
"nodejs_darwin_amd64": {
|
| 445 |
+
"bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
|
| 446 |
+
"ruleClassName": "_nodejs_repositories",
|
| 447 |
+
"attributes": {
|
| 448 |
+
"node_download_auth": {},
|
| 449 |
+
"node_repositories": {},
|
| 450 |
+
"node_urls": [
|
| 451 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 452 |
+
],
|
| 453 |
+
"node_version": "20.18.0",
|
| 454 |
+
"include_headers": false,
|
| 455 |
+
"platform": "darwin_amd64"
|
| 456 |
+
}
|
| 457 |
+
},
|
| 458 |
+
"nodejs_darwin_arm64": {
|
| 459 |
+
"bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
|
| 460 |
+
"ruleClassName": "_nodejs_repositories",
|
| 461 |
+
"attributes": {
|
| 462 |
+
"node_download_auth": {},
|
| 463 |
+
"node_repositories": {},
|
| 464 |
+
"node_urls": [
|
| 465 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 466 |
+
],
|
| 467 |
+
"node_version": "20.18.0",
|
| 468 |
+
"include_headers": false,
|
| 469 |
+
"platform": "darwin_arm64"
|
| 470 |
+
}
|
| 471 |
+
},
|
| 472 |
+
"nodejs_windows_amd64": {
|
| 473 |
+
"bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
|
| 474 |
+
"ruleClassName": "_nodejs_repositories",
|
| 475 |
+
"attributes": {
|
| 476 |
+
"node_download_auth": {},
|
| 477 |
+
"node_repositories": {},
|
| 478 |
+
"node_urls": [
|
| 479 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 480 |
+
],
|
| 481 |
+
"node_version": "20.18.0",
|
| 482 |
+
"include_headers": false,
|
| 483 |
+
"platform": "windows_amd64"
|
| 484 |
+
}
|
| 485 |
+
},
|
| 486 |
+
"nodejs_windows_arm64": {
|
| 487 |
+
"bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
|
| 488 |
+
"ruleClassName": "_nodejs_repositories",
|
| 489 |
+
"attributes": {
|
| 490 |
+
"node_download_auth": {},
|
| 491 |
+
"node_repositories": {},
|
| 492 |
+
"node_urls": [
|
| 493 |
+
"https://nodejs.org/dist/v{version}/{filename}"
|
| 494 |
+
],
|
| 495 |
+
"node_version": "20.18.0",
|
| 496 |
+
"include_headers": false,
|
| 497 |
+
"platform": "windows_arm64"
|
| 498 |
+
}
|
| 499 |
+
},
|
| 500 |
+
"nodejs": {
|
| 501 |
+
"bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl",
|
| 502 |
+
"ruleClassName": "nodejs_repo_host_os_alias",
|
| 503 |
+
"attributes": {
|
| 504 |
+
"user_node_repository_name": "nodejs"
|
| 505 |
+
}
|
| 506 |
+
},
|
| 507 |
+
"nodejs_host": {
|
| 508 |
+
"bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl",
|
| 509 |
+
"ruleClassName": "nodejs_repo_host_os_alias",
|
| 510 |
+
"attributes": {
|
| 511 |
+
"user_node_repository_name": "nodejs"
|
| 512 |
+
}
|
| 513 |
+
},
|
| 514 |
+
"nodejs_toolchains": {
|
| 515 |
+
"bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_toolchains_repo.bzl",
|
| 516 |
+
"ruleClassName": "nodejs_toolchains_repo",
|
| 517 |
+
"attributes": {
|
| 518 |
+
"user_node_repository_name": "nodejs"
|
| 519 |
+
}
|
| 520 |
+
}
|
| 521 |
+
},
|
| 522 |
+
"recordedRepoMappingEntries": []
|
| 523 |
+
}
|
| 524 |
+
},
|
| 525 |
+
"@@rules_python~//python/extensions:config.bzl%config": {
|
| 526 |
+
"general": {
|
| 527 |
+
"bzlTransitiveDigest": "Mr1nEq0gLFUbnMWVlKO2RA7igJa6gHp587zqUUbaUw4=",
|
| 528 |
+
"usagesDigest": "KwjULY4JAZrnEVuoT1YM1scfJLyUyQhw5LzrdYkShes=",
|
| 529 |
+
"recordedFileInputs": {},
|
| 530 |
+
"recordedDirentsInputs": {},
|
| 531 |
+
"envVariables": {},
|
| 532 |
+
"generatedRepoSpecs": {
|
| 533 |
+
"rules_python_internal": {
|
| 534 |
+
"bzlFile": "@@rules_python~//python/private:internal_config_repo.bzl",
|
| 535 |
+
"ruleClassName": "internal_config_repo",
|
| 536 |
+
"attributes": {
|
| 537 |
+
"transition_setting_generators": {},
|
| 538 |
+
"transition_settings": []
|
| 539 |
+
}
|
| 540 |
+
},
|
| 541 |
+
"pypi__build": {
|
| 542 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 543 |
+
"ruleClassName": "http_archive",
|
| 544 |
+
"attributes": {
|
| 545 |
+
"url": "https://files.pythonhosted.org/packages/e2/03/f3c8ba0a6b6e30d7d18c40faab90807c9bb5e9a1e3b2fe2008af624a9c97/build-1.2.1-py3-none-any.whl",
|
| 546 |
+
"sha256": "75e10f767a433d9a86e50d83f418e83efc18ede923ee5ff7df93b6cb0306c5d4",
|
| 547 |
+
"type": "zip",
|
| 548 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 549 |
+
}
|
| 550 |
+
},
|
| 551 |
+
"pypi__click": {
|
| 552 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 553 |
+
"ruleClassName": "http_archive",
|
| 554 |
+
"attributes": {
|
| 555 |
+
"url": "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl",
|
| 556 |
+
"sha256": "ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28",
|
| 557 |
+
"type": "zip",
|
| 558 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 559 |
+
}
|
| 560 |
+
},
|
| 561 |
+
"pypi__colorama": {
|
| 562 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 563 |
+
"ruleClassName": "http_archive",
|
| 564 |
+
"attributes": {
|
| 565 |
+
"url": "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl",
|
| 566 |
+
"sha256": "4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6",
|
| 567 |
+
"type": "zip",
|
| 568 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 569 |
+
}
|
| 570 |
+
},
|
| 571 |
+
"pypi__importlib_metadata": {
|
| 572 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 573 |
+
"ruleClassName": "http_archive",
|
| 574 |
+
"attributes": {
|
| 575 |
+
"url": "https://files.pythonhosted.org/packages/2d/0a/679461c511447ffaf176567d5c496d1de27cbe34a87df6677d7171b2fbd4/importlib_metadata-7.1.0-py3-none-any.whl",
|
| 576 |
+
"sha256": "30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570",
|
| 577 |
+
"type": "zip",
|
| 578 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 579 |
+
}
|
| 580 |
+
},
|
| 581 |
+
"pypi__installer": {
|
| 582 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 583 |
+
"ruleClassName": "http_archive",
|
| 584 |
+
"attributes": {
|
| 585 |
+
"url": "https://files.pythonhosted.org/packages/e5/ca/1172b6638d52f2d6caa2dd262ec4c811ba59eee96d54a7701930726bce18/installer-0.7.0-py3-none-any.whl",
|
| 586 |
+
"sha256": "05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53",
|
| 587 |
+
"type": "zip",
|
| 588 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 589 |
+
}
|
| 590 |
+
},
|
| 591 |
+
"pypi__more_itertools": {
|
| 592 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 593 |
+
"ruleClassName": "http_archive",
|
| 594 |
+
"attributes": {
|
| 595 |
+
"url": "https://files.pythonhosted.org/packages/50/e2/8e10e465ee3987bb7c9ab69efb91d867d93959095f4807db102d07995d94/more_itertools-10.2.0-py3-none-any.whl",
|
| 596 |
+
"sha256": "686b06abe565edfab151cb8fd385a05651e1fdf8f0a14191e4439283421f8684",
|
| 597 |
+
"type": "zip",
|
| 598 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 599 |
+
}
|
| 600 |
+
},
|
| 601 |
+
"pypi__packaging": {
|
| 602 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 603 |
+
"ruleClassName": "http_archive",
|
| 604 |
+
"attributes": {
|
| 605 |
+
"url": "https://files.pythonhosted.org/packages/49/df/1fceb2f8900f8639e278b056416d49134fb8d84c5942ffaa01ad34782422/packaging-24.0-py3-none-any.whl",
|
| 606 |
+
"sha256": "2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5",
|
| 607 |
+
"type": "zip",
|
| 608 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 609 |
+
}
|
| 610 |
+
},
|
| 611 |
+
"pypi__pep517": {
|
| 612 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 613 |
+
"ruleClassName": "http_archive",
|
| 614 |
+
"attributes": {
|
| 615 |
+
"url": "https://files.pythonhosted.org/packages/25/6e/ca4a5434eb0e502210f591b97537d322546e4833dcb4d470a48c375c5540/pep517-0.13.1-py3-none-any.whl",
|
| 616 |
+
"sha256": "31b206f67165b3536dd577c5c3f1518e8fbaf38cbc57efff8369a392feff1721",
|
| 617 |
+
"type": "zip",
|
| 618 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 619 |
+
}
|
| 620 |
+
},
|
| 621 |
+
"pypi__pip": {
|
| 622 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 623 |
+
"ruleClassName": "http_archive",
|
| 624 |
+
"attributes": {
|
| 625 |
+
"url": "https://files.pythonhosted.org/packages/8a/6a/19e9fe04fca059ccf770861c7d5721ab4c2aebc539889e97c7977528a53b/pip-24.0-py3-none-any.whl",
|
| 626 |
+
"sha256": "ba0d021a166865d2265246961bec0152ff124de910c5cc39f1156ce3fa7c69dc",
|
| 627 |
+
"type": "zip",
|
| 628 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 629 |
+
}
|
| 630 |
+
},
|
| 631 |
+
"pypi__pip_tools": {
|
| 632 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 633 |
+
"ruleClassName": "http_archive",
|
| 634 |
+
"attributes": {
|
| 635 |
+
"url": "https://files.pythonhosted.org/packages/0d/dc/38f4ce065e92c66f058ea7a368a9c5de4e702272b479c0992059f7693941/pip_tools-7.4.1-py3-none-any.whl",
|
| 636 |
+
"sha256": "4c690e5fbae2f21e87843e89c26191f0d9454f362d8acdbd695716493ec8b3a9",
|
| 637 |
+
"type": "zip",
|
| 638 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 639 |
+
}
|
| 640 |
+
},
|
| 641 |
+
"pypi__pyproject_hooks": {
|
| 642 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 643 |
+
"ruleClassName": "http_archive",
|
| 644 |
+
"attributes": {
|
| 645 |
+
"url": "https://files.pythonhosted.org/packages/ae/f3/431b9d5fe7d14af7a32340792ef43b8a714e7726f1d7b69cc4e8e7a3f1d7/pyproject_hooks-1.1.0-py3-none-any.whl",
|
| 646 |
+
"sha256": "7ceeefe9aec63a1064c18d939bdc3adf2d8aa1988a510afec15151578b232aa2",
|
| 647 |
+
"type": "zip",
|
| 648 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 649 |
+
}
|
| 650 |
+
},
|
| 651 |
+
"pypi__setuptools": {
|
| 652 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 653 |
+
"ruleClassName": "http_archive",
|
| 654 |
+
"attributes": {
|
| 655 |
+
"url": "https://files.pythonhosted.org/packages/90/99/158ad0609729111163fc1f674a5a42f2605371a4cf036d0441070e2f7455/setuptools-78.1.1-py3-none-any.whl",
|
| 656 |
+
"sha256": "c3a9c4211ff4c309edb8b8c4f1cbfa7ae324c4ba9f91ff254e3d305b9fd54561",
|
| 657 |
+
"type": "zip",
|
| 658 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 659 |
+
}
|
| 660 |
+
},
|
| 661 |
+
"pypi__tomli": {
|
| 662 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 663 |
+
"ruleClassName": "http_archive",
|
| 664 |
+
"attributes": {
|
| 665 |
+
"url": "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl",
|
| 666 |
+
"sha256": "939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
|
| 667 |
+
"type": "zip",
|
| 668 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 669 |
+
}
|
| 670 |
+
},
|
| 671 |
+
"pypi__wheel": {
|
| 672 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 673 |
+
"ruleClassName": "http_archive",
|
| 674 |
+
"attributes": {
|
| 675 |
+
"url": "https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl",
|
| 676 |
+
"sha256": "55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81",
|
| 677 |
+
"type": "zip",
|
| 678 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 679 |
+
}
|
| 680 |
+
},
|
| 681 |
+
"pypi__zipp": {
|
| 682 |
+
"bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
|
| 683 |
+
"ruleClassName": "http_archive",
|
| 684 |
+
"attributes": {
|
| 685 |
+
"url": "https://files.pythonhosted.org/packages/da/55/a03fd7240714916507e1fcf7ae355bd9d9ed2e6db492595f1a67f61681be/zipp-3.18.2-py3-none-any.whl",
|
| 686 |
+
"sha256": "dce197b859eb796242b0622af1b8beb0a722d52aa2f57133ead08edd5bf5374e",
|
| 687 |
+
"type": "zip",
|
| 688 |
+
"build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n"
|
| 689 |
+
}
|
| 690 |
+
}
|
| 691 |
+
},
|
| 692 |
+
"recordedRepoMappingEntries": [
|
| 693 |
+
[
|
| 694 |
+
"rules_python~",
|
| 695 |
+
"bazel_tools",
|
| 696 |
+
"bazel_tools"
|
| 697 |
+
],
|
| 698 |
+
[
|
| 699 |
+
"rules_python~",
|
| 700 |
+
"pypi__build",
|
| 701 |
+
"rules_python~~config~pypi__build"
|
| 702 |
+
],
|
| 703 |
+
[
|
| 704 |
+
"rules_python~",
|
| 705 |
+
"pypi__click",
|
| 706 |
+
"rules_python~~config~pypi__click"
|
| 707 |
+
],
|
| 708 |
+
[
|
| 709 |
+
"rules_python~",
|
| 710 |
+
"pypi__colorama",
|
| 711 |
+
"rules_python~~config~pypi__colorama"
|
| 712 |
+
],
|
| 713 |
+
[
|
| 714 |
+
"rules_python~",
|
| 715 |
+
"pypi__importlib_metadata",
|
| 716 |
+
"rules_python~~config~pypi__importlib_metadata"
|
| 717 |
+
],
|
| 718 |
+
[
|
| 719 |
+
"rules_python~",
|
| 720 |
+
"pypi__installer",
|
| 721 |
+
"rules_python~~config~pypi__installer"
|
| 722 |
+
],
|
| 723 |
+
[
|
| 724 |
+
"rules_python~",
|
| 725 |
+
"pypi__more_itertools",
|
| 726 |
+
"rules_python~~config~pypi__more_itertools"
|
| 727 |
+
],
|
| 728 |
+
[
|
| 729 |
+
"rules_python~",
|
| 730 |
+
"pypi__packaging",
|
| 731 |
+
"rules_python~~config~pypi__packaging"
|
| 732 |
+
],
|
| 733 |
+
[
|
| 734 |
+
"rules_python~",
|
| 735 |
+
"pypi__pep517",
|
| 736 |
+
"rules_python~~config~pypi__pep517"
|
| 737 |
+
],
|
| 738 |
+
[
|
| 739 |
+
"rules_python~",
|
| 740 |
+
"pypi__pip",
|
| 741 |
+
"rules_python~~config~pypi__pip"
|
| 742 |
+
],
|
| 743 |
+
[
|
| 744 |
+
"rules_python~",
|
| 745 |
+
"pypi__pip_tools",
|
| 746 |
+
"rules_python~~config~pypi__pip_tools"
|
| 747 |
+
],
|
| 748 |
+
[
|
| 749 |
+
"rules_python~",
|
| 750 |
+
"pypi__pyproject_hooks",
|
| 751 |
+
"rules_python~~config~pypi__pyproject_hooks"
|
| 752 |
+
],
|
| 753 |
+
[
|
| 754 |
+
"rules_python~",
|
| 755 |
+
"pypi__setuptools",
|
| 756 |
+
"rules_python~~config~pypi__setuptools"
|
| 757 |
+
],
|
| 758 |
+
[
|
| 759 |
+
"rules_python~",
|
| 760 |
+
"pypi__tomli",
|
| 761 |
+
"rules_python~~config~pypi__tomli"
|
| 762 |
+
],
|
| 763 |
+
[
|
| 764 |
+
"rules_python~",
|
| 765 |
+
"pypi__wheel",
|
| 766 |
+
"rules_python~~config~pypi__wheel"
|
| 767 |
+
],
|
| 768 |
+
[
|
| 769 |
+
"rules_python~",
|
| 770 |
+
"pypi__zipp",
|
| 771 |
+
"rules_python~~config~pypi__zipp"
|
| 772 |
+
]
|
| 773 |
+
]
|
| 774 |
+
}
|
| 775 |
+
},
|
| 776 |
+
"@@rules_python~//python/uv:uv.bzl%uv": {
|
| 777 |
+
"general": {
|
| 778 |
+
"bzlTransitiveDigest": "b2l7eQNeidPDzpdj1+RSuGVmjgZGCpGxl+y2y6Rtpco=",
|
| 779 |
+
"usagesDigest": "fvn6L92mc0TfUt4ABOl23nXkpqvpuUDcR5ofLKp6TcI=",
|
| 780 |
+
"recordedFileInputs": {},
|
| 781 |
+
"recordedDirentsInputs": {},
|
| 782 |
+
"envVariables": {},
|
| 783 |
+
"generatedRepoSpecs": {
|
| 784 |
+
"uv": {
|
| 785 |
+
"bzlFile": "@@rules_python~//python/uv/private:uv_toolchains_repo.bzl",
|
| 786 |
+
"ruleClassName": "uv_toolchains_repo",
|
| 787 |
+
"attributes": {
|
| 788 |
+
"toolchain_type": "'@@rules_python~//python/uv:uv_toolchain_type'",
|
| 789 |
+
"toolchain_names": [
|
| 790 |
+
"none"
|
| 791 |
+
],
|
| 792 |
+
"toolchain_implementations": {
|
| 793 |
+
"none": "'@@rules_python~//python:none'"
|
| 794 |
+
},
|
| 795 |
+
"toolchain_compatible_with": {
|
| 796 |
+
"none": [
|
| 797 |
+
"@platforms//:incompatible"
|
| 798 |
+
]
|
| 799 |
+
},
|
| 800 |
+
"toolchain_target_settings": {}
|
| 801 |
+
}
|
| 802 |
+
}
|
| 803 |
+
},
|
| 804 |
+
"recordedRepoMappingEntries": [
|
| 805 |
+
[
|
| 806 |
+
"rules_python~",
|
| 807 |
+
"bazel_tools",
|
| 808 |
+
"bazel_tools"
|
| 809 |
+
],
|
| 810 |
+
[
|
| 811 |
+
"rules_python~",
|
| 812 |
+
"platforms",
|
| 813 |
+
"platforms"
|
| 814 |
+
]
|
| 815 |
+
]
|
| 816 |
+
}
|
| 817 |
+
},
|
| 818 |
+
"@@yq.bzl~//yq:extensions.bzl%yq": {
|
| 819 |
+
"general": {
|
| 820 |
+
"bzlTransitiveDigest": "61Uz+o5PnlY0jJfPZEUNqsKxnM/UCLeWsn5VVCc8u5Y=",
|
| 821 |
+
"usagesDigest": "bIxL1iOc27/N1kOtSvmFz78f2t5UG/igKD4PiTidq98=",
|
| 822 |
+
"recordedFileInputs": {},
|
| 823 |
+
"recordedDirentsInputs": {},
|
| 824 |
+
"envVariables": {},
|
| 825 |
+
"generatedRepoSpecs": {
|
| 826 |
+
"yq_darwin_amd64": {
|
| 827 |
+
"bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
|
| 828 |
+
"ruleClassName": "yq_platform_repo",
|
| 829 |
+
"attributes": {
|
| 830 |
+
"platform": "darwin_amd64",
|
| 831 |
+
"version": "4.45.1"
|
| 832 |
+
}
|
| 833 |
+
},
|
| 834 |
+
"yq_darwin_arm64": {
|
| 835 |
+
"bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
|
| 836 |
+
"ruleClassName": "yq_platform_repo",
|
| 837 |
+
"attributes": {
|
| 838 |
+
"platform": "darwin_arm64",
|
| 839 |
+
"version": "4.45.1"
|
| 840 |
+
}
|
| 841 |
+
},
|
| 842 |
+
"yq_linux_amd64": {
|
| 843 |
+
"bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
|
| 844 |
+
"ruleClassName": "yq_platform_repo",
|
| 845 |
+
"attributes": {
|
| 846 |
+
"platform": "linux_amd64",
|
| 847 |
+
"version": "4.45.1"
|
| 848 |
+
}
|
| 849 |
+
},
|
| 850 |
+
"yq_linux_arm64": {
|
| 851 |
+
"bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
|
| 852 |
+
"ruleClassName": "yq_platform_repo",
|
| 853 |
+
"attributes": {
|
| 854 |
+
"platform": "linux_arm64",
|
| 855 |
+
"version": "4.45.1"
|
| 856 |
+
}
|
| 857 |
+
},
|
| 858 |
+
"yq_linux_s390x": {
|
| 859 |
+
"bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
|
| 860 |
+
"ruleClassName": "yq_platform_repo",
|
| 861 |
+
"attributes": {
|
| 862 |
+
"platform": "linux_s390x",
|
| 863 |
+
"version": "4.45.1"
|
| 864 |
+
}
|
| 865 |
+
},
|
| 866 |
+
"yq_linux_riscv64": {
|
| 867 |
+
"bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
|
| 868 |
+
"ruleClassName": "yq_platform_repo",
|
| 869 |
+
"attributes": {
|
| 870 |
+
"platform": "linux_riscv64",
|
| 871 |
+
"version": "4.45.1"
|
| 872 |
+
}
|
| 873 |
+
},
|
| 874 |
+
"yq_linux_ppc64le": {
|
| 875 |
+
"bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
|
| 876 |
+
"ruleClassName": "yq_platform_repo",
|
| 877 |
+
"attributes": {
|
| 878 |
+
"platform": "linux_ppc64le",
|
| 879 |
+
"version": "4.45.1"
|
| 880 |
+
}
|
| 881 |
+
},
|
| 882 |
+
"yq_windows_amd64": {
|
| 883 |
+
"bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
|
| 884 |
+
"ruleClassName": "yq_platform_repo",
|
| 885 |
+
"attributes": {
|
| 886 |
+
"platform": "windows_amd64",
|
| 887 |
+
"version": "4.45.1"
|
| 888 |
+
}
|
| 889 |
+
},
|
| 890 |
+
"yq_toolchains": {
|
| 891 |
+
"bzlFile": "@@yq.bzl~//yq/toolchain:toolchain.bzl",
|
| 892 |
+
"ruleClassName": "yq_toolchains_repo",
|
| 893 |
+
"attributes": {
|
| 894 |
+
"user_repository_name": "yq"
|
| 895 |
+
}
|
| 896 |
+
}
|
| 897 |
+
},
|
| 898 |
+
"recordedRepoMappingEntries": []
|
| 899 |
+
}
|
| 900 |
+
}
|
| 901 |
+
}
|
| 902 |
+
}
|
bazel/test_external/hello-embind-externs.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// This file prevents customJSFunctionToTestClosure from being minified by the Closure compiler.
|
| 2 |
+
Module.customJSFunctionToTestClosure = function() {}
|
bazel/test_external/hello-embind-interface.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Module.customJSFunctionToTestClosure = function(firstParam, secondParam) {
|
| 2 |
+
console.log("This function adds two numbers to get", firstParam + secondParam);
|
| 3 |
+
}
|
bazel/test_external/hello-embind.cc
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#include <emscripten/bind.h>
|
| 2 |
+
|
| 3 |
+
using namespace emscripten;
|
| 4 |
+
|
| 5 |
+
class HelloClass {
|
| 6 |
+
public:
|
| 7 |
+
static std::string SayHello(const std::string &name) {
|
| 8 |
+
return "Yo! " + name;
|
| 9 |
+
};
|
| 10 |
+
};
|
| 11 |
+
|
| 12 |
+
EMSCRIPTEN_BINDINGS(Hello) {
|
| 13 |
+
emscripten::class_<HelloClass>("HelloClass")
|
| 14 |
+
.constructor<>()
|
| 15 |
+
.class_function("SayHello", &HelloClass::SayHello);
|
| 16 |
+
}
|
bazel/test_external/hello-world.cc
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#include <iostream>
|
| 2 |
+
|
| 3 |
+
int main(int argc, char** argv) {
|
| 4 |
+
std::cout << "hello world!" << std::endl;
|
| 5 |
+
return 0;
|
| 6 |
+
}
|