blob: b87629a6dc90ec8998292683111be84b62c66366 [file] [log] [blame]
Yun Peng9d308492023-08-08 00:49:00 -07001"""Bazel build and test dependencies."""
2
John Catercadbaa52023-10-16 10:16:21 -07003# NOTE: When editing this file, also update the lockfile.
4# bazel mod deps --lockfile_mode=update
5
Yun Peng6181a3c2021-10-28 03:11:19 -07006module(
Yun Peng1bf22462022-09-19 10:43:54 -07007 name = "bazel",
Yun Peng1bf22462022-09-19 10:43:54 -07008 repo_name = "io_bazel",
Yun Peng6181a3c2021-10-28 03:11:19 -07009)
10
Yun Pengb27ca732023-09-06 02:57:04 -070011# =========================================
12# Bazel module dependencies
13# =========================================
14
Tony Aiuto4797ba02023-06-20 05:54:54 -070015bazel_dep(name = "rules_license", version = "0.0.7")
Fabian Meumertzheim5f796842023-11-14 21:07:28 -080016bazel_dep(name = "bazel_skylib", version = "1.5.0")
Ivo Liste9929af2023-01-12 08:18:00 -080017bazel_dep(name = "protobuf", version = "21.7", repo_name = "com_google_protobuf")
Fabian Meumertzheim9631f412023-07-07 03:04:56 -070018bazel_dep(name = "grpc", version = "1.48.1.bcr.1", repo_name = "com_github_grpc_grpc")
Tony Aiuto29985cd2023-10-18 14:27:52 -070019bazel_dep(name = "platforms", version = "0.0.8")
Yun Pengb27ca732023-09-06 02:57:04 -070020bazel_dep(name = "rules_pkg", version = "0.9.1")
Yun Peng849da312024-01-30 10:16:17 -080021bazel_dep(name = "stardoc", version = "0.5.6", repo_name = "io_bazel_skydoc")
Yun Peng9d308492023-08-08 00:49:00 -070022bazel_dep(name = "zstd-jni", version = "1.5.2-3.bcr.1")
Googler3e6284b2023-09-11 04:47:43 -070023bazel_dep(name = "blake3", version = "1.3.3.bcr.1")
Benjamin Petersoncd9f8e02023-09-06 01:56:46 -070024bazel_dep(name = "zlib", version = "1.3")
Googler0e58b0d2023-09-20 08:16:28 -070025bazel_dep(name = "rules_cc", version = "0.0.9")
iancha1992d51f9482024-02-14 00:47:49 -080026bazel_dep(name = "rules_java", version = "7.4.0")
Googler11498b52024-03-06 15:27:20 -080027bazel_dep(name = "rules_graalvm", version = "0.11.1")
Ivo Liste9929af2023-01-12 08:18:00 -080028bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
Yun Peng849da312024-01-30 10:16:17 -080029bazel_dep(name = "rules_jvm_external", version = "6.0")
Googler0db36512024-01-26 10:42:47 -080030bazel_dep(name = "rules_python", version = "0.28.0")
Fabian Meumertzheim883b6ee2023-04-25 11:13:57 -070031bazel_dep(name = "rules_testing", version = "0.0.4")
Yun Peng51bddee2023-11-16 04:32:10 -080032bazel_dep(name = "googletest", version = "1.14.0", repo_name = "com_google_googletest")
Ivo List78729c02023-03-03 08:27:25 -080033
Googlercf140392023-08-01 12:34:14 -070034# TODO(pcloudy): Add remoteapis and googleapis as Bazel modules in the BCR.
35bazel_dep(name = "remoteapis", version = "")
36bazel_dep(name = "googleapis", version = "")
37
Yun Pengc749f802023-02-21 06:08:30 -080038single_version_override(
39 module_name = "rules_jvm_external",
40 patch_strip = 1,
Yun Peng849da312024-01-30 10:16:17 -080041 patches = ["//third_party:rules_jvm_external_6.0.patch"],
Yun Peng3d7937e2023-01-10 06:43:02 -080042)
43
Googlercf140392023-08-01 12:34:14 -070044local_path_override(
45 module_name = "remoteapis",
46 path = "./third_party/remoteapis",
47)
48
49local_path_override(
50 module_name = "googleapis",
51 path = "./third_party/googleapis",
52)
53
Yun Pengb27ca732023-09-06 02:57:04 -070054# The following Bazel modules are not direct dependencies for building Bazel,
Yun Pengc1f2aff2023-11-07 09:51:02 -080055# but are required for visibility from DIST_ARCHIVE_REPOS in repositories.bzl
Fabian Meumertzheim5f796842023-11-14 21:07:28 -080056bazel_dep(name = "apple_support", version = "1.8.1")
Yun Pengfe68cfe2023-11-22 00:18:56 -080057bazel_dep(name = "abseil-cpp", version = "20230125.1")
Yun Pengb27ca732023-09-06 02:57:04 -070058bazel_dep(name = "c-ares", version = "1.15.0")
59bazel_dep(name = "rules_go", version = "0.39.1")
Yun Peng849da312024-01-30 10:16:17 -080060bazel_dep(name = "rules_kotlin", version = "1.9.0")
Yun Pengb27ca732023-09-06 02:57:04 -070061bazel_dep(name = "upb", version = "0.0.0-20220923-a547704")
John Caterea88bb12024-02-29 12:14:00 -080062single_version_override(
63 module_name = "upb",
64 patch_strip = 1,
65 patches = [
66 "//third_party/upb:00_remove_toolchain_transition.patch",
67 ],
68)
Yun Pengb27ca732023-09-06 02:57:04 -070069
Googlercf140392023-08-01 12:34:14 -070070# =========================================
Yun Peng9d308492023-08-08 00:49:00 -070071# Java dependencies
Googlercf140392023-08-01 12:34:14 -070072# =========================================
73
Yun Pengc749f802023-02-21 06:08:30 -080074maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
75maven.install(
Yun Peng136dae12023-09-08 12:39:10 -070076 artifacts = [
77 "com.beust:jcommander:1.82",
78 "com.github.ben-manes.caffeine:caffeine:3.0.5",
79 "com.github.kevinstern:software-and-algorithms:1.0",
80 "com.github.stephenc.jcip:jcip-annotations:1.0-1",
81 "com.google.api-client:google-api-client-gson:1.35.2",
82 "com.google.api-client:google-api-client:1.35.2",
83 "com.google.auth:google-auth-library-credentials:1.6.0",
84 "com.google.auth:google-auth-library-oauth2-http:1.6.0",
85 "com.google.auto.service:auto-service-annotations:1.0.1",
86 "com.google.auto.service:auto-service:1.0",
87 "com.google.auto.value:auto-value-annotations:1.9",
88 "com.google.auto.value:auto-value:1.8.2",
89 "com.google.auto:auto-common:1.2.1",
90 "com.google.code.findbugs:jsr305:3.0.2",
91 "com.google.code.gson:gson:2.9.0",
92 "com.google.code.java-allocation-instrumenter:java-allocation-instrumenter:3.3.0",
Benjamin Petersone6927452023-10-23 08:24:39 -070093 "com.google.errorprone:error_prone_annotation:2.23.0",
94 "com.google.errorprone:error_prone_annotations:2.23.0",
95 "com.google.errorprone:error_prone_check_api:2.23.0",
96 "com.google.errorprone:error_prone_core:2.23.0",
97 "com.google.errorprone:error_prone_type_annotations:2.23.0",
Yun Peng136dae12023-09-08 12:39:10 -070098 "com.google.flogger:flogger-system-backend:0.5.1",
99 "com.google.flogger:flogger:0.5.1",
100 "com.google.flogger:google-extensions:0.5.1",
101 "com.google.guava:failureaccess:1.0.1",
Googlerc7028652024-01-31 11:25:17 -0800102 "com.google.guava:guava:33.0.0-jre",
Yun Peng136dae12023-09-08 12:39:10 -0700103 "com.google.http-client:google-http-client-gson:1.42.0",
104 "com.google.http-client:google-http-client:1.42.0",
105 "com.google.j2objc:j2objc-annotations:1.3",
Liam Miller-Cushon50963db2024-03-07 07:10:43 -0800106 "com.google.turbine:turbine:0.5.0",
Yun Peng136dae12023-09-08 12:39:10 -0700107 "com.ryanharter.auto.value:auto-value-gson-extension:1.3.1",
108 "com.ryanharter.auto.value:auto-value-gson-runtime:1.3.1",
109 "com.ryanharter.auto.value:auto-value-gson-factory:1.3.1",
110 "com.squareup:javapoet:1.12.0",
111 "commons-collections:commons-collections:3.2.2",
112 "commons-lang:commons-lang:2.6",
Googler5c843392023-09-25 09:12:54 -0700113 "io.github.java-diff-utils:java-diff-utils:4.12",
Yun Peng136dae12023-09-08 12:39:10 -0700114 "io.grpc:grpc-api:1.48.1",
115 "io.grpc:grpc-auth:1.48.1",
116 "io.grpc:grpc-context:1.48.1",
117 "io.grpc:grpc-core:1.48.1",
118 "io.grpc:grpc-netty:1.48.1",
119 "io.grpc:grpc-protobuf-lite:1.48.1",
120 "io.grpc:grpc-protobuf:1.48.1",
121 "io.grpc:grpc-stub:1.48.1",
122 "io.netty:netty-buffer:4.1.93.Final",
123 "io.netty:netty-codec-http2:4.1.93.Final",
124 "io.netty:netty-codec-http:4.1.93.Final",
125 "io.netty:netty-codec:4.1.93.Final",
126 "io.netty:netty-common:4.1.93.Final",
127 "io.netty:netty-handler-proxy:4.1.93.Final",
128 "io.netty:netty-handler:4.1.93.Final",
129 "io.netty:netty-resolver-dns:4.1.93.Final",
130 "io.netty:netty-resolver:4.1.93.Final",
131 "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64:2.0.56.Final",
132 "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64:2.0.56.Final",
133 "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64:2.0.56.Final",
134 "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64:2.0.56.Final",
135 "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64:2.0.56.Final",
136 "io.netty:netty-tcnative-classes:2.0.56.Final",
137 "io.netty:netty-transport-classes-epoll:4.1.93.Final",
138 "io.netty:netty-transport-classes-kqueue:4.1.93.Final",
139 "io.netty:netty-transport-native-epoll:jar:linux-aarch_64:4.1.93.Final",
140 "io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.93.Final",
141 "io.netty:netty-transport-native-kqueue:jar:osx-aarch_64:4.1.93.Final",
142 "io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.1.93.Final",
143 "io.netty:netty-transport-native-unix-common:4.1.93.Final",
144 "io.netty:netty-transport-native-unix-common:jar:linux-aarch_64:4.1.93.Final",
145 "io.netty:netty-transport-native-unix-common:jar:linux-x86_64:4.1.93.Final",
146 "io.netty:netty-transport-native-unix-common:jar:osx-aarch_64:4.1.93.Final",
147 "io.netty:netty-transport-native-unix-common:jar:osx-x86_64:4.1.93.Final",
148 "io.netty:netty-transport:4.1.93.Final",
149 "io.reactivex.rxjava3:rxjava:3.1.2",
Justin Horvitzc9343612023-11-30 10:43:29 -0800150 "it.unimi.dsi:fastutil:7.2.1",
Yun Peng136dae12023-09-08 12:39:10 -0700151 "javax.activation:javax.activation-api:1.2.0",
152 "javax.annotation:javax.annotation-api:1.3.2",
153 "javax.inject:javax.inject:1",
154 "net.bytebuddy:byte-buddy-agent:1.14.5",
155 "net.bytebuddy:byte-buddy:1.14.5",
Tiago Quelhas93729f42023-11-09 09:34:41 -0800156 "org.apache.commons:commons-compress:1.20",
Yun Peng136dae12023-09-08 12:39:10 -0700157 "org.apache.commons:commons-pool2:2.8.0",
158 "org.apache.tomcat:tomcat-annotations-api:8.0.5",
159 "org.apache.velocity:velocity:1.7",
160 "org.checkerframework:checker-qual:3.19.0",
161 "org.ow2.asm:asm-analysis:9.2",
162 "org.ow2.asm:asm-commons:9.2",
163 "org.ow2.asm:asm-tree:9.2",
164 "org.ow2.asm:asm-util:9.2",
165 "org.ow2.asm:asm:9.2",
166 "org.pcollections:pcollections:3.1.4",
167 "org.threeten:threeten-extra:1.5.0",
168 "org.tukaani:xz:1.9",
169 "org.yaml:snakeyaml:1.28",
Tiago Quelhase061a022024-02-20 05:58:25 -0800170 "tools.profiler:async-profiler:3.0",
Yun Peng136dae12023-09-08 12:39:10 -0700171 # The following jars are for testing.
172 # junit is not test only due to //src/java_tools/junitrunner/java/com/google/testing/junit/junit4:runner,
173 # and hamcrest is a dependency of junit.
174 "junit:junit:4.13.2",
175 "org.hamcrest:hamcrest-core:1.3",
176 ],
177 excluded_artifacts = [
178 # org.apache.httpcomponents and org.eclipse.jgit:org.eclipse.jgit
179 # require java.security.jgss module to be embedded in the Bazel binary.
180 "org.apache.httpcomponents:httpclient",
181 "org.apache.httpcomponents:httpcore",
182 "org.eclipse.jgit:org.eclipse.jgit",
183 # We build protobuf Java library from source, exclude protobuf jars to be safe.
184 "com.google.protobuf:protobuf-java",
185 "com.google.protobuf:protobuf-javalite",
186 ],
187 # Don't forget to change this to back to True before submitting your change.
188 fail_if_repin_required = True,
Yun Pengc749f802023-02-21 06:08:30 -0800189 lock_file = "//:maven_install.json",
190 repositories = [
191 "https://repo1.maven.org/maven2",
192 ],
John Catercadbaa52023-10-16 10:16:21 -0700193 strict_visibility = True,
Yun Pengc749f802023-02-21 06:08:30 -0800194)
John Catercadbaa52023-10-16 10:16:21 -0700195
Yun Peng136dae12023-09-08 12:39:10 -0700196# Test only maven dependencies
John Catercadbaa52023-10-16 10:16:21 -0700197[
198 maven.artifact(
199 testonly = True,
200 artifact = artifact,
201 group = group,
202 version = version,
203 )
204 for group, artifact, version in [coord.split(":") for coord in [
Googlerc7028652024-01-31 11:25:17 -0800205 "com.google.guava:guava-testlib:33.0.0-jre",
John Catercadbaa52023-10-16 10:16:21 -0700206 "com.google.jimfs:jimfs:1.2",
207 "com.google.testing.compile:compile-testing:0.18",
Googler67ffe042024-02-08 07:26:13 -0800208 "com.google.testparameterinjector:test-parameter-injector:1.15",
Googler5fc530c2024-02-08 01:41:44 -0800209 "com.google.truth:truth:1.4.0",
210 "com.google.truth.extensions:truth-java8-extension:1.4.0",
211 "com.google.truth.extensions:truth-liteproto-extension:1.4.0",
212 "com.google.truth.extensions:truth-proto-extension:1.4.0",
John Catercadbaa52023-10-16 10:16:21 -0700213 "org.mockito:mockito-core:5.4.0",
214 ]]
215]
216
Yun Peng136dae12023-09-08 12:39:10 -0700217use_repo(maven, "maven", "unpinned_maven")
Yun Peng3d7937e2023-01-10 06:43:02 -0800218
Yun Peng9d308492023-08-08 00:49:00 -0700219java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains")
John Catercadbaa52023-10-16 10:16:21 -0700220use_repo(
221 java_toolchains,
Yun Pengb27ca732023-09-06 02:57:04 -0700222 "local_jdk",
Yun Pengc1f2aff2023-11-07 09:51:02 -0800223 # The following are required for visibility in //src:test_repos
Yun Pengb27ca732023-09-06 02:57:04 -0700224 "remote_java_tools",
Yun Pengb27ca732023-09-06 02:57:04 -0700225 "remote_java_tools_darwin_arm64",
John Catercadbaa52023-10-16 10:16:21 -0700226 "remote_java_tools_darwin_x86_64",
Yun Pengb27ca732023-09-06 02:57:04 -0700227 "remote_java_tools_linux",
228 "remote_java_tools_windows",
229 "remotejdk11_linux",
230 "remotejdk11_linux_aarch64",
231 "remotejdk11_linux_ppc64le",
232 "remotejdk11_linux_s390x",
233 "remotejdk11_macos",
234 "remotejdk11_macos_aarch64",
235 "remotejdk11_win",
236 "remotejdk11_win_arm64",
237 "remotejdk17_linux",
238 "remotejdk17_linux_s390x",
239 "remotejdk17_macos",
240 "remotejdk17_macos_aarch64",
241 "remotejdk17_win",
242 "remotejdk17_win_arm64",
Fabian Meumertzheimf79ca022023-10-19 10:11:18 -0700243 "remotejdk21_linux",
244 "remotejdk21_macos",
245 "remotejdk21_macos_aarch64",
246 "remotejdk21_win",
Googler3c84aa82023-04-11 09:40:31 -0700247)
248
Googlercf140392023-08-01 12:34:14 -0700249# =========================================
Yun Peng9d308492023-08-08 00:49:00 -0700250# Python dependencies
251# =========================================
252
253python = use_extension("@rules_python//python/extensions:python.bzl", "python")
254python.toolchain(python_version = "3.8")
255
256pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
257pip.parse(
258 hub_name = "bazel_pip_dev_deps",
259 python_version = "3.8",
260 requirements_lock = "//:requirements.txt",
261)
262use_repo(pip, "bazel_pip_dev_deps")
263
264# =========================================
Yun Pengb27ca732023-09-06 02:57:04 -0700265# Other Bazel build dependencies
Yun Peng9d308492023-08-08 00:49:00 -0700266# =========================================
267
Yun Pengb27ca732023-09-06 02:57:04 -0700268bazel_build_deps = use_extension("//:extensions.bzl", "bazel_build_deps")
Yun Peng9d308492023-08-08 00:49:00 -0700269use_repo(
Yun Pengb27ca732023-09-06 02:57:04 -0700270 bazel_build_deps,
Yun Peng50c83752023-10-10 18:30:26 -0700271 "bazel_tools_repo_cache",
John Catercadbaa52023-10-16 10:16:21 -0700272 "bootstrap_repo_cache",
John Cater12b62e42023-10-17 04:53:45 -0700273 "debian_bin_deps",
Yun Pengb27ca732023-09-06 02:57:04 -0700274 "debian_cc_deps",
John Cater12b62e42023-10-17 04:53:45 -0700275 "debian_java_deps",
276 "debian_proto_deps",
Yun Pengb27ca732023-09-06 02:57:04 -0700277 "openjdk_linux_aarch64_vanilla",
278 "openjdk_linux_ppc64le_vanilla",
279 "openjdk_linux_s390x_vanilla",
280 "openjdk_linux_vanilla",
281 "openjdk_macos_aarch64_vanilla",
282 "openjdk_macos_x86_64_vanilla",
283 "openjdk_win_arm64_vanilla",
284 "openjdk_win_vanilla",
Yun Pengc1f2aff2023-11-07 09:51:02 -0800285 "workspace_repo_cache",
Yun Pengb27ca732023-09-06 02:57:04 -0700286)
287
288# Required only by `--extra_toolchains=@local_config_cc//:cc-toolchain-arm64_windows` from .bazelrc
289cc_configure = use_extension("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure_extension")
290use_repo(cc_configure, "local_config_cc")
291
Fabian Meumertzheim095ad382024-01-10 03:39:36 -0800292gvm = use_extension("@rules_graalvm//:extensions.bzl", "graalvm")
293gvm.graalvm(
294 name = "graalvm",
295 distribution = "ce",
Googler11498b52024-03-06 15:27:20 -0800296 java_version = "21",
297 version = "21.0.2",
Fabian Meumertzheim095ad382024-01-10 03:39:36 -0800298)
299use_repo(gvm, "graalvm_toolchains")
300
Yun Pengb27ca732023-09-06 02:57:04 -0700301# =========================================
302# Other Bazel testing dependencies
303# =========================================
304
305bazel_test_deps = use_extension("//:extensions.bzl", "bazel_test_deps")
306use_repo(
307 bazel_test_deps,
John Catercadbaa52023-10-16 10:16:21 -0700308 "bazelci_rules",
Yun Peng9d308492023-08-08 00:49:00 -0700309 "local_bazel_source_list",
310 "local_config_winsdk",
Yun Peng9d308492023-08-08 00:49:00 -0700311)
312
313bazel_rbe_deps = use_extension("//:rbe_extension.bzl", "bazel_rbe_deps")
Googler40824e12024-03-11 02:38:48 -0700314use_repo(bazel_rbe_deps, "rbe_ubuntu2004")
Yun Peng9d308492023-08-08 00:49:00 -0700315
Yun Pengb27ca732023-09-06 02:57:04 -0700316remote_coverage_tools_extension = use_extension("//tools/test:extensions.bzl", "remote_coverage_tools_extension")
317use_repo(remote_coverage_tools_extension, "remote_coverage_tools")
318
Yun Peng9d308492023-08-08 00:49:00 -0700319# =========================================
Yun Pengb27ca732023-09-06 02:57:04 -0700320# Register platforms & toolchains
321# =========================================
322
323register_execution_platforms("//:default_host_platform")
324
325register_toolchains("@bazel_tools//tools/python:autodetecting_toolchain")
326
327register_toolchains("@local_config_winsdk//:all")
328
329register_toolchains("//src/main/res:empty_rc_toolchain")
330
Fabian Meumertzheim095ad382024-01-10 03:39:36 -0800331register_toolchains("@graalvm_toolchains//:gvm")
332
Yun Pengb27ca732023-09-06 02:57:04 -0700333# =========================================
334# Android tools dependencies
Googlercf140392023-08-01 12:34:14 -0700335# =========================================
336
337maven_android = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
338maven_android.install(
339 name = "maven_android",
Yun Peng136dae12023-09-08 12:39:10 -0700340 artifacts = [
341 "androidx.databinding:databinding-compiler:3.4.0-alpha10",
342 "com.android.tools.build:builder:7.1.3",
343 "com.android.tools.build:manifest-merger:30.1.3",
344 "com.android.tools:sdk-common:30.1.3",
345 "com.android.tools:annotations:30.1.3",
346 "com.android.tools.layoutlib:layoutlib-api:30.1.3",
347 "com.android.tools:common:30.1.3",
348 "com.android.tools:repository:30.1.3",
349 ],
350 # Don't forget to change this to back to True before submitting your change.
351 fail_if_repin_required = True,
Googlercf140392023-08-01 12:34:14 -0700352 lock_file = "//src/tools/android:maven_android_install.json",
353 repositories = [
354 "https://dl.google.com/android/maven2",
355 "https://repo1.maven.org/maven2",
356 ],
357)
Yun Peng136dae12023-09-08 12:39:10 -0700358use_repo(maven_android, "maven_android", "unpinned_maven_android")
Googlercf140392023-08-01 12:34:14 -0700359
360bazel_android_deps = use_extension("//:extensions.bzl", "bazel_android_deps")
Yun Pengb27ca732023-09-06 02:57:04 -0700361use_repo(bazel_android_deps, "desugar_jdk_libs")
362
363remote_android_extensions = use_extension("//tools/android:android_extensions.bzl", "remote_android_tools_extensions")
364use_repo(remote_android_extensions, "android_gmaven_r8", "android_tools")
Googler7f749e92024-02-29 14:24:49 -0800365
366android_sdk_proxy_extensions = use_extension("//tools/android:android_extensions.bzl", "android_sdk_proxy_extensions")
367use_repo(android_sdk_proxy_extensions, "android_external")