xref: /aosp_15_r20/build/bazel/bazel.WORKSPACE (revision 7594170e27e0732bc44b93d1440d87a54b6ffe7c)
1*7594170eSAndroid Build Coastguard Worker# This repository provides files that Soong emits during bp2build (other than
2*7594170eSAndroid Build Coastguard Worker# converted BUILD files), mostly .bzl files containing constants to support the
3*7594170eSAndroid Build Coastguard Worker# converted BUILD files.
4*7594170eSAndroid Build Coastguard Workerload("//build/bazel/rules:soong_injection.bzl", "soong_injection_repository")
5*7594170eSAndroid Build Coastguard Worker
6*7594170eSAndroid Build Coastguard Workersoong_injection_repository(name = "soong_injection")
7*7594170eSAndroid Build Coastguard Worker
8*7594170eSAndroid Build Coastguard Workerload("//build/bazel/rules:env.bzl", "env_repository")
9*7594170eSAndroid Build Coastguard Worker
10*7594170eSAndroid Build Coastguard Workerenv_repository(
11*7594170eSAndroid Build Coastguard Worker    name = "env",
12*7594170eSAndroid Build Coastguard Worker)
13*7594170eSAndroid Build Coastguard Worker
14*7594170eSAndroid Build Coastguard Worker# This repository is a containter for API surface stub libraries.
15*7594170eSAndroid Build Coastguard Workerload("//build/bazel/rules:api_surfaces_injection.bzl", "api_surfaces_repository")
16*7594170eSAndroid Build Coastguard Worker
17*7594170eSAndroid Build Coastguard Worker# TODO: Once BUILD files for stubs are checked-in, this should be converted to a local_repository.
18*7594170eSAndroid Build Coastguard Workerapi_surfaces_repository(name = "api_surfaces")
19*7594170eSAndroid Build Coastguard Worker
20*7594170eSAndroid Build Coastguard Workerlocal_repository(
21*7594170eSAndroid Build Coastguard Worker    name = "bazel_skylib",
22*7594170eSAndroid Build Coastguard Worker    path = "external/bazel-skylib",
23*7594170eSAndroid Build Coastguard Worker)
24*7594170eSAndroid Build Coastguard Worker
25*7594170eSAndroid Build Coastguard Workerload("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
26*7594170eSAndroid Build Coastguard Worker
27*7594170eSAndroid Build Coastguard Workerlocal_repository(
28*7594170eSAndroid Build Coastguard Worker    name = "io_abseil_py",
29*7594170eSAndroid Build Coastguard Worker    path = "external/python/absl-py",
30*7594170eSAndroid Build Coastguard Worker)
31*7594170eSAndroid Build Coastguard Worker
32*7594170eSAndroid Build Coastguard Workerbazel_skylib_workspace()
33*7594170eSAndroid Build Coastguard Worker
34*7594170eSAndroid Build Coastguard Workerlocal_repository(
35*7594170eSAndroid Build Coastguard Worker    name = "rules_android",
36*7594170eSAndroid Build Coastguard Worker    path = "external/bazelbuild-rules_android",
37*7594170eSAndroid Build Coastguard Worker)
38*7594170eSAndroid Build Coastguard Worker
39*7594170eSAndroid Build Coastguard Workerlocal_repository(
40*7594170eSAndroid Build Coastguard Worker    name = "rules_license",
41*7594170eSAndroid Build Coastguard Worker    path = "external/bazelbuild-rules_license",
42*7594170eSAndroid Build Coastguard Worker)
43*7594170eSAndroid Build Coastguard Worker
44*7594170eSAndroid Build Coastguard Workerlocal_repository(
45*7594170eSAndroid Build Coastguard Worker    name = "rules_python",
46*7594170eSAndroid Build Coastguard Worker    path = "external/bazelbuild-rules_python",
47*7594170eSAndroid Build Coastguard Worker)
48*7594170eSAndroid Build Coastguard Worker
49*7594170eSAndroid Build Coastguard Workerlocal_repository(
50*7594170eSAndroid Build Coastguard Worker    name = "rules_cc",
51*7594170eSAndroid Build Coastguard Worker    path = "external/bazelbuild-rules_cc",
52*7594170eSAndroid Build Coastguard Worker)
53*7594170eSAndroid Build Coastguard Worker
54*7594170eSAndroid Build Coastguard Workerregister_toolchains(
55*7594170eSAndroid Build Coastguard Worker    "//prebuilts/build-tools:py_toolchain",
56*7594170eSAndroid Build Coastguard Worker
57*7594170eSAndroid Build Coastguard Worker    # For Android rules
58*7594170eSAndroid Build Coastguard Worker    "//prebuilts/sdk:all",
59*7594170eSAndroid Build Coastguard Worker
60*7594170eSAndroid Build Coastguard Worker    # For APEX rules
61*7594170eSAndroid Build Coastguard Worker    "//build/bazel/rules/apex:all",
62*7594170eSAndroid Build Coastguard Worker
63*7594170eSAndroid Build Coastguard Worker    # For partition rules
64*7594170eSAndroid Build Coastguard Worker    "//build/bazel/rules/partitions:all",
65*7594170eSAndroid Build Coastguard Worker)
66*7594170eSAndroid Build Coastguard Worker
67*7594170eSAndroid Build Coastguard Workerbind(
68*7594170eSAndroid Build Coastguard Worker    name = "databinding_annotation_processor",
69*7594170eSAndroid Build Coastguard Worker    actual = "//prebuilts/sdk:compiler_annotation_processor",
70*7594170eSAndroid Build Coastguard Worker)
71*7594170eSAndroid Build Coastguard Worker
72*7594170eSAndroid Build Coastguard Workerbind(
73*7594170eSAndroid Build Coastguard Worker    name = "android/dx_jar_import",
74*7594170eSAndroid Build Coastguard Worker    actual = "//prebuilts/sdk:dx_jar_import",
75*7594170eSAndroid Build Coastguard Worker)
76*7594170eSAndroid Build Coastguard Worker
77*7594170eSAndroid Build Coastguard Worker# The r8.jar in prebuilts/r8 happens to have the d8 classes needed
78*7594170eSAndroid Build Coastguard Worker# for Android app building, whereas the d8.jar in prebuilts/sdk/tools doesn't.
79*7594170eSAndroid Build Coastguard Workerbind(
80*7594170eSAndroid Build Coastguard Worker    name = "android/d8_jar_import",
81*7594170eSAndroid Build Coastguard Worker    actual = "//prebuilts/r8:r8lib-prebuilt",
82*7594170eSAndroid Build Coastguard Worker)
83*7594170eSAndroid Build Coastguard Worker
84*7594170eSAndroid Build Coastguard Worker# TODO(b/201242197): Avoid downloading remote_coverage_tools (on CI) by creating
85*7594170eSAndroid Build Coastguard Worker# a stub workspace. Test rules (e.g. sh_test) depend on this external dep, but
86*7594170eSAndroid Build Coastguard Worker# we don't support coverage yet. Either vendor the external dep into AOSP, or
87*7594170eSAndroid Build Coastguard Worker# cut the dependency from test rules to the external repo.
88*7594170eSAndroid Build Coastguard Workerlocal_repository(
89*7594170eSAndroid Build Coastguard Worker    name = "remote_coverage_tools",
90*7594170eSAndroid Build Coastguard Worker    path = "build/bazel_common_rules/rules/coverage/remote_coverage_tools",
91*7594170eSAndroid Build Coastguard Worker)
92*7594170eSAndroid Build Coastguard Worker
93*7594170eSAndroid Build Coastguard Worker# Stubbing the local_jdk both ensures that we don't accidentally download remote
94*7594170eSAndroid Build Coastguard Worker# repositories and allows us to let the Kotlin rules continue to access
95*7594170eSAndroid Build Coastguard Worker# @local_jdk//jar.
96*7594170eSAndroid Build Coastguard Workerlocal_repository(
97*7594170eSAndroid Build Coastguard Worker    name = "local_jdk",
98*7594170eSAndroid Build Coastguard Worker    path = "build/bazel/rules/java/stub_local_jdk",
99*7594170eSAndroid Build Coastguard Worker)
100*7594170eSAndroid Build Coastguard Worker
101*7594170eSAndroid Build Coastguard Worker# The following 2 repositories contain prebuilts that are necessary to the Java Rules.
102*7594170eSAndroid Build Coastguard Worker# They are vendored locally to avoid the need for CI bots to download them.
103*7594170eSAndroid Build Coastguard Workerlocal_repository(
104*7594170eSAndroid Build Coastguard Worker    name = "remote_java_tools",
105*7594170eSAndroid Build Coastguard Worker    path = "prebuilts/bazel/common/remote_java_tools",
106*7594170eSAndroid Build Coastguard Worker)
107*7594170eSAndroid Build Coastguard Worker
108*7594170eSAndroid Build Coastguard Workerlocal_repository(
109*7594170eSAndroid Build Coastguard Worker    name = "remote_java_tools_linux",
110*7594170eSAndroid Build Coastguard Worker    path = "prebuilts/bazel/linux-x86_64/remote_java_tools_linux",
111*7594170eSAndroid Build Coastguard Worker)
112*7594170eSAndroid Build Coastguard Worker
113*7594170eSAndroid Build Coastguard Worker# TODO(b/253667328): the below 3 repositories are all pointed to shim
114*7594170eSAndroid Build Coastguard Worker# repositories with targets that will cause failures if they are
115*7594170eSAndroid Build Coastguard Worker# actually depended on. Eventually we should properly vendor these
116*7594170eSAndroid Build Coastguard Worker# repositories.
117*7594170eSAndroid Build Coastguard Workerlocal_repository(
118*7594170eSAndroid Build Coastguard Worker    name = "remote_java_tools_darwin_x86_64",
119*7594170eSAndroid Build Coastguard Worker    path = "prebuilts/bazel/darwin-x86_64/remote_java_tools_darwin",
120*7594170eSAndroid Build Coastguard Worker)
121*7594170eSAndroid Build Coastguard Worker
122*7594170eSAndroid Build Coastguard Workerlocal_repository(
123*7594170eSAndroid Build Coastguard Worker    name = "remote_java_tools_darwin_arm64",
124*7594170eSAndroid Build Coastguard Worker    path = "prebuilts/bazel/darwin-x86_64/remote_java_tools_darwin",
125*7594170eSAndroid Build Coastguard Worker)
126*7594170eSAndroid Build Coastguard Worker
127*7594170eSAndroid Build Coastguard Workerlocal_repository(
128*7594170eSAndroid Build Coastguard Worker    name = "remote_java_tools_windows",
129*7594170eSAndroid Build Coastguard Worker    path = "prebuilts/bazel/darwin-x86_64/remote_java_tools_darwin",
130*7594170eSAndroid Build Coastguard Worker)
131*7594170eSAndroid Build Coastguard Worker
132*7594170eSAndroid Build Coastguard Worker# The following repository contains android_tools prebuilts.
133*7594170eSAndroid Build Coastguard Workerlocal_repository(
134*7594170eSAndroid Build Coastguard Worker    name = "android_tools",
135*7594170eSAndroid Build Coastguard Worker    path = "prebuilts/bazel/common/android_tools",
136*7594170eSAndroid Build Coastguard Worker)
137*7594170eSAndroid Build Coastguard Worker
138*7594170eSAndroid Build Coastguard Worker# The vendored rules_java repository.
139*7594170eSAndroid Build Coastguard Workerlocal_repository(
140*7594170eSAndroid Build Coastguard Worker    name = "rules_java",
141*7594170eSAndroid Build Coastguard Worker    path = "external/bazelbuild-rules_java",
142*7594170eSAndroid Build Coastguard Worker)
143*7594170eSAndroid Build Coastguard Worker
144*7594170eSAndroid Build Coastguard Workerregister_toolchains(
145*7594170eSAndroid Build Coastguard Worker    "//prebuilts/jdk/jdk21:runtime_toolchain_definition",
146*7594170eSAndroid Build Coastguard Worker    "//build/bazel/rules/java:jdk21_host_toolchain_java_definition",
147*7594170eSAndroid Build Coastguard Worker)
148*7594170eSAndroid Build Coastguard Worker
149*7594170eSAndroid Build Coastguard Workerlocal_repository(
150*7594170eSAndroid Build Coastguard Worker    name = "kotlin_maven_interface",
151*7594170eSAndroid Build Coastguard Worker    path = "build/bazel/rules/kotlin/maven_interface",
152*7594170eSAndroid Build Coastguard Worker)
153*7594170eSAndroid Build Coastguard Worker
154*7594170eSAndroid Build Coastguard Workerlocal_repository(
155*7594170eSAndroid Build Coastguard Worker    name = "rules_kotlin",
156*7594170eSAndroid Build Coastguard Worker    path = "external/bazelbuild-kotlin-rules",
157*7594170eSAndroid Build Coastguard Worker    repo_mapping = {
158*7594170eSAndroid Build Coastguard Worker        "@maven": "@kotlin_maven_interface",
159*7594170eSAndroid Build Coastguard Worker        "@bazel_platforms": "@platforms",
160*7594170eSAndroid Build Coastguard Worker    },
161*7594170eSAndroid Build Coastguard Worker)
162*7594170eSAndroid Build Coastguard Worker
163*7594170eSAndroid Build Coastguard Workernew_local_repository(
164*7594170eSAndroid Build Coastguard Worker    name = "kotlinc",
165*7594170eSAndroid Build Coastguard Worker    build_file = "//build/bazel/rules/kotlin:kotlinc.BUILD",
166*7594170eSAndroid Build Coastguard Worker    path = "external/kotlinc",
167*7594170eSAndroid Build Coastguard Worker)
168*7594170eSAndroid Build Coastguard Worker
169*7594170eSAndroid Build Coastguard Workerregister_toolchains("//build/bazel/rules/kotlin:kt_jvm_toolchain_linux")
170*7594170eSAndroid Build Coastguard Worker
171*7594170eSAndroid Build Coastguard Workerload("//build/bazel/toolchains/clang/host/linux-x86:cc_toolchain_config.bzl", "cc_register_toolchains")
172*7594170eSAndroid Build Coastguard Worker
173*7594170eSAndroid Build Coastguard Workercc_register_toolchains()
174*7594170eSAndroid Build Coastguard Worker
175*7594170eSAndroid Build Coastguard Workerlocal_repository(
176*7594170eSAndroid Build Coastguard Worker    name = "io_bazel_rules_go",
177*7594170eSAndroid Build Coastguard Worker    path = "external/bazelbuild-rules_go",
178*7594170eSAndroid Build Coastguard Worker)
179*7594170eSAndroid Build Coastguard Worker
180*7594170eSAndroid Build Coastguard Workerload(
181*7594170eSAndroid Build Coastguard Worker    "@io_bazel_rules_go//go:deps.bzl",
182*7594170eSAndroid Build Coastguard Worker    "go_register_toolchains",
183*7594170eSAndroid Build Coastguard Worker    "go_rules_dependencies",
184*7594170eSAndroid Build Coastguard Worker    "go_wrap_sdk",
185*7594170eSAndroid Build Coastguard Worker)
186*7594170eSAndroid Build Coastguard Worker
187*7594170eSAndroid Build Coastguard Workergo_wrap_sdk(
188*7594170eSAndroid Build Coastguard Worker    name = "go_sdk",
189*7594170eSAndroid Build Coastguard Worker    # Add coveragedesign to experiments. This is a temporary hack due to two separate issues combinining together
190*7594170eSAndroid Build Coastguard Worker    # 1. android:
191*7594170eSAndroid Build Coastguard Worker    # Starting with go 1.20, the standard go sdk does not ship with .a files for the standard libraries
192*7594170eSAndroid Build Coastguard Worker    # However, this breaks the go rules in build/blueprint. As a temporary workaround, we distribute prebuilts of the standard libaries
193*7594170eSAndroid Build Coastguard Worker    # in prebuilts/go using GODEBUG='installgoroot=all' in the prebuilt update script
194*7594170eSAndroid Build Coastguard Worker    #
195*7594170eSAndroid Build Coastguard Worker    # 2. rules_go:
196*7594170eSAndroid Build Coastguard Worker    # coverage is not supported in rules_go, and therefore it adds nocoveragedesign to GOEXPERIMENT. This is not an issue for non Android cases
197*7594170eSAndroid Build Coastguard Worker    # since the go SDK used in those cases does not contain prebuilts of standard libraries. The stdlib is built from scratch with `nocoverageredesign`.
198*7594170eSAndroid Build Coastguard Worker    #
199*7594170eSAndroid Build Coastguard Worker    # Without this, we run into isues during compilation
200*7594170eSAndroid Build Coastguard Worker    # ```
201*7594170eSAndroid Build Coastguard Worker    # GoCompilePkg build/blueprint/blueprint-deptools.a failed
202*7594170eSAndroid Build Coastguard Worker    # build/blueprint/deptools/depfile.go:18:2: could not import fmt (object is [go object linux amd64 go1.20.2 GOAMD64=v1 X:unified,regabiwrappers,regabiargs,coverageredesign
203*7594170eSAndroid Build Coastguard Worker    #                                                                                                                                                          ^^^^^^^^^^^^^^^^
204*7594170eSAndroid Build Coastguard Worker    # ] expected [go object linux amd64 go1.20.2 GOAMD64=v1 X:unified,regabiwrappers,regabiargs
205*7594170eSAndroid Build Coastguard Worker    # ```
206*7594170eSAndroid Build Coastguard Worker    # TODO - b/288456805: Remove this hardcoded experiment value
207*7594170eSAndroid Build Coastguard Worker    experiments = ["coverageredesign"],
208*7594170eSAndroid Build Coastguard Worker    # The expected key format is <goos>_<goarch>
209*7594170eSAndroid Build Coastguard Worker    # The value is any file in the GOROOT for that platform
210*7594170eSAndroid Build Coastguard Worker    root_files = {
211*7594170eSAndroid Build Coastguard Worker        "linux_amd64": "@//:prebuilts/go/linux-x86/README.md",
212*7594170eSAndroid Build Coastguard Worker        "darwin_amd64": "@//prebuilts/go/darwin-x86/README.md",
213*7594170eSAndroid Build Coastguard Worker    },
214*7594170eSAndroid Build Coastguard Worker)
215*7594170eSAndroid Build Coastguard Worker
216*7594170eSAndroid Build Coastguard Workergo_rules_dependencies()
217*7594170eSAndroid Build Coastguard Worker
218*7594170eSAndroid Build Coastguard Workergo_register_toolchains(experiments = [])
219*7594170eSAndroid Build Coastguard Worker
220*7594170eSAndroid Build Coastguard Workerlocal_repository(
221*7594170eSAndroid Build Coastguard Worker    name = "rules_proto",
222*7594170eSAndroid Build Coastguard Worker    path = "build/bazel/rules/proto",
223*7594170eSAndroid Build Coastguard Worker)
224*7594170eSAndroid Build Coastguard Worker
225*7594170eSAndroid Build Coastguard Workerlocal_repository(
226*7594170eSAndroid Build Coastguard Worker    name = "rules_rust",
227*7594170eSAndroid Build Coastguard Worker    path = "external/bazelbuild-rules_rust",
228*7594170eSAndroid Build Coastguard Worker)
229*7594170eSAndroid Build Coastguard Worker
230*7594170eSAndroid Build Coastguard Workernew_local_repository(
231*7594170eSAndroid Build Coastguard Worker    name = "rules_rust_tinyjson",
232*7594170eSAndroid Build Coastguard Worker    build_file = "@rules_rust//util/process_wrapper:BUILD.tinyjson.bazel",
233*7594170eSAndroid Build Coastguard Worker    path = "external/rust/crates/tinyjson",
234*7594170eSAndroid Build Coastguard Worker)
235*7594170eSAndroid Build Coastguard Worker
236*7594170eSAndroid Build Coastguard Workerlocal_repository(
237*7594170eSAndroid Build Coastguard Worker    name = "rules_testing",
238*7594170eSAndroid Build Coastguard Worker    path = "external/bazelbuild-rules_testing",
239*7594170eSAndroid Build Coastguard Worker)
240*7594170eSAndroid Build Coastguard Worker
241*7594170eSAndroid Build Coastguard Workerregister_toolchains(
242*7594170eSAndroid Build Coastguard Worker    # The base toolchains need to be registered before <os_arch>
243*7594170eSAndroid Build Coastguard Worker    # to ensure it is preferably resolved when it's enabled by
244*7594170eSAndroid Build Coastguard Worker    # base_toolchain_enabled config_setting
245*7594170eSAndroid Build Coastguard Worker    "//build/bazel/toolchains/rust/bootstrap:rust_toolchain_android_arm64_base",
246*7594170eSAndroid Build Coastguard Worker    "//build/bazel/toolchains/rust/bootstrap:rust_toolchain_android_arm_base",
247*7594170eSAndroid Build Coastguard Worker    "//build/bazel/toolchains/rust/bootstrap:rust_toolchain_android_x86_64_base",
248*7594170eSAndroid Build Coastguard Worker    "//build/bazel/toolchains/rust/bootstrap:rust_toolchain_android_x86_base",
249*7594170eSAndroid Build Coastguard Worker    "//build/bazel/toolchains/rust:rust_toolchain_android_arm64",
250*7594170eSAndroid Build Coastguard Worker    "//build/bazel/toolchains/rust:rust_toolchain_android_arm",
251*7594170eSAndroid Build Coastguard Worker    "//build/bazel/toolchains/rust:rust_toolchain_android_x86_64",
252*7594170eSAndroid Build Coastguard Worker    "//build/bazel/toolchains/rust:rust_toolchain_android_x86",
253*7594170eSAndroid Build Coastguard Worker    "build/bazel/toolchains/rust:rust_toolchain_x86_64_unknown-linux-gnu",
254*7594170eSAndroid Build Coastguard Worker    "build/bazel/toolchains/rust:proto-toolchain",
255*7594170eSAndroid Build Coastguard Worker)
256