1# Copyright 2024 The Pigweed Authors 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4# use this file except in compliance with the License. You may obtain a copy of 5# the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12# License for the specific language governing permissions and limitations under 13# the License. 14 15module( 16 name = "pigweed", 17 version = "0.0.1", 18) 19 20register_execution_platforms("@local_config_platform//:host") 21 22bazel_dep(name = "aspect_bazel_lib", version = "2.8.1") 23bazel_dep(name = "aspect_rules_js", version = "2.1.0") 24bazel_dep(name = "bazel_skylib", version = "1.7.1") 25bazel_dep(name = "boringssl", version = "0.20240913.0") 26bazel_dep(name = "freertos", version = "10.5.1.bcr.2") 27bazel_dep(name = "gazelle", version = "0.40.0", repo_name = "bazel_gazelle") 28bazel_dep(name = "googletest", version = "1.15.0", repo_name = "com_google_googletest") 29bazel_dep(name = "nanopb", version = "0.4.9.1", repo_name = "com_github_nanopb_nanopb") 30bazel_dep(name = "pico-sdk", version = "2.1.1-develop.bcr.20250113-4b6e6475") 31bazel_dep(name = "picotool", version = "2.1.0") 32bazel_dep(name = "platforms", version = "0.0.10") 33 34# LINT.IfChange(protobuf) 35bazel_dep(name = "protobuf", version = "28.2", repo_name = "com_google_protobuf") 36# LINT.ThenChange(pw_env_setup/py/pw_env_setup/cipd_setup/pigweed.json,pw_env_setup/py/pw_env_setup/virtualenv_setup/constraint.list:protobuf) 37 38# A transitive dependency requires this. 39bazel_dep(name = "re2", version = "2024-07-02.bcr.1") 40bazel_dep(name = "rules_android", version = "0.1.1") 41bazel_dep(name = "rules_cc", version = "0.0.17") 42bazel_dep(name = "rules_fuzzing", version = "0.5.2") 43bazel_dep(name = "rules_go", version = "0.52.0", repo_name = "io_bazel_rules_go") 44bazel_dep(name = "rules_java", version = "8.6.1") 45bazel_dep(name = "rules_jvm_external", version = "6.6") 46bazel_dep(name = "rules_libusb", version = "0.1.0-rc1") 47bazel_dep(name = "rules_license", version = "1.0.0") 48bazel_dep(name = "rules_nodejs", version = "6.3.0") 49bazel_dep(name = "rules_platform", version = "0.1.0") 50bazel_dep(name = "rules_probe_rs", version = "0.0.2") 51bazel_dep(name = "rules_python", version = "0.40.0") 52bazel_dep(name = "rules_rust", version = "0.56.0") 53 54# LINT.IfChange(emboss) 55bazel_dep(name = "emboss", version = "2024.1017.203246", repo_name = "com_google_emboss") 56# LINT.ThenChange(/pw_package/py/pw_package/packages/emboss.py:emboss) 57 58bazel_dep(name = "hedron_compile_commands", dev_dependency = True) 59bazel_dep(name = "rules_doxygen", version = "2.2.0", dev_dependency = True) 60 61# Repository overrides 62# ==================== 63 64# TODO: https://pwbug.dev/349880767 - Point this back to the upstream repo once 65# this PR is merged. 66archive_override( 67 module_name = "hedron_compile_commands", 68 strip_prefix = "bazel-compile-commands-extractor-163521345aa6366fd1ed801b989b668b5c806f69", 69 urls = ["https://github.com/chadnorvell/bazel-compile-commands-extractor/archive/163521345aa6366fd1ed801b989b668b5c806f69.tar.gz"], 70) 71 72# TODO: https://pwbug.dev/372510795 - A `bazel_dep` on this version propagates 73# to downstream projects, which causes breakages since downstream is still 74# pre-Bazel 8.0.0. When all downstream projects are flipped to Bazel 8.0.0, 75# remove this and update the rules_android bazel_dep requirement. 76single_version_override( 77 module_name = "rules_android", 78 version = "0.6.0", 79) 80 81# TODO: https://pwbug.dev/354268150 - Switch back to a release once this commit 82# makes it into one. Downstream projects generally don't need this commit, it's 83# only required for interop with the Fuchsia SDK. 84git_override( 85 module_name = "googletest", 86 commit = "e54519b09463cec3aea77a1739e02c97ca766da5", 87 remote = "https://github.com/google/googletest.git", 88) 89 90single_version_override( 91 module_name = "rules_rust", 92 patch_strip = 1, 93 patches = [ 94 # Adds prototype functionality for documenting multiple crates in one 95 # HTML output directory. While the approach in this patch may have 96 # issues scaling to giant mono-repos, it is appropriate for embedded 97 # projects and minimally invasive and should be easy to maintain. Once 98 # the `rules_rust` community decides on a way to propperly support this, 99 # we will migrate to that solution. 100 # https://github.com/konkers/rules_rust/tree/wip/rustdoc 101 "//pw_rust/bazel_patches:0002-PROTOTYPE-Add-ability-to-document-multiple-crates-at.patch", 102 103 # Adds more thumbv6m, thumbv8m, and thumbv8m triples 104 # TODO: https://pwbug.dev/392707726 - Upstream below patch 105 "//pw_rust/bazel_patches:0003-Add-thumbv6m-and-more-thumbv7m-and-thumbv8m-triples.patch", 106 107 # Adds ability to specify a subdirectory, relative to the target's BUILD 108 # file, where the rust sources live. Without this `gen_rust_project` 109 # gets the path to those files wrong. 110 # TODO: https://pwbug.dev/3392708481 - Upstream below patch 111 "//pw_rust/bazel_patches:0004-Add-rust_srcs_subdir-to-rust_analyzer_toolchain.patch", 112 113 # rust_analyzer: Support passing a --config option to Bazel 114 # https://github.com/bazelbuild/rules_rust/pull/3254 115 "//pw_rust/bazel_patches:0005-rust_analyzer-Support-passing-a-config-option-to-Baz.patch", 116 ], 117) 118 119# Transitive deps not in BCR 120# ========================== 121http_archive = use_repo_rule( 122 "@bazel_tools//tools/build_defs/repo:http.bzl", 123 "http_archive", 124) 125 126# TODO(b/370523804): Remove this once the following issues are addressed in a 127# released version of rules_fuzzing 128# https://github.com/bazel-contrib/rules_fuzzing/issues/257 129non_module_dependencies = use_extension("@rules_fuzzing//fuzzing/private:extensions.bzl", "non_module_dependencies") 130use_repo( 131 non_module_dependencies, 132 "rules_fuzzing_oss_fuzz", 133) 134 135git_repository = use_repo_rule( 136 "@bazel_tools//tools/build_defs/repo:git.bzl", 137 "git_repository", 138) 139 140git_repository( 141 name = "bazel_clang_tidy", 142 commit = "db677011c7363509a288a9fb3bf0a50830bbf791", 143 remote = "https://github.com/erenon/bazel_clang_tidy.git", 144) 145 146# Configure libusb 147# ================ 148# 149# The rules_libusb lets you configure which actual libusb version to use. 150libusb = use_extension("@rules_libusb//:extensions.bzl", "libusb") 151libusb.source_release(min_version = "1.0.27") 152use_repo(libusb, "libusb") 153 154xcode_sdk_repository = use_repo_rule("//pw_toolchain:xcode.bzl", "xcode_sdk_repository") 155 156xcode_sdk_repository( 157 name = "macos_sysroot", 158 build_file = "//pw_toolchain/host_clang:macos_sysroot.BUILD", 159) 160 161cipd_client_repository = use_repo_rule("//pw_env_setup/bazel/cipd_setup:cipd_rules.bzl", "_cipd_client_repository") 162 163cipd_client_repository(name = "cipd_client") 164 165cipd_repository = use_repo_rule("//pw_env_setup/bazel/cipd_setup:cipd_rules.bzl", "cipd_repository") 166 167# Fetch llvm toolchain. 168cipd_repository( 169 name = "llvm_toolchain", 170 build_file = "//pw_toolchain/build_external:llvm_clang.BUILD", 171 path = "fuchsia/third_party/clang/${os}-${arch}", 172 tag = "git_revision:0454dd8c48cd771478f1ae53330ba78e71bcd7cb", 173) 174 175# TODO: https://pwbug.dev/388593877 - macOS toolchain is behind because of a 176# breakage in C++ standard library headers. Remove this when the upstream LLVM 177# bug (https://github.com/llvm/llvm-project/issues/117630) is fixed and 178# rolled into Pigweed. 179cipd_repository( 180 name = "llvm_toolchain_macos", 181 build_file = "//pw_toolchain/build_external:llvm_clang.BUILD", 182 path = "fuchsia/third_party/clang/${os}-${arch}", 183 tag = "git_revision:8280651ad57cb9fb24a404cec2401040c28dec98", 184) 185 186cipd_repository( 187 name = "llvm_toolchain_device", 188 build_file = "//pw_toolchain/build_external:llvm_clang.BUILD", 189 path = "fuchsia/third_party/clang/${os}-${arch}", 190 tag = "git_revision:0454dd8c48cd771478f1ae53330ba78e71bcd7cb", 191) 192 193# Fetch linux sysroot for host builds. 194cipd_repository( 195 name = "linux_sysroot", 196 build_file = "//pw_toolchain/host_clang:linux_sysroot.BUILD", 197 path = "fuchsia/third_party/sysroot/bionic", 198 tag = "git_revision:702eb9654703a7cec1cadf93a7e3aa269d053943", 199) 200 201# Fetch gcc-arm-none-eabi toolchain. 202cipd_repository( 203 name = "gcc_arm_none_eabi_toolchain", 204 build_file = "//pw_toolchain/build_external:arm_none_eabi_gcc.BUILD", 205 path = "fuchsia/third_party/armgcc/${os}-${arch}", 206 tag = "version:2@12.2.MPACBTI-Rel1.1", 207) 208 209# Fetch the Zephyr toolchain 210cipd_repository( 211 name = "zephyr_toolchain", 212 build_file = "//pw_toolchain/build_external:zephyr.BUILD", 213 path = "infra/3pp/tools/zephyr_sdk/${os}-${arch}", 214 tag = "version:3@0.17.0", 215) 216 217register_toolchains( 218 "//pw_toolchain:cc_toolchain_cortex-m0", 219 "//pw_toolchain:cc_toolchain_cortex-m0plus", 220 "//pw_toolchain:cc_toolchain_cortex-m33", 221 "//pw_toolchain/arm_gcc:arm_gcc_cc_toolchain_cortex-m3", 222 "//pw_toolchain/arm_gcc:arm_gcc_cc_toolchain_cortex-m4", 223 "//pw_toolchain/host_clang:host_cc_toolchain_linux", 224 "//pw_toolchain/host_clang:host_cc_toolchain_macos", 225 dev_dependency = True, 226) 227 228register_toolchains( 229 "//pw_toolchain/fuchsia:all", 230 dev_dependency = True, 231) 232 233# Rust toolchains 234pw_rust = use_extension("//pw_toolchain/rust:extensions.bzl", "pw_rust") 235pw_rust.toolchain(cipd_tag = "rust_revision:77a455303bf08da8eef6236b2b4422a77cd25c42") 236use_repo(pw_rust, "pw_rust_toolchains") 237 238register_toolchains( 239 "@pw_rust_toolchains//:all", 240 dev_dependency = True, 241) 242 243crate = use_extension("@rules_rust//crate_universe:extension.bzl", "crate") 244crate.from_cargo( 245 name = "crates_no_std", 246 cargo_lockfile = "//third_party/crates_io/crates_no_std:Cargo.lock", 247 manifests = ["//third_party/crates_io/crates_no_std:Cargo.toml"], 248 # crate_universe's defaults do not include some embedded triples so the 249 # triples are listed explicitly. 250 supported_platform_triples = [ 251 # Host platforms 252 "aarch64-unknown-linux-gnu", 253 "x86_64-unknown-linux-gnu", 254 "aarch64-apple-darwin", 255 "x86_64-apple-darwin", 256 257 # Target platforms 258 "thumbv6m-none-eabi", 259 "thumbv7m-none-eabi", 260 "thumbv8m.main-none-eabihf", 261 ], 262) 263use_repo(crate, "crates_no_std") 264 265# Enable necessary features for `compiler_builtins` to build. 266crate.annotation( 267 crate = "compiler_builtins", 268 rustc_flags = ["-Zallow-features=abi_unadjusted,asm_experimental_arch,naked_functions,repr_simd,cfg_target_has_atomic,compiler_builtins,core_intrinsics,linkage"], 269) 270crate.from_cargo( 271 name = "crates_std", 272 cargo_lockfile = "//third_party/crates_io/crates_std:Cargo.lock", 273 manifests = ["//third_party/crates_io/crates_std:Cargo.toml"], 274) 275use_repo(crate, "crates_std") 276 277pw_rust_crates = use_extension("@pigweed//pw_build:pw_rust_crates_extension.bzl", "pw_rust_crates_extension") 278use_repo(pw_rust_crates, "rust_crates") 279 280# Get probe-rs 281# ============ 282 283# TODO: https://pwbug.dev/346388161 - Re enable use of rules_probe_rs once rp2350 284# support is upstreamed. 285# 286# probe_rs = use_extension("@rules_probe_rs//probe_rs:extensions.bzl", "probe_rs") 287# probe_rs.tools( 288# name = "probe_rs", 289# version = "0.24.0", 290# ) 291# use_repo(probe_rs, "probe_rs") 292 293# Use pre-release prebuilts for RP2350 support. 294cipd_repository( 295 name = "probe_rs", 296 build_file = "@pigweed//third_party/probe-rs:probe-rs.BUILD.bazel", 297 path = "pigweed/third_party/probe-rs/${os}-${arch}", 298 tag = "git_revision:37660106aba307cbab5cf6c2b0da57b72b6dc4e9", 299) 300 301# Configure Python toolchains and pip dependencies. 302# ================================================= 303python = use_extension("@rules_python//python/extensions:python.bzl", "python") 304python.toolchain( 305 # Allows building as root in a docker container. Required by oss-fuzz. 306 ignore_root_user_error = True, 307 is_default = True, 308 python_version = "3.11", 309) 310use_repo(python, "pythons_hub") 311 312pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") 313pip.parse( 314 hub_name = "python_packages", 315 python_version = "3.11", 316 requirements_darwin = "//pw_env_setup/py:pw_env_setup/virtualenv_setup/upstream_requirements_darwin_lock.txt", 317 requirements_linux = "//pw_env_setup/py:pw_env_setup/virtualenv_setup/upstream_requirements_linux_lock.txt", 318 requirements_windows = "//pw_env_setup/py:pw_env_setup/virtualenv_setup/upstream_requirements_windows_lock.txt", 319) 320use_repo(pip, "python_packages") 321 322# TODO: b/354241571 - The next two lines are only required because the Fuchsia 323# SDK doesn't correctly restrict the target platform compatibility of all its 324# targets. We should remove them once the bug is fixed. 325register_toolchains("@pythons_hub//:all") 326 327register_toolchains("@rules_python//python/runtime_env_toolchains:all") 328 329# Configure Go dependencies 330# ========================= 331go_deps = use_extension("@bazel_gazelle//:extensions.bzl", "go_deps") 332go_deps.from_file(go_mod = "//:go.mod") 333use_repo(go_deps, "org_golang_google_grpc", "org_golang_google_grpc_examples", "org_golang_google_protobuf") 334 335# Configure Java dependencies 336# =========================== 337maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") 338maven.install( 339 artifacts = [ 340 "com.google.auto.value:auto-value-annotations:1.8.2", 341 "com.google.auto.value:auto-value:1.8.2", 342 "com.google.code.findbugs:jsr305:3.0.2", 343 "com.google.flogger:flogger-system-backend:0.7.1", 344 "com.google.flogger:flogger:0.7.1", 345 "com.google.guava:failureaccess:1.0.2", 346 "com.google.guava:guava:31.0.1-jre", 347 "com.google.truth:truth:1.1.3", 348 "org.mockito:mockito-core:4.1.0", 349 ], 350 repositories = [ 351 "https://maven.google.com/", 352 "https://jcenter.bintray.com/", 353 "https://repo1.maven.org/maven2", 354 ], 355) 356use_repo( 357 maven, 358 "maven", 359) 360 361# QEMU prebuilts 362# ============== 363cipd_repository( 364 name = "qemu", 365 build_file = "//third_party/qemu:qemu.BUILD", 366 path = "fuchsia/third_party/qemu/${os}-${arch}", 367 tag = "git_revision:d922088eb4ba6bc31a99f17b32cf75e59dd306cd", 368) 369 370# Vendored libraries 371# ================== 372 373# TODO: https://pwbug.dev/378531541 - These are one-off external libraries that 374# are NOT in the BCR that downstream users may need to override/unify to their 375# expected version. 376 377# TODO: https://pwbug.dev/354749299 - Use the BCR version of mbedtls. 378http_archive( 379 name = "mbedtls", 380 build_file = "//:third_party/mbedtls/mbedtls.BUILD.bazel", 381 sha256 = "241c68402cef653e586be3ce28d57da24598eb0df13fcdea9d99bfce58717132", 382 strip_prefix = "mbedtls-2.28.8", 383 url = "https://github.com/Mbed-TLS/mbedtls/releases/download/v2.28.8/mbedtls-2.28.8.tar.bz2", 384) 385 386# TODO: https://github.com/bazelbuild/bazel/issues/23077 - Make these 387# bazel_deps dev_dependencies once archive_override has a build_file argument. 388http_archive( 389 name = "stm32f4xx_hal_driver", 390 build_file = "//third_party/stm32cube:stm32_hal_driver.BUILD.bazel", 391 sha256 = "d0427a3830f0c23dd4810952321b8209be7b3c50897d1fc2d79587435cc3a379", 392 strip_prefix = "stm32f4xx-hal-driver-1.8.0", 393 urls = ["https://github.com/STMicroelectronics/stm32f4xx-hal-driver/archive/refs/tags/v1.8.0.tar.gz"], 394) 395 396http_archive( 397 name = "cmsis_device_f4", 398 build_file = "//third_party/stm32cube:cmsis_device.BUILD.bazel", 399 sha256 = "1d9612ecaaab8708c88be2c9573927f2e5e9a911aa2c1427182b545ed5ed0fd6", 400 strip_prefix = "cmsis-device-f4-2.6.8", 401 urls = ["https://github.com/STMicroelectronics/cmsis-device-f4/archive/refs/tags/v2.6.8.tar.gz"], 402) 403 404http_archive( 405 name = "cmsis_core", 406 build_file = "//third_party/stm32cube:cmsis_core.BUILD.bazel", 407 sha256 = "32f226c31d7d1ff4a504404400603e047b99f405cd0c9a8f417f1f250251b829", 408 strip_prefix = "cmsis-core-5.4.0_cm4", 409 urls = ["https://github.com/STMicroelectronics/cmsis-core/archive/refs/tags/v5.4.0_cm4.tar.gz"], 410) 411 412git_repository( 413 name = "mcuxpresso", 414 commit = "0cc0caa0c44fc9ceae1ad4c0a9e3b79e8b38d751", 415 # temporary point to antmicro github fork until SDK generated files 416 # will be pushed to: https://pigweed.googlesource.com/pigweed/mcuxpresso-sdk 417 remote = "https://github.com/antmicro/mcuxpresso-sdk.git", 418) 419 420# Other Pigweed-specific dependencies 421# =================================== 422cipd_repository( 423 name = "bloaty", 424 path = "fuchsia/third_party/bloaty/${os=linux,mac}-amd64", 425 tag = "git_revision:c057ba4f43db0506d4ba8c096925b054b02a8bd3", 426) 427 428cipd_repository( 429 name = "buildifier", 430 path = "infra/3pp/tools/buildifier/${platform}", 431 tag = "version:3@v8.0.3", 432) 433 434# Set up legacy pw_transfer test binaries. 435# Required by: pigweed. 436# Used in modules: //pw_transfer. 437cipd_repository( 438 name = "pw_transfer_test_binaries", 439 # Only ever needed if you run the pw_transfer unit tests. 440 dev_dependency = True, 441 path = "pigweed/pw_transfer_test_binaries/${os=linux}-${arch=amd64}", 442 tag = "version:pw_transfer_test_binaries_528098d588f307881af83f769207b8e6e1b57520-linux-amd64-cipd.cipd", 443) 444 445workspace_and_buildfile = use_repo_rule("//pw_build/bazel_internal:workspace_and_buildfile.bzl", "workspace_and_buildfile") 446 447workspace_and_buildfile( 448 name = "pw_build_external_runfile_resource", 449 build_file = "//pw_build:test_data/external_py_runfiles.BUILD", 450 dev_dependency = True, 451) 452 453# Doxygen setup 454# ============= 455 456# Get executables. 457cipd_repository( 458 name = "doxygen_linux_amd64", 459 path = "pigweed/third_party/doxygen/linux-amd64", 460 tag = "version:1.9.6-1", 461) 462 463cipd_repository( 464 name = "doxygen_mac_amd64", 465 path = "pigweed/third_party/doxygen/mac-amd64", 466 tag = "version:1.9.6-1", 467) 468 469cipd_repository( 470 name = "doxygen_mac_arm64", 471 path = "pigweed/third_party/doxygen/mac-arm64", 472 tag = "version:1.9.6", 473) 474 475cipd_repository( 476 name = "doxygen_windows_amd64", 477 path = "pigweed/third_party/doxygen/windows-amd64", 478 tag = "version:1.9.6-1", 479) 480 481# Configure rules_doxygen to use our executables. 482doxygen_extension = use_extension("@rules_doxygen//:extensions.bzl", "doxygen_extension", dev_dependency = True) 483doxygen_extension.configuration( 484 executable = "@doxygen_linux_amd64//:bin/doxygen", 485 platform = "linux", 486) 487doxygen_extension.configuration( 488 executable = "@doxygen_mac_amd64//:doxygen", 489 platform = "mac", 490) 491doxygen_extension.configuration( 492 executable = "@doxygen_mac_arm64//:doxygen", 493 platform = "mac-arm", 494) 495doxygen_extension.configuration( 496 executable = "@doxygen_windows_amd64//:windows.exe", 497 platform = "windows", 498) 499use_repo(doxygen_extension, "doxygen") 500 501# Configure Node.js dependencies 502# ============================== 503 504node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True) 505node.toolchain(node_version = "20.12.1") 506 507npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True) 508npm.npm_translate_lock( 509 name = "npm", 510 pnpm_lock = "//:pnpm-lock.yaml", 511) 512use_repo(npm, "npm") 513 514# Setup Fuchsia SDK. 515# ================== 516FUCHSIA_SDK_VERSION = "version:27.20250226.5.1" 517 518cipd_repository( 519 name = "fuchsia_sdk", 520 path = "fuchsia/sdk/core/fuchsia-bazel-rules/linux-amd64", 521 tag = FUCHSIA_SDK_VERSION, 522) 523 524cipd_repository( 525 name = "rules_fuchsia", 526 path = "fuchsia/development/rules_fuchsia", 527 tag = FUCHSIA_SDK_VERSION, 528) 529 530fuchsia_clang_repository = use_repo_rule("@rules_fuchsia//fuchsia/workspace:fuchsia_clang_repository.bzl", "fuchsia_clang_repository") 531 532fuchsia_clang_repository( 533 name = "fuchsia_clang", 534 cipd_tag = "git_revision:aea60ab94db4729bad17daa86ccfc411d48a1699", 535) 536 537cipd_repository( 538 name = "fuchsia_products_metadata", 539 path = "fuchsia/development/product_bundles/v2", 540 tag = FUCHSIA_SDK_VERSION, 541) 542 543fuchsia_products_repository = use_repo_rule("//pw_build/bazel_internal/fuchsia_sdk_workspace:products.bzl", "fuchsia_products_repository") 544 545fuchsia_products_repository( 546 name = "fuchsia_products", 547 metadata_file = "@fuchsia_products_metadata//:product_bundles.json", 548) 549 550register_toolchains( 551 "//pw_toolchain/fuchsia:fuchsia_sdk_toolchain", 552 dev_dependency = True, 553) 554 555fake_fuchsia_sdk_extension = use_extension("@com_google_googletest//:fake_fuchsia_sdk.bzl", "fuchsia_sdk", dev_dependency = True) 556 557override_repo(fake_fuchsia_sdk_extension, "fuchsia_sdk") 558