xref: /aosp_15_r20/external/pigweed/MODULE.bazel (revision 61c4878ac05f98d0ceed94b57d316916de578985)
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