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