blob: 648e02870995cc06d0338a02cb93f87da74b16df [file]
module(
name = "android_studio",
)
bazel_dep(name = "bazel_features", version = "1.4.1", repo_name = "io_bazel_rules_go_bazel_features")
version = use_extension("@io_bazel_rules_go_bazel_features//private:extensions.bzl", "version_extension")
use_repo(version, "bazel_features_globals", "bazel_features_version")
bazel_dep(name = "platforms", version = "0.0.10")
bazel_dep(name = "zlib", version = "1.3.1.bcr.5")
single_version_override(
module_name = "zlib",
patch_strip = 1,
patches = [
"//tools/base/bazel/bzlmod:zlib_copy_file.patch",
"//tools/base/bazel/bzlmod:zlib_use_copy_file.patch",
],
version = "1.3.1.bcr.5",
)
bazel_dep(name = "rules_proto", version = "7.1.0")
# For rules_rust we pick up commit https://github.com/bazelbuild/rules_rust/commit/0a4285119b
# which fixes local builds on gWindows (for crates that utilize the C++ toolchain).
# We should eventually switch to version 0.70.0+ once it is available.
bazel_dep(name = "rules_rust")
single_version_override(
module_name = "rules_rust",
patch_strip = 1,
patches = ["//tools/base/bazel/bzlmod:rules_rust_0a4285119b.patch"],
version = "0.68.1",
)
rust = use_extension("@rules_rust//rust:extensions.bzl", "rust")
rust.toolchain(
edition = "2024",
extra_target_triples = [
"aarch64-linux-android",
"armv7-linux-androideabi",
"i686-linux-android",
"x86_64-linux-android",
],
rustfmt_version = "1.91.1",
versions = ["1.91.1"],
)
bazel_dep(name = "rules_gcs", version = "1.0.1")
crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate")
crate.spec(
features = [
"std",
"backtrace",
],
package = "anyhow",
version = "=1.0.102",
)
crate.spec(
package = "jni",
version = "=0.21.1",
)
crate.spec(
default_features = False,
features = ["deflate"],
package = "zip",
version = "=2.4.2",
)
crate.spec(
package = "libloading",
version = "=0.8.9",
)
crate.spec(
package = "log",
version = "=0.4.29",
)
crate.spec(
package = "env_logger",
version = "=0.11.10",
)
crate.spec(
package = "sha1",
version = "=0.10.6",
)
crate.spec(
features = [
"Win32_Foundation",
"Win32_Globalization",
"Win32_Security",
"Win32_System_JobObjects",
"Win32_System_LibraryLoader",
"Win32_System_Threading",
],
package = "windows",
version = "0.61.1",
)
crate.spec(
default_features = False,
features = [
# The gzip dependency is small and it allows for compressed HTTP streams.
"gzip",
# We ship client software, so it is better to respect OS-level certs over baked-in certs.
# For details see https://crates.io/crates/rustls-platform-verifier.
"platform-verifier",
# By default, ureq uses ring as its crypto provider, but ring is not well maintained.
# Thus we use rustls-no-provider here and add the aws-lc-rs crypto provider later.
# The aws-lc-rs backend is the same one used by Android platform.
"rustls-no-provider",
],
package = "ureq",
version = "=3.3.0",
)
crate.spec(
package = "rustls",
version = "=0.23.38",
)
crate.from_specs(
# Cargo upgrades crate versions during dependency resolution by default, which is
# not what we want. We cache the dependency resolution step with toplevel.MODULE.bazel.lock,
# but we additionally need a Cargo.lockfile to avoid spurious crate upgrades when we rerun
# dependency resolution locally (e.g. when adding a new crate).
cargo_lockfile = "//tools/base/bazel:Cargo.lockfile",
# We specify our supported platform explicitly, overriding the default list at
# https://github.com/bazelbuild/rules_rust/blob/ae1be23677/crate_universe/private/crates_repository.bzl#L29
supported_platform_triples = [
"aarch64-apple-darwin",
"x86_64-apple-darwin",
"x86_64-pc-windows-msvc",
"x86_64-unknown-linux-gnu",
],
)
use_repo(crate, "crates")
bazel_dep(name = "rules_go", version = "0.52.0")
bazel_dep(name = "rules_cc", version = "0.0.15")
bazel_dep(name = "rules_python", version = "1.1.0")
bazel_dep(name = "rules_license", version = "1.0.0")
bazel_dep(name = "protobuf", version = "29.2", repo_name = "com_google_protobuf")
single_version_override(
module_name = "protobuf",
patch_strip = 1,
patches = [
# b/392548175 - failure in upb aspect when using '-c opt'.
"//tools/base/bazel/bzlmod:protobuf-upb-proto-disable.patch",
# Stop rules_jvm_external from calling coursier for maven resolution.
"//tools/base/bazel/bzlmod:protobuf_use_maven_install_lockfile.patch",
],
version = "29.2",
)
bazel_dep(name = "rules_jvm_external", version = "6.8")
bazel_dep(name = "rules_java", version = "8.13.0")
bazel_dep(name = "rules_pkg", version = "1.0.1")
compat = use_extension("@rules_java//java:rules_java_deps.bzl", "compatibility_proxy")
use_repo(compat, "compatibility_proxy")
bazel_dep(name = "rules_robolectric", version = "4.14.1.2")
bazel_dep(name = "rules_shell", version = "0.4.0")
bazel_dep(name = "with_cfg.bzl", version = "0.9.1")
bazel_dep(name = "grpc", version = "1.69.0")
single_version_override(
module_name = "grpc",
patch_strip = 1,
patches = [
"//tools/base/bazel/bzlmod:grpc_use_android_platforms.patch",
"//tools/base/bazel/bzlmod:grpc_fix_windows_platforms.patch",
],
version = "1.69.0",
)
# rules_apple is included by grpc, but override to a newer version to pick up
# fixes for Bazel 8.
single_version_override(
module_name = "rules_apple",
version = "3.16.0",
)
bazel_dep(name = "re2")
# re2 is included by grpc, but override with a fix for Bazel 8.
# See https://github.com/google/re2/commit/c84a140c93352cdabbfb547c531be34515b12228
git_override(
module_name = "re2",
commit = "c84a140c93352cdabbfb547c531be34515b12228",
remote = "https://github.com/google/re2",
)
# grpc depends on 1.0.4, which uses a python.pip extension with an incompatible attribute.
bazel_dep(name = "protoc-gen-validate", version = "1.0.4.bcr.2")
bazel_dep(name = "abseil-py", version = "2.1.0", repo_name = "absl-py")
bazel_dep(name = "abseil-cpp", version = "20250127.0", repo_name = "com_google_absl")
bazel_dep(name = "rules_android", version = "0.6.5")
single_version_override(
module_name = "rules_android",
patch_strip = 1,
patches = [
# Disables ImportDepsChecker for //prebuilts/tools/common/m2:androidx-monitor
# See https://github.com/bazelbuild/rules_android/issues/332
"//tools/base/bazel/bzlmod:rules_android_aar_import_fallback.patch",
# Lock maven_install so rules_android does not call out to coursier for
# maven resolution.
"//tools/base/bazel/bzlmod:rules_android_lock_maven_install.patch",
],
version = "0.6.5",
)
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
# rules_jvm_external 6.8 includes the following commit:
# https://github.com/bazel-contrib/rules_jvm_external/commit/3574cebf1a163ed992f460cc7877a0355e86e35b
# which causes rules_android_maven's protobuf version to no longer be overridden.
# This override is re-added to ensure the same protobuf version is used. Otherwise,
# the version conflict causes PackageAndroidResources actions to fail.
maven.override(
name = "rules_android_maven",
coordinates = "com.google.protobuf:protobuf-java",
target = "@com_google_protobuf//:protobuf_java",
)
maven.install(
known_contributing_modules = [
"android_studio",
"grpc-java",
"bazel_worker_java",
],
lock_file = "//tools/base/bazel/bzlmod:maven_install.json",
)
# Rename the default rules_jvm_external maven repository to maven2 to avoid a
# naming conflict with the custom maven repository.
use_repo(maven, maven2 = "maven")
android_sdk_repository_extension = use_extension(
"@rules_android//rules/android_sdk_repository:rule.bzl",
"android_sdk_repository_extension",
)
use_repo(android_sdk_repository_extension, "androidsdk")
register_toolchains("@androidsdk//:sdk-toolchain", "@androidsdk//:all")
bazel_dep(name = "rules_android_ndk", version = "0.1.5")
bazel_dep(name = "perfetto", version = "56.0")
archive_override(
module_name = "perfetto",
integrity = "sha256-l0GTin/FNO0wJyPCssPJSSc6qS2/cl0OG3IpqTILbAc=",
patch_strip = 1,
patches = [
"//tools/base/bazel/bzlmod:perfetto-fix-include-guard.patch",
"//tools/base/bazel/bzlmod:perfetto-fix-zlib-build.patch",
"//tools/base/bazel/bzlmod:perfetto-no-android-sdk-ndk.patch",
"//tools/base/bazel/bzlmod:perfetto-pr-6121.patch",
# b/528480763: Replaces fork() with posix_spawnp() on macOS to prevent kernel panics
# (EXC_BREAKPOINT) when symbolizing traces from multithreaded gRPC daemon processes.
"//tools/base/bazel/bzlmod:perfetto-mac-fork-fix.patch",
],
strip_prefix = "perfetto-56.0",
urls = ["https://github.com/google/perfetto/archive/refs/tags/v56.0.tar.gz"],
)
include("//tools/base/bazel/bzlmod:external.MODULE.bazel")
include("//tools/base/bazel/bzlmod:idea.MODULE.bazel")
include("//tools/base/bazel/bzlmod:toolchains.MODULE.bazel")
include("//tools/base/bazel/bzlmod:prebuilts.MODULE.bazel")
include("//tools/base/bazel/bzlmod:coverage.MODULE.bazel")
include("//tools/base/bazel/bzlmod:sdk.MODULE.bazel")
include("//tools/base/intellij-bazel:intellij.MODULE.bazel")
include("//tools:vendor.MODULE.bazel")
include("//tools/adt/idea/android/prebuilts/android-cli:android_cli.MODULE.bazel")