| 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") |