Introduce more dependencies in Bazel Bzlmod build
Working towards: https://github.com/bazelbuild/bazel/issues/18957
RELNOTES:
PiperOrigin-RevId: 552886589
Change-Id: I2d170deae5bdaf05dbece4779ffb5b1137ee7b81
diff --git a/MODULE.bazel b/MODULE.bazel
index 77b720d..9d70633 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -1,5 +1,3 @@
-# To build Bazel with Bzlmod: `bazel build --enable_bzlmod //src:bazel_nojdk`.
-
module(
name = "bazel",
version = "7.0.0-pre",
@@ -20,15 +18,33 @@
bazel_dep(name = "rules_java", version = "6.3.0")
bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
bazel_dep(name = "rules_jvm_external", version = "5.2")
-bazel_dep(name = "rules_python", version = "0.19.0")
+bazel_dep(name = "rules_python", version = "0.24.0")
bazel_dep(name = "rules_testing", version = "0.0.4")
+# TODO(pcloudy): Add remoteapis and googleapis as Bazel modules in the BCR.
+bazel_dep(name = "remoteapis", version = "")
+bazel_dep(name = "googleapis", version = "")
+
single_version_override(
module_name = "rules_jvm_external",
patch_strip = 1,
patches = ["//third_party:rules_jvm_external_5.2.patch"],
)
+local_path_override(
+ module_name = "remoteapis",
+ path = "./third_party/remoteapis",
+)
+
+local_path_override(
+ module_name = "googleapis",
+ path = "./third_party/googleapis",
+)
+
+# =========================================
+# Bazel Java dependencies
+# =========================================
+
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
maven.install(
# We don't yet specify the maven coordinates in the MODULE.bazel to avoid duplicating information.
@@ -41,35 +57,66 @@
)
use_repo(maven, "maven")
-# TODO(pcloudy): Add remoteapis and googleapis as Bazel modules in the BCR.
-bazel_dep(name = "remoteapis", version = "")
-bazel_dep(name = "googleapis", version = "")
-
-local_path_override(
- module_name = "remoteapis",
- path = "./third_party/remoteapis",
-)
-
-local_path_override(
- module_name = "googleapis",
- path = "./third_party/googleapis",
-)
+# =========================================
+# Other Bazel internal dependencies
+# - embedded JDKs
+# - repos for Debian build
+# =========================================
bazel_internal_deps = use_extension("//:extensions.bzl", "bazel_internal_deps")
use_repo(
bazel_internal_deps,
- "openjdk_linux_vanilla",
+ "debian_cc_deps",
"openjdk_linux_aarch64_vanilla",
"openjdk_linux_ppc64le_vanilla",
"openjdk_linux_s390x_vanilla",
- "openjdk_macos_x86_64_vanilla",
+ "openjdk_linux_vanilla",
"openjdk_macos_aarch64_vanilla",
- "openjdk_win_vanilla",
+ "openjdk_macos_x86_64_vanilla",
"openjdk_win_arm64_vanilla",
+ "openjdk_win_vanilla",
)
+# =========================================
+# Register platforms & toolchains
+# =========================================
+
+register_execution_platforms("//:default_host_platform")
+
register_toolchains("@bazel_tools//tools/python:autodetecting_toolchain")
-# Dev dependencies
+register_toolchains("//src/main/res:empty_rc_toolchain")
-bazel_dep(name = "googletest", version = "1.12.1", repo_name = "com_google_googletest", dev_dependency = True)
+# =========================================
+# Android tools dependencies
+# =========================================
+
+maven_android = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
+maven_android.install(
+ name = "maven_android",
+ # We don't yet specify the maven coordinates in the MODULE.bazel to avoid duplicating information.
+ # Always respect the maven_install.json file generated by rules_jvm_external from the WORKSPACE file.
+ # TODO(pcloudy): We should add maven coordinates here when we enable Bzlmod in the default build for Bazel.
+ lock_file = "//src/tools/android:maven_android_install.json",
+ repositories = [
+ "https://dl.google.com/android/maven2",
+ "https://repo1.maven.org/maven2",
+ ],
+)
+use_repo(maven_android, "maven_android")
+
+bazel_android_deps = use_extension("//:extensions.bzl", "bazel_android_deps")
+use_repo(
+ bazel_android_deps,
+ "android_gmaven_r8",
+ "desugar_jdk_libs",
+)
+
+# =========================================
+# Bazel dev dependencies
+# =========================================
+
+bazel_dep(name = "googletest", version = "1.12.1", repo_name = "com_google_googletest")
+
+bazel_dev_deps = use_extension("//:extensions.bzl", "bazel_dev_deps")
+use_repo(bazel_dev_deps, "local_bazel_source_list")