1*61c4878aSAndroid Build Coastguard Worker# Copyright 2024 The Pigweed Authors 2*61c4878aSAndroid Build Coastguard Worker# 3*61c4878aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4*61c4878aSAndroid Build Coastguard Worker# use this file except in compliance with the License. You may obtain a copy of 5*61c4878aSAndroid Build Coastguard Worker# the License at 6*61c4878aSAndroid Build Coastguard Worker# 7*61c4878aSAndroid Build Coastguard Worker# https://www.apache.org/licenses/LICENSE-2.0 8*61c4878aSAndroid Build Coastguard Worker# 9*61c4878aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*61c4878aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11*61c4878aSAndroid Build Coastguard Worker# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12*61c4878aSAndroid Build Coastguard Worker# License for the specific language governing permissions and limitations under 13*61c4878aSAndroid Build Coastguard Worker# the License. 14*61c4878aSAndroid Build Coastguard Worker 15*61c4878aSAndroid Build Coastguard Workermodule( 16*61c4878aSAndroid Build Coastguard Worker name = "pigweed", 17*61c4878aSAndroid Build Coastguard Worker version = "0.0.1", 18*61c4878aSAndroid Build Coastguard Worker) 19*61c4878aSAndroid Build Coastguard Worker 20*61c4878aSAndroid Build Coastguard Workerregister_execution_platforms("@local_config_platform//:host", "//pw_build/platforms:all") 21*61c4878aSAndroid Build Coastguard Worker 22*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "bazel_skylib", version = "1.7.1") 23*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "boringssl", version = "0.20240913.0") 24*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "freertos", version = "10.5.1.bcr.2") 25*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "gazelle", version = "0.36.0", repo_name = "bazel_gazelle") 26*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "nanopb", repo_name = "com_github_nanopb_nanopb") 27*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "pico-sdk", version = "2.0.0") 28*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "picotool", version = "2.0.0") 29*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "platforms", version = "0.0.10") 30*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "protobuf", version = "24.4", repo_name = "com_google_protobuf") 31*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "rules_cc", version = "0.0.10") 32*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "rules_fuzzing", version = "0.5.2") 33*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "rules_go", version = "0.49.0", repo_name = "io_bazel_rules_go") 34*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "rules_jvm_external", version = "6.2") 35*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "rules_libusb", version = "0.1.0-rc1") 36*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "rules_license", version = "1.0.0") 37*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "rules_platform", version = "0.1.0") 38*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "rules_probe_rs", version = "0.0.2") 39*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "rules_proto", version = "6.0.2") 40*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "rules_python", version = "0.36.0") 41*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "rules_rust", version = "0.52.2") 42*61c4878aSAndroid Build Coastguard Worker 43*61c4878aSAndroid Build Coastguard Worker# LINT.IfChange(emboss) 44*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "emboss", version = "2024.1017.203246", repo_name = "com_google_emboss") 45*61c4878aSAndroid Build Coastguard Worker# LINT.ThenChange(/pw_package/py/pw_package/packages/emboss.py:emboss) 46*61c4878aSAndroid Build Coastguard Worker 47*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "hedron_compile_commands", dev_dependency = True) 48*61c4878aSAndroid Build Coastguard Worker 49*61c4878aSAndroid Build Coastguard Worker# Repository overrides 50*61c4878aSAndroid Build Coastguard Worker# ==================== 51*61c4878aSAndroid Build Coastguard Worker 52*61c4878aSAndroid Build Coastguard Worker# TODO: https://pwbug.dev/349880767 - Point this back to the upstream repo once 53*61c4878aSAndroid Build Coastguard Worker# this PR is merged. 54*61c4878aSAndroid Build Coastguard Workerarchive_override( 55*61c4878aSAndroid Build Coastguard Worker module_name = "hedron_compile_commands", 56*61c4878aSAndroid Build Coastguard Worker strip_prefix = "bazel-compile-commands-extractor-163521345aa6366fd1ed801b989b668b5c806f69", 57*61c4878aSAndroid Build Coastguard Worker urls = ["https://github.com/chadnorvell/bazel-compile-commands-extractor/archive/163521345aa6366fd1ed801b989b668b5c806f69.tar.gz"], 58*61c4878aSAndroid Build Coastguard Worker) 59*61c4878aSAndroid Build Coastguard Worker 60*61c4878aSAndroid Build Coastguard Worker# TODO: https://pwbug.dev/354274498 - nanopb is not yet in the BCR. 61*61c4878aSAndroid Build Coastguard Workergit_override( 62*61c4878aSAndroid Build Coastguard Worker module_name = "nanopb", 63*61c4878aSAndroid Build Coastguard Worker commit = "f9191cd0be4177abd0d04546d61d59a9b6c32de3", 64*61c4878aSAndroid Build Coastguard Worker remote = "https://github.com/nanopb/nanopb.git", 65*61c4878aSAndroid Build Coastguard Worker) 66*61c4878aSAndroid Build Coastguard Worker 67*61c4878aSAndroid Build Coastguard Workersingle_version_override( 68*61c4878aSAndroid Build Coastguard Worker module_name = "rules_rust", 69*61c4878aSAndroid Build Coastguard Worker patch_strip = 1, 70*61c4878aSAndroid Build Coastguard Worker patches = [ 71*61c4878aSAndroid Build Coastguard Worker # Adds prototype functionality for documenting multiple crates in one 72*61c4878aSAndroid Build Coastguard Worker # HTML output directory. While the approach in this patch may have 73*61c4878aSAndroid Build Coastguard Worker # issues scaling to giant mono-repos, it is appropriate for embedded 74*61c4878aSAndroid Build Coastguard Worker # projects and minimally invasive and should be easy to maintain. Once 75*61c4878aSAndroid Build Coastguard Worker # the `rules_rust` community decides on a way to propperly support this, 76*61c4878aSAndroid Build Coastguard Worker # we will migrate to that solution. 77*61c4878aSAndroid Build Coastguard Worker # https://github.com/konkers/rules_rust/tree/wip/rustdoc 78*61c4878aSAndroid Build Coastguard Worker "//pw_rust/bazel_patches:0002-PROTOTYPE-Add-ability-to-document-multiple-crates-at.patch", 79*61c4878aSAndroid Build Coastguard Worker ], 80*61c4878aSAndroid Build Coastguard Worker) 81*61c4878aSAndroid Build Coastguard Worker 82*61c4878aSAndroid Build Coastguard Worker# Transitive deps not in BCR 83*61c4878aSAndroid Build Coastguard Worker# ========================== 84*61c4878aSAndroid Build Coastguard Workerhttp_archive = use_repo_rule( 85*61c4878aSAndroid Build Coastguard Worker "@bazel_tools//tools/build_defs/repo:http.bzl", 86*61c4878aSAndroid Build Coastguard Worker "http_archive", 87*61c4878aSAndroid Build Coastguard Worker) 88*61c4878aSAndroid Build Coastguard Worker 89*61c4878aSAndroid Build Coastguard Worker# TODO(b/370523804): Remove this once the following issues are addressed in a 90*61c4878aSAndroid Build Coastguard Worker# released version of rules_fuzzing 91*61c4878aSAndroid Build Coastguard Worker# https://github.com/bazel-contrib/rules_fuzzing/issues/257 92*61c4878aSAndroid Build Coastguard Workernon_module_dependencies = use_extension("@rules_fuzzing//fuzzing/private:extensions.bzl", "non_module_dependencies") 93*61c4878aSAndroid Build Coastguard Workeruse_repo( 94*61c4878aSAndroid Build Coastguard Worker non_module_dependencies, 95*61c4878aSAndroid Build Coastguard Worker "rules_fuzzing_oss_fuzz", 96*61c4878aSAndroid Build Coastguard Worker) 97*61c4878aSAndroid Build Coastguard Worker 98*61c4878aSAndroid Build Coastguard Worker# Configure libusb 99*61c4878aSAndroid Build Coastguard Worker# ================ 100*61c4878aSAndroid Build Coastguard Worker# 101*61c4878aSAndroid Build Coastguard Worker# The rules_libusb lets you configure which actual libusb version to use. 102*61c4878aSAndroid Build Coastguard Workerlibusb = use_extension("@rules_libusb//:extensions.bzl", "libusb") 103*61c4878aSAndroid Build Coastguard Workerlibusb.source_release(min_version = "1.0.27") 104*61c4878aSAndroid Build Coastguard Workeruse_repo(libusb, "libusb") 105*61c4878aSAndroid Build Coastguard Worker 106*61c4878aSAndroid Build Coastguard Worker# Configure C++ toolchains 107*61c4878aSAndroid Build Coastguard Worker# ======================== 108*61c4878aSAndroid Build Coastguard Worker# 109*61c4878aSAndroid Build Coastguard Worker# TODO: https://pwbug.dev/346388161 - Migrate to the rules_cc toolchain API. 110*61c4878aSAndroid Build Coastguard Workerbazel_dep(name = "pw_toolchain") 111*61c4878aSAndroid Build Coastguard Workerlocal_path_override( 112*61c4878aSAndroid Build Coastguard Worker module_name = "pw_toolchain", 113*61c4878aSAndroid Build Coastguard Worker path = "pw_toolchain_bazel", 114*61c4878aSAndroid Build Coastguard Worker) 115*61c4878aSAndroid Build Coastguard Worker 116*61c4878aSAndroid Build Coastguard Workerxcode_sdk_repository = use_repo_rule("//pw_toolchain:xcode.bzl", "xcode_sdk_repository") 117*61c4878aSAndroid Build Coastguard Worker 118*61c4878aSAndroid Build Coastguard Workerxcode_sdk_repository( 119*61c4878aSAndroid Build Coastguard Worker name = "macos_sysroot", 120*61c4878aSAndroid Build Coastguard Worker build_file = "//pw_toolchain/host_clang:macos_sysroot.BUILD", 121*61c4878aSAndroid Build Coastguard Worker) 122*61c4878aSAndroid Build Coastguard Worker 123*61c4878aSAndroid Build Coastguard Workercipd_client_repository = use_repo_rule("//pw_env_setup/bazel/cipd_setup:cipd_rules.bzl", "_cipd_client_repository") 124*61c4878aSAndroid Build Coastguard Worker 125*61c4878aSAndroid Build Coastguard Workercipd_client_repository(name = "cipd_client") 126*61c4878aSAndroid Build Coastguard Worker 127*61c4878aSAndroid Build Coastguard Workercipd_repository = use_repo_rule("//pw_env_setup/bazel/cipd_setup:cipd_rules.bzl", "cipd_repository") 128*61c4878aSAndroid Build Coastguard Worker 129*61c4878aSAndroid Build Coastguard Worker# Fetch llvm toolchain. 130*61c4878aSAndroid Build Coastguard Workercipd_repository( 131*61c4878aSAndroid Build Coastguard Worker name = "llvm_toolchain", 132*61c4878aSAndroid Build Coastguard Worker build_file = "//pw_toolchain/build_external:llvm_clang.BUILD", 133*61c4878aSAndroid Build Coastguard Worker path = "fuchsia/third_party/clang/${os}-${arch}", 134*61c4878aSAndroid Build Coastguard Worker tag = "git_revision:8280651ad57cb9fb24a404cec2401040c28dec98", 135*61c4878aSAndroid Build Coastguard Worker) 136*61c4878aSAndroid Build Coastguard Worker 137*61c4878aSAndroid Build Coastguard Worker# TODO: b/366374135 - This is behind, most recent version 138*61c4878aSAndroid Build Coastguard Worker# is in pw_env_setup/py/pw_env_setup/cipd_setup/pigweed.json 139*61c4878aSAndroid Build Coastguard Workercipd_repository( 140*61c4878aSAndroid Build Coastguard Worker name = "llvm_toolchain_device", 141*61c4878aSAndroid Build Coastguard Worker build_file = "//pw_toolchain/build_external:llvm_clang.BUILD", 142*61c4878aSAndroid Build Coastguard Worker path = "fuchsia/third_party/clang/${os}-${arch}", 143*61c4878aSAndroid Build Coastguard Worker tag = "git_revision:0dcada94bb1ae79f0edd91013038098c62a96b3b", 144*61c4878aSAndroid Build Coastguard Worker) 145*61c4878aSAndroid Build Coastguard Worker 146*61c4878aSAndroid Build Coastguard Worker# Fetch linux sysroot for host builds. 147*61c4878aSAndroid Build Coastguard Workercipd_repository( 148*61c4878aSAndroid Build Coastguard Worker name = "linux_sysroot", 149*61c4878aSAndroid Build Coastguard Worker build_file = "//pw_toolchain/host_clang:linux_sysroot.BUILD", 150*61c4878aSAndroid Build Coastguard Worker path = "fuchsia/third_party/sysroot/bionic", 151*61c4878aSAndroid Build Coastguard Worker tag = "git_revision:702eb9654703a7cec1cadf93a7e3aa269d053943", 152*61c4878aSAndroid Build Coastguard Worker) 153*61c4878aSAndroid Build Coastguard Worker 154*61c4878aSAndroid Build Coastguard Worker# Fetch gcc-arm-none-eabi toolchain. 155*61c4878aSAndroid Build Coastguard Workercipd_repository( 156*61c4878aSAndroid Build Coastguard Worker name = "gcc_arm_none_eabi_toolchain", 157*61c4878aSAndroid Build Coastguard Worker build_file = "//pw_toolchain/build_external:arm_none_eabi_gcc.BUILD", 158*61c4878aSAndroid Build Coastguard Worker path = "fuchsia/third_party/armgcc/${os}-${arch}", 159*61c4878aSAndroid Build Coastguard Worker tag = "version:[email protected]", 160*61c4878aSAndroid Build Coastguard Worker) 161*61c4878aSAndroid Build Coastguard Worker 162*61c4878aSAndroid Build Coastguard Workerregister_toolchains( 163*61c4878aSAndroid Build Coastguard Worker "//pw_toolchain:cc_toolchain_cortex-m0", 164*61c4878aSAndroid Build Coastguard Worker "//pw_toolchain:cc_toolchain_cortex-m0plus", 165*61c4878aSAndroid Build Coastguard Worker "//pw_toolchain:cc_toolchain_cortex-m33", 166*61c4878aSAndroid Build Coastguard Worker "//pw_toolchain/arm_gcc:arm_gcc_cc_toolchain_cortex-m3", 167*61c4878aSAndroid Build Coastguard Worker "//pw_toolchain/arm_gcc:arm_gcc_cc_toolchain_cortex-m4", 168*61c4878aSAndroid Build Coastguard Worker "//pw_toolchain/arm_gcc:arm_gcc_cc_toolchain_cortex-m4+nofp", 169*61c4878aSAndroid Build Coastguard Worker "//pw_toolchain/arm_gcc:arm_gcc_cc_toolchain_cortex-m33+nofp", 170*61c4878aSAndroid Build Coastguard Worker "//pw_toolchain/host_clang:host_cc_toolchain_linux", 171*61c4878aSAndroid Build Coastguard Worker "//pw_toolchain/host_clang:host_cc_toolchain_macos", 172*61c4878aSAndroid Build Coastguard Worker dev_dependency = True, 173*61c4878aSAndroid Build Coastguard Worker) 174*61c4878aSAndroid Build Coastguard Worker 175*61c4878aSAndroid Build Coastguard Workerregister_toolchains( 176*61c4878aSAndroid Build Coastguard Worker "//pw_toolchain/fuchsia:all", 177*61c4878aSAndroid Build Coastguard Worker dev_dependency = True, 178*61c4878aSAndroid Build Coastguard Worker) 179*61c4878aSAndroid Build Coastguard Worker 180*61c4878aSAndroid Build Coastguard Worker# Rust toolchains 181*61c4878aSAndroid Build Coastguard Workerpw_rust = use_extension("//pw_toolchain/rust:extensions.bzl", "pw_rust") 182*61c4878aSAndroid Build Coastguard Workerpw_rust.toolchain(cipd_tag = "rust_revision:bf9c7a64ad222b85397573668b39e6d1ab9f4a72") 183*61c4878aSAndroid Build Coastguard Workeruse_repo(pw_rust, "pw_rust_toolchains") 184*61c4878aSAndroid Build Coastguard Worker 185*61c4878aSAndroid Build Coastguard Workerregister_toolchains( 186*61c4878aSAndroid Build Coastguard Worker "@pw_rust_toolchains//:all", 187*61c4878aSAndroid Build Coastguard Worker dev_dependency = True, 188*61c4878aSAndroid Build Coastguard Worker) 189*61c4878aSAndroid Build Coastguard Worker 190*61c4878aSAndroid Build Coastguard Workergit_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") 191*61c4878aSAndroid Build Coastguard Worker 192*61c4878aSAndroid Build Coastguard Worker# Vendored third party rust crates. 193*61c4878aSAndroid Build Coastguard Workergit_repository( 194*61c4878aSAndroid Build Coastguard Worker name = "rust_crates", 195*61c4878aSAndroid Build Coastguard Worker commit = "ed1ec1bd240b9446b30af5331b960871a0503a6c", 196*61c4878aSAndroid Build Coastguard Worker remote = "https://pigweed.googlesource.com/third_party/rust_crates", 197*61c4878aSAndroid Build Coastguard Worker) 198*61c4878aSAndroid Build Coastguard Worker 199*61c4878aSAndroid Build Coastguard Worker# Get probe-rs 200*61c4878aSAndroid Build Coastguard Worker# ============ 201*61c4878aSAndroid Build Coastguard Worker 202*61c4878aSAndroid Build Coastguard Worker# TODO: https://pwbug.dev/346388161 - Re enable use of rules_probe_rs once rp2350 203*61c4878aSAndroid Build Coastguard Worker# support is upstreamed. 204*61c4878aSAndroid Build Coastguard Worker# 205*61c4878aSAndroid Build Coastguard Worker# probe_rs = use_extension("@rules_probe_rs//probe_rs:extensions.bzl", "probe_rs") 206*61c4878aSAndroid Build Coastguard Worker# probe_rs.tools( 207*61c4878aSAndroid Build Coastguard Worker# name = "probe_rs", 208*61c4878aSAndroid Build Coastguard Worker# version = "0.24.0", 209*61c4878aSAndroid Build Coastguard Worker# ) 210*61c4878aSAndroid Build Coastguard Worker# use_repo(probe_rs, "probe_rs") 211*61c4878aSAndroid Build Coastguard Worker 212*61c4878aSAndroid Build Coastguard Worker# Use pre-release prebuilts for RP2350 support. 213*61c4878aSAndroid Build Coastguard Workercipd_repository( 214*61c4878aSAndroid Build Coastguard Worker name = "probe_rs", 215*61c4878aSAndroid Build Coastguard Worker build_file = "@pigweed//third_party/probe-rs:probe-rs.BUILD.bazel", 216*61c4878aSAndroid Build Coastguard Worker path = "pigweed/third_party/probe-rs/${os}-${arch}", 217*61c4878aSAndroid Build Coastguard Worker tag = "git_revision:37660106aba307cbab5cf6c2b0da57b72b6dc4e9", 218*61c4878aSAndroid Build Coastguard Worker) 219*61c4878aSAndroid Build Coastguard Worker 220*61c4878aSAndroid Build Coastguard Worker# Configure Python toolchains and pip dependencies. 221*61c4878aSAndroid Build Coastguard Worker# ================================================= 222*61c4878aSAndroid Build Coastguard Workerpython = use_extension("@rules_python//python/extensions:python.bzl", "python") 223*61c4878aSAndroid Build Coastguard Workerpython.toolchain( 224*61c4878aSAndroid Build Coastguard Worker # Allows building as root in a docker container. Required by oss-fuzz. 225*61c4878aSAndroid Build Coastguard Worker ignore_root_user_error = True, 226*61c4878aSAndroid Build Coastguard Worker is_default = True, 227*61c4878aSAndroid Build Coastguard Worker python_version = "3.11", 228*61c4878aSAndroid Build Coastguard Worker) 229*61c4878aSAndroid Build Coastguard Workeruse_repo(python, "pythons_hub") 230*61c4878aSAndroid Build Coastguard Worker 231*61c4878aSAndroid Build Coastguard Workerpip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") 232*61c4878aSAndroid Build Coastguard Workerpip.parse( 233*61c4878aSAndroid Build Coastguard Worker hub_name = "python_packages", 234*61c4878aSAndroid Build Coastguard Worker python_version = "3.11", 235*61c4878aSAndroid Build Coastguard Worker requirements_darwin = "//pw_env_setup/py:pw_env_setup/virtualenv_setup/upstream_requirements_darwin_lock.txt", 236*61c4878aSAndroid Build Coastguard Worker requirements_linux = "//pw_env_setup/py:pw_env_setup/virtualenv_setup/upstream_requirements_linux_lock.txt", 237*61c4878aSAndroid Build Coastguard Worker requirements_windows = "//pw_env_setup/py:pw_env_setup/virtualenv_setup/upstream_requirements_windows_lock.txt", 238*61c4878aSAndroid Build Coastguard Worker) 239*61c4878aSAndroid Build Coastguard Workeruse_repo(pip, "python_packages") 240*61c4878aSAndroid Build Coastguard Worker 241*61c4878aSAndroid Build Coastguard Worker# TODO: b/354241571 - The next two lines are only required because the Fuchsia 242*61c4878aSAndroid Build Coastguard Worker# SDK doesn't correctly restrict the target platform compatibility of all its 243*61c4878aSAndroid Build Coastguard Worker# targets. We should remove them once the bug is fixed. 244*61c4878aSAndroid Build Coastguard Workerregister_toolchains("@pythons_hub//:all") 245*61c4878aSAndroid Build Coastguard Worker 246*61c4878aSAndroid Build Coastguard Workerregister_toolchains("@rules_python//python/runtime_env_toolchains:all") 247*61c4878aSAndroid Build Coastguard Worker 248*61c4878aSAndroid Build Coastguard Worker# Configure Go dependencies 249*61c4878aSAndroid Build Coastguard Worker# ========================= 250*61c4878aSAndroid Build Coastguard Workergo_deps = use_extension("@bazel_gazelle//:extensions.bzl", "go_deps") 251*61c4878aSAndroid Build Coastguard Workergo_deps.from_file(go_mod = "//:go.mod") 252*61c4878aSAndroid Build Coastguard Workeruse_repo(go_deps, "org_golang_google_grpc", "org_golang_google_grpc_examples", "org_golang_google_protobuf") 253*61c4878aSAndroid Build Coastguard Worker 254*61c4878aSAndroid Build Coastguard Worker# Configure Java dependencies 255*61c4878aSAndroid Build Coastguard Worker# =========================== 256*61c4878aSAndroid Build Coastguard Workermaven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") 257*61c4878aSAndroid Build Coastguard Workermaven.install( 258*61c4878aSAndroid Build Coastguard Worker artifacts = [ 259*61c4878aSAndroid Build Coastguard Worker "com.google.auto.value:auto-value-annotations:1.8.2", 260*61c4878aSAndroid Build Coastguard Worker "com.google.auto.value:auto-value:1.8.2", 261*61c4878aSAndroid Build Coastguard Worker "com.google.code.findbugs:jsr305:3.0.2", 262*61c4878aSAndroid Build Coastguard Worker "com.google.flogger:flogger-system-backend:0.7.1", 263*61c4878aSAndroid Build Coastguard Worker "com.google.flogger:flogger:0.7.1", 264*61c4878aSAndroid Build Coastguard Worker "com.google.guava:failureaccess:1.0.2", 265*61c4878aSAndroid Build Coastguard Worker "com.google.guava:guava:31.0.1-jre", 266*61c4878aSAndroid Build Coastguard Worker "com.google.truth:truth:1.1.3", 267*61c4878aSAndroid Build Coastguard Worker "org.mockito:mockito-core:4.1.0", 268*61c4878aSAndroid Build Coastguard Worker ], 269*61c4878aSAndroid Build Coastguard Worker repositories = [ 270*61c4878aSAndroid Build Coastguard Worker "https://maven.google.com/", 271*61c4878aSAndroid Build Coastguard Worker "https://jcenter.bintray.com/", 272*61c4878aSAndroid Build Coastguard Worker "https://repo1.maven.org/maven2", 273*61c4878aSAndroid Build Coastguard Worker ], 274*61c4878aSAndroid Build Coastguard Worker) 275*61c4878aSAndroid Build Coastguard Workeruse_repo( 276*61c4878aSAndroid Build Coastguard Worker maven, 277*61c4878aSAndroid Build Coastguard Worker "maven", 278*61c4878aSAndroid Build Coastguard Worker) 279*61c4878aSAndroid Build Coastguard Worker 280*61c4878aSAndroid Build Coastguard Worker# Vendored libraries 281*61c4878aSAndroid Build Coastguard Worker# ================== 282*61c4878aSAndroid Build Coastguard Worker 283*61c4878aSAndroid Build Coastguard Worker# TODO: https://pwbug.dev/378531541 - These are one-off external libraries that 284*61c4878aSAndroid Build Coastguard Worker# are NOT in the BCR that downstream users may need to override/unify to their 285*61c4878aSAndroid Build Coastguard Worker# expected version. 286*61c4878aSAndroid Build Coastguard Worker 287*61c4878aSAndroid Build Coastguard Workernew_git_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository") 288*61c4878aSAndroid Build Coastguard Worker 289*61c4878aSAndroid Build Coastguard Worker# TODO: https://pwbug.dev/378531541 - Get micro_ecc from the BCR. 290*61c4878aSAndroid Build Coastguard Workernew_git_repository( 291*61c4878aSAndroid Build Coastguard Worker name = "micro_ecc", 292*61c4878aSAndroid Build Coastguard Worker build_file = "//:third_party/micro_ecc/BUILD.micro_ecc", 293*61c4878aSAndroid Build Coastguard Worker commit = "b335ee812bfcca4cd3fb0e2a436aab39553a555a", 294*61c4878aSAndroid Build Coastguard Worker remote = "https://github.com/kmackay/micro-ecc.git", 295*61c4878aSAndroid Build Coastguard Worker) 296*61c4878aSAndroid Build Coastguard Worker 297*61c4878aSAndroid Build Coastguard Worker# TODO: https://pwbug.dev/354749299 - Use the BCR version of mbedtls. 298*61c4878aSAndroid Build Coastguard Workerhttp_archive( 299*61c4878aSAndroid Build Coastguard Worker name = "mbedtls", 300*61c4878aSAndroid Build Coastguard Worker build_file = "//:third_party/mbedtls/mbedtls.BUILD.bazel", 301*61c4878aSAndroid Build Coastguard Worker sha256 = "241c68402cef653e586be3ce28d57da24598eb0df13fcdea9d99bfce58717132", 302*61c4878aSAndroid Build Coastguard Worker strip_prefix = "mbedtls-2.28.8", 303*61c4878aSAndroid Build Coastguard Worker url = "https://github.com/Mbed-TLS/mbedtls/releases/download/v2.28.8/mbedtls-2.28.8.tar.bz2", 304*61c4878aSAndroid Build Coastguard Worker) 305*61c4878aSAndroid Build Coastguard Worker 306*61c4878aSAndroid Build Coastguard Worker# TODO: https://github.com/bazelbuild/bazel/issues/23077 - Make these 307*61c4878aSAndroid Build Coastguard Worker# bazel_deps dev_dependencies once archive_override has a build_file argument. 308*61c4878aSAndroid Build Coastguard Workerhttp_archive( 309*61c4878aSAndroid Build Coastguard Worker name = "stm32f4xx_hal_driver", 310*61c4878aSAndroid Build Coastguard Worker build_file = "//third_party/stm32cube:stm32_hal_driver.BUILD.bazel", 311*61c4878aSAndroid Build Coastguard Worker sha256 = "d0427a3830f0c23dd4810952321b8209be7b3c50897d1fc2d79587435cc3a379", 312*61c4878aSAndroid Build Coastguard Worker strip_prefix = "stm32f4xx-hal-driver-1.8.0", 313*61c4878aSAndroid Build Coastguard Worker urls = ["https://github.com/STMicroelectronics/stm32f4xx-hal-driver/archive/refs/tags/v1.8.0.tar.gz"], 314*61c4878aSAndroid Build Coastguard Worker) 315*61c4878aSAndroid Build Coastguard Worker 316*61c4878aSAndroid Build Coastguard Workerhttp_archive( 317*61c4878aSAndroid Build Coastguard Worker name = "cmsis_device_f4", 318*61c4878aSAndroid Build Coastguard Worker build_file = "//third_party/stm32cube:cmsis_device.BUILD.bazel", 319*61c4878aSAndroid Build Coastguard Worker sha256 = "1d9612ecaaab8708c88be2c9573927f2e5e9a911aa2c1427182b545ed5ed0fd6", 320*61c4878aSAndroid Build Coastguard Worker strip_prefix = "cmsis-device-f4-2.6.8", 321*61c4878aSAndroid Build Coastguard Worker urls = ["https://github.com/STMicroelectronics/cmsis-device-f4/archive/refs/tags/v2.6.8.tar.gz"], 322*61c4878aSAndroid Build Coastguard Worker) 323*61c4878aSAndroid Build Coastguard Worker 324*61c4878aSAndroid Build Coastguard Workerhttp_archive( 325*61c4878aSAndroid Build Coastguard Worker name = "cmsis_core", 326*61c4878aSAndroid Build Coastguard Worker build_file = "//third_party/stm32cube:cmsis_core.BUILD.bazel", 327*61c4878aSAndroid Build Coastguard Worker sha256 = "32f226c31d7d1ff4a504404400603e047b99f405cd0c9a8f417f1f250251b829", 328*61c4878aSAndroid Build Coastguard Worker strip_prefix = "cmsis-core-5.4.0_cm4", 329*61c4878aSAndroid Build Coastguard Worker urls = ["https://github.com/STMicroelectronics/cmsis-core/archive/refs/tags/v5.4.0_cm4.tar.gz"], 330*61c4878aSAndroid Build Coastguard Worker) 331*61c4878aSAndroid Build Coastguard Worker 332*61c4878aSAndroid Build Coastguard Worker# Other Pigweed-specific dependencies 333*61c4878aSAndroid Build Coastguard Worker# =================================== 334*61c4878aSAndroid Build Coastguard Workercipd_repository( 335*61c4878aSAndroid Build Coastguard Worker name = "bloaty", 336*61c4878aSAndroid Build Coastguard Worker path = "fuchsia/third_party/bloaty/${os}-amd64", 337*61c4878aSAndroid Build Coastguard Worker tag = "git_revision:c057ba4f43db0506d4ba8c096925b054b02a8bd3", 338*61c4878aSAndroid Build Coastguard Worker) 339*61c4878aSAndroid Build Coastguard Worker 340*61c4878aSAndroid Build Coastguard Worker# Set up legacy pw_transfer test binaries. 341*61c4878aSAndroid Build Coastguard Worker# Required by: pigweed. 342*61c4878aSAndroid Build Coastguard Worker# Used in modules: //pw_transfer. 343*61c4878aSAndroid Build Coastguard Workercipd_repository( 344*61c4878aSAndroid Build Coastguard Worker name = "pw_transfer_test_binaries", 345*61c4878aSAndroid Build Coastguard Worker # Only ever needed if you run the pw_transfer unit tests. 346*61c4878aSAndroid Build Coastguard Worker dev_dependency = True, 347*61c4878aSAndroid Build Coastguard Worker path = "pigweed/pw_transfer_test_binaries/${os=linux}-${arch=amd64}", 348*61c4878aSAndroid Build Coastguard Worker tag = "version:pw_transfer_test_binaries_528098d588f307881af83f769207b8e6e1b57520-linux-amd64-cipd.cipd", 349*61c4878aSAndroid Build Coastguard Worker) 350