xref: /aosp_15_r20/external/dagger2/WORKSPACE (revision f585d8a307d0621d6060bd7e80091fdcbf94fe27)
1*f585d8a3SJacky Wang# Copyright (C) 2017 The Dagger Authors.
2*f585d8a3SJacky Wang#
3*f585d8a3SJacky Wang# Licensed under the Apache License, Version 2.0 (the "License");
4*f585d8a3SJacky Wang# you may not use this file except in compliance with the License.
5*f585d8a3SJacky Wang# You may obtain a copy of the License at
6*f585d8a3SJacky Wang#
7*f585d8a3SJacky Wang# http://www.apache.org/licenses/LICENSE-2.0
8*f585d8a3SJacky Wang#
9*f585d8a3SJacky Wang# Unless required by applicable law or agreed to in writing, software
10*f585d8a3SJacky Wang# distributed under the License is distributed on an "AS IS" BASIS,
11*f585d8a3SJacky Wang# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*f585d8a3SJacky Wang# See the License for the specific language governing permissions and
13*f585d8a3SJacky Wang# limitations under the License.
14*f585d8a3SJacky Wang
15*f585d8a3SJacky Wangload("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
16*f585d8a3SJacky Wang
17*f585d8a3SJacky Wang#############################
18*f585d8a3SJacky Wang# Load nested repository
19*f585d8a3SJacky Wang#############################
20*f585d8a3SJacky Wang
21*f585d8a3SJacky Wang# Declare the nested workspace so that the top-level workspace doesn't try to
22*f585d8a3SJacky Wang# traverse it when calling `bazel build //...`
23*f585d8a3SJacky Wanglocal_repository(
24*f585d8a3SJacky Wang    name = "examples_bazel",
25*f585d8a3SJacky Wang    path = "examples/bazel",
26*f585d8a3SJacky Wang)
27*f585d8a3SJacky Wang
28*f585d8a3SJacky Wang#############################
29*f585d8a3SJacky Wang# Load Bazel Skylib rules
30*f585d8a3SJacky Wang#############################
31*f585d8a3SJacky Wang
32*f585d8a3SJacky WangBAZEL_SKYLIB_VERSION = "1.5.0"
33*f585d8a3SJacky Wang
34*f585d8a3SJacky WangBAZEL_SKYLIB_SHA = "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94"
35*f585d8a3SJacky Wang
36*f585d8a3SJacky Wanghttp_archive(
37*f585d8a3SJacky Wang    name = "bazel_skylib",
38*f585d8a3SJacky Wang    sha256 = BAZEL_SKYLIB_SHA,
39*f585d8a3SJacky Wang    urls = [
40*f585d8a3SJacky Wang        "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/%s/bazel-skylib-%s.tar.gz" % (BAZEL_SKYLIB_VERSION, BAZEL_SKYLIB_VERSION),
41*f585d8a3SJacky Wang        "https://github.com/bazelbuild/bazel-skylib/releases/download/%s/bazel-skylib-%s.tar.gz" % (BAZEL_SKYLIB_VERSION, BAZEL_SKYLIB_VERSION),
42*f585d8a3SJacky Wang    ],
43*f585d8a3SJacky Wang)
44*f585d8a3SJacky Wang
45*f585d8a3SJacky Wangload("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
46*f585d8a3SJacky Wang
47*f585d8a3SJacky Wangbazel_skylib_workspace()
48*f585d8a3SJacky Wang
49*f585d8a3SJacky Wang####################################################
50*f585d8a3SJacky Wang# Load Protobuf repository (needed by bazel-common)
51*f585d8a3SJacky Wang####################################################
52*f585d8a3SJacky Wang
53*f585d8a3SJacky Wanghttp_archive(
54*f585d8a3SJacky Wang    name = "rules_proto",
55*f585d8a3SJacky Wang    # output from `sha256sum` on the downloaded tar.gz file
56*f585d8a3SJacky Wang    sha256 = "66bfdf8782796239d3875d37e7de19b1d94301e8972b3cbd2446b332429b4df1",
57*f585d8a3SJacky Wang    strip_prefix = "rules_proto-4.0.0",
58*f585d8a3SJacky Wang    urls = [
59*f585d8a3SJacky Wang        "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/refs/tags/4.0.0.tar.gz",
60*f585d8a3SJacky Wang        "https://github.com/bazelbuild/rules_proto/archive/refs/tags/4.0.0.tar.gz",
61*f585d8a3SJacky Wang    ],
62*f585d8a3SJacky Wang)
63*f585d8a3SJacky Wang
64*f585d8a3SJacky Wangload("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
65*f585d8a3SJacky Wang
66*f585d8a3SJacky Wangrules_proto_dependencies()
67*f585d8a3SJacky Wang
68*f585d8a3SJacky Wangrules_proto_toolchains()
69*f585d8a3SJacky Wang
70*f585d8a3SJacky Wang#############################
71*f585d8a3SJacky Wang# Load Bazel-Common repository
72*f585d8a3SJacky Wang#############################
73*f585d8a3SJacky Wang
74*f585d8a3SJacky Wanghttp_archive(
75*f585d8a3SJacky Wang    name = "google_bazel_common",
76*f585d8a3SJacky Wang    sha256 = "82a49fb27c01ad184db948747733159022f9464fc2e62da996fa700594d9ea42",
77*f585d8a3SJacky Wang    strip_prefix = "bazel-common-2a6b6406e12208e02b2060df0631fb30919080f3",
78*f585d8a3SJacky Wang    urls = ["https://github.com/google/bazel-common/archive/2a6b6406e12208e02b2060df0631fb30919080f3.zip"],
79*f585d8a3SJacky Wang)
80*f585d8a3SJacky Wang
81*f585d8a3SJacky Wangload("@google_bazel_common//:workspace_defs.bzl", "google_common_workspace_rules")
82*f585d8a3SJacky Wang
83*f585d8a3SJacky Wanggoogle_common_workspace_rules()
84*f585d8a3SJacky Wang
85*f585d8a3SJacky Wang#############################
86*f585d8a3SJacky Wang# Load Protobuf dependencies
87*f585d8a3SJacky Wang#############################
88*f585d8a3SJacky Wang
89*f585d8a3SJacky Wang# rules_python and zlib are required by protobuf.
90*f585d8a3SJacky Wang# TODO(ronshapiro): Figure out if zlib is in fact necessary, or if proto can depend on the
91*f585d8a3SJacky Wang# @bazel_tools library directly. See discussion in
92*f585d8a3SJacky Wang# https://github.com/protocolbuffers/protobuf/pull/5389#issuecomment-481785716
93*f585d8a3SJacky Wang# TODO(cpovirk): Should we eventually get rules_python from "Bazel Federation?"
94*f585d8a3SJacky Wang# https://github.com/bazelbuild/rules_python#getting-started
95*f585d8a3SJacky Wang
96*f585d8a3SJacky Wanghttp_archive(
97*f585d8a3SJacky Wang    name = "rules_python",
98*f585d8a3SJacky Wang    sha256 = "e5470e92a18aa51830db99a4d9c492cc613761d5bdb7131c04bd92b9834380f6",
99*f585d8a3SJacky Wang    strip_prefix = "rules_python-4b84ad270387a7c439ebdccfd530e2339601ef27",
100*f585d8a3SJacky Wang    urls = ["https://github.com/bazelbuild/rules_python/archive/4b84ad270387a7c439ebdccfd530e2339601ef27.tar.gz"],
101*f585d8a3SJacky Wang)
102*f585d8a3SJacky Wang
103*f585d8a3SJacky Wanghttp_archive(
104*f585d8a3SJacky Wang    name = "zlib",
105*f585d8a3SJacky Wang    build_file = "@com_google_protobuf//:third_party/zlib.BUILD",
106*f585d8a3SJacky Wang    sha256 = "629380c90a77b964d896ed37163f5c3a34f6e6d897311f1df2a7016355c45eff",
107*f585d8a3SJacky Wang    strip_prefix = "zlib-1.2.11",
108*f585d8a3SJacky Wang    urls = ["https://github.com/madler/zlib/archive/v1.2.11.tar.gz"],
109*f585d8a3SJacky Wang)
110*f585d8a3SJacky Wang
111*f585d8a3SJacky Wang#############################
112*f585d8a3SJacky Wang# Load Robolectric repository
113*f585d8a3SJacky Wang#############################
114*f585d8a3SJacky Wang
115*f585d8a3SJacky WangROBOLECTRIC_VERSION = "4.4"
116*f585d8a3SJacky Wang
117*f585d8a3SJacky Wanghttp_archive(
118*f585d8a3SJacky Wang    name = "robolectric",
119*f585d8a3SJacky Wang    sha256 = "d4f2eb078a51f4e534ebf5e18b6cd4646d05eae9b362ac40b93831bdf46112c7",
120*f585d8a3SJacky Wang    strip_prefix = "robolectric-bazel-%s" % ROBOLECTRIC_VERSION,
121*f585d8a3SJacky Wang    urls = ["https://github.com/robolectric/robolectric-bazel/archive/%s.tar.gz" % ROBOLECTRIC_VERSION],
122*f585d8a3SJacky Wang)
123*f585d8a3SJacky Wang
124*f585d8a3SJacky Wangload("@robolectric//bazel:robolectric.bzl", "robolectric_repositories")
125*f585d8a3SJacky Wang
126*f585d8a3SJacky Wangrobolectric_repositories()
127*f585d8a3SJacky Wang
128*f585d8a3SJacky Wang#############################
129*f585d8a3SJacky Wang# Load Kotlin repository
130*f585d8a3SJacky Wang#############################
131*f585d8a3SJacky Wang
132*f585d8a3SJacky WangRULES_KOTLIN_TAG = "v1.8"
133*f585d8a3SJacky Wang
134*f585d8a3SJacky WangRULES_KOTLIN_SHA = "01293740a16e474669aba5b5a1fe3d368de5832442f164e4fbfc566815a8bc3a"
135*f585d8a3SJacky Wang
136*f585d8a3SJacky Wanghttp_archive(
137*f585d8a3SJacky Wang    name = "io_bazel_rules_kotlin",
138*f585d8a3SJacky Wang    sha256 = RULES_KOTLIN_SHA,
139*f585d8a3SJacky Wang    urls = ["https://github.com/bazelbuild/rules_kotlin/releases/download/%s/rules_kotlin_release.tgz" % RULES_KOTLIN_TAG],
140*f585d8a3SJacky Wang)
141*f585d8a3SJacky Wang
142*f585d8a3SJacky Wangload("@io_bazel_rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories", "kotlinc_version")
143*f585d8a3SJacky Wang
144*f585d8a3SJacky WangKOTLIN_VERSION = "1.9.20"
145*f585d8a3SJacky Wang
146*f585d8a3SJacky Wang# Get from https://github.com/JetBrains/kotlin/releases/
147*f585d8a3SJacky WangKOTLINC_RELEASE_SHA = "15a8a2825b74ccf6c44e04e97672db802d2df75ce2fbb63ef0539bf3ae5006f0"
148*f585d8a3SJacky Wang
149*f585d8a3SJacky Wangkotlin_repositories(
150*f585d8a3SJacky Wang    compiler_release = kotlinc_version(
151*f585d8a3SJacky Wang        release = KOTLIN_VERSION,
152*f585d8a3SJacky Wang        sha256 = KOTLINC_RELEASE_SHA,
153*f585d8a3SJacky Wang    ),
154*f585d8a3SJacky Wang)
155*f585d8a3SJacky Wang
156*f585d8a3SJacky Wangload("@io_bazel_rules_kotlin//kotlin:core.bzl", "kt_register_toolchains")
157*f585d8a3SJacky Wang
158*f585d8a3SJacky Wangkt_register_toolchains()
159*f585d8a3SJacky Wang
160*f585d8a3SJacky Wang#############################
161*f585d8a3SJacky Wang# Load Maven dependencies
162*f585d8a3SJacky Wang#############################
163*f585d8a3SJacky Wang
164*f585d8a3SJacky WangRULES_JVM_EXTERNAL_TAG = "4.5"
165*f585d8a3SJacky Wang
166*f585d8a3SJacky WangRULES_JVM_EXTERNAL_SHA = "b17d7388feb9bfa7f2fa09031b32707df529f26c91ab9e5d909eb1676badd9a6"
167*f585d8a3SJacky Wang
168*f585d8a3SJacky Wanghttp_archive(
169*f585d8a3SJacky Wang    name = "rules_jvm_external",
170*f585d8a3SJacky Wang    sha256 = RULES_JVM_EXTERNAL_SHA,
171*f585d8a3SJacky Wang    strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
172*f585d8a3SJacky Wang    url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
173*f585d8a3SJacky Wang)
174*f585d8a3SJacky Wang
175*f585d8a3SJacky Wangload("@rules_jvm_external//:defs.bzl", "maven_install")
176*f585d8a3SJacky Wang
177*f585d8a3SJacky WangANDROID_LINT_VERSION = "30.1.0"
178*f585d8a3SJacky Wang
179*f585d8a3SJacky WangAUTO_COMMON_VERSION = "1.2.1"
180*f585d8a3SJacky Wang
181*f585d8a3SJacky Wang# NOTE(bcorso): Even though we set the version here, our Guava version in
182*f585d8a3SJacky Wang#  processor code will use whatever version is built into JavaBuilder, which is
183*f585d8a3SJacky Wang#  tied to the version of Bazel we're using.
184*f585d8a3SJacky WangGUAVA_VERSION = "33.0.0"
185*f585d8a3SJacky Wang
186*f585d8a3SJacky WangGRPC_VERSION = "1.2.0"
187*f585d8a3SJacky Wang
188*f585d8a3SJacky WangINCAP_VERSION = "0.2"
189*f585d8a3SJacky Wang
190*f585d8a3SJacky WangBYTE_BUDDY_VERSION = "1.9.10"
191*f585d8a3SJacky Wang
192*f585d8a3SJacky WangCHECKER_FRAMEWORK_VERSION = "2.5.3"
193*f585d8a3SJacky Wang
194*f585d8a3SJacky WangERROR_PRONE_VERSION = "2.14.0"
195*f585d8a3SJacky Wang
196*f585d8a3SJacky WangKSP_VERSION = KOTLIN_VERSION + "-1.0.14"
197*f585d8a3SJacky Wang
198*f585d8a3SJacky Wangmaven_install(
199*f585d8a3SJacky Wang    artifacts = [
200*f585d8a3SJacky Wang        "androidx.annotation:annotation:1.1.0",
201*f585d8a3SJacky Wang        "androidx.annotation:annotation-experimental:1.3.1",
202*f585d8a3SJacky Wang        "androidx.appcompat:appcompat:1.3.1",
203*f585d8a3SJacky Wang        "androidx.activity:activity:1.5.1",
204*f585d8a3SJacky Wang        "androidx.fragment:fragment:1.5.1",
205*f585d8a3SJacky Wang        "androidx.lifecycle:lifecycle-common:2.5.1",
206*f585d8a3SJacky Wang        "androidx.lifecycle:lifecycle-viewmodel:2.5.1",
207*f585d8a3SJacky Wang        "androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1",
208*f585d8a3SJacky Wang        "androidx.multidex:multidex:2.0.1",
209*f585d8a3SJacky Wang        "androidx.navigation:navigation-common:2.5.1",
210*f585d8a3SJacky Wang        "androidx.navigation:navigation-fragment:2.5.1",
211*f585d8a3SJacky Wang        "androidx.navigation:navigation-runtime:2.5.1",
212*f585d8a3SJacky Wang        "androidx.savedstate:savedstate:1.2.0",
213*f585d8a3SJacky Wang        "androidx.test:monitor:1.4.0",
214*f585d8a3SJacky Wang        "androidx.test:core:1.4.0",
215*f585d8a3SJacky Wang        "androidx.test.ext:junit:1.1.3",
216*f585d8a3SJacky Wang        "com.android.support:appcompat-v7:25.0.0",
217*f585d8a3SJacky Wang        "com.android.support:support-annotations:25.0.0",
218*f585d8a3SJacky Wang        "com.android.support:support-fragment:25.0.0",
219*f585d8a3SJacky Wang        "com.android.tools.external.org-jetbrains:uast:%s" % ANDROID_LINT_VERSION,
220*f585d8a3SJacky Wang        "com.android.tools.external.com-intellij:intellij-core:%s" % ANDROID_LINT_VERSION,
221*f585d8a3SJacky Wang        "com.android.tools.external.com-intellij:kotlin-compiler:%s" % ANDROID_LINT_VERSION,
222*f585d8a3SJacky Wang        "com.android.tools.lint:lint:%s" % ANDROID_LINT_VERSION,
223*f585d8a3SJacky Wang        "com.android.tools.lint:lint-api:%s" % ANDROID_LINT_VERSION,
224*f585d8a3SJacky Wang        "com.android.tools.lint:lint-checks:%s" % ANDROID_LINT_VERSION,
225*f585d8a3SJacky Wang        "com.android.tools.lint:lint-tests:%s" % ANDROID_LINT_VERSION,
226*f585d8a3SJacky Wang        "com.android.tools:testutils:%s" % ANDROID_LINT_VERSION,
227*f585d8a3SJacky Wang        "com.google.auto:auto-common:%s" % AUTO_COMMON_VERSION,
228*f585d8a3SJacky Wang        "com.google.auto.factory:auto-factory:1.0",
229*f585d8a3SJacky Wang        "com.google.auto.service:auto-service:1.0",
230*f585d8a3SJacky Wang        "com.google.auto.service:auto-service-annotations:1.0",
231*f585d8a3SJacky Wang        "com.google.auto.value:auto-value:1.9",
232*f585d8a3SJacky Wang        "com.google.auto.value:auto-value-annotations:1.9",
233*f585d8a3SJacky Wang        "com.google.code.findbugs:jsr305:3.0.1",
234*f585d8a3SJacky Wang        "com.google.devtools.ksp:symbol-processing:%s" % KSP_VERSION,
235*f585d8a3SJacky Wang        "com.google.devtools.ksp:symbol-processing-api:%s" % KSP_VERSION,
236*f585d8a3SJacky Wang        "com.google.errorprone:error_prone_annotation:%s" % ERROR_PRONE_VERSION,
237*f585d8a3SJacky Wang        "com.google.errorprone:error_prone_annotations:%s" % ERROR_PRONE_VERSION,
238*f585d8a3SJacky Wang        "com.google.errorprone:error_prone_check_api:%s" % ERROR_PRONE_VERSION,
239*f585d8a3SJacky Wang        "com.google.googlejavaformat:google-java-format:1.5",
240*f585d8a3SJacky Wang        "com.google.guava:guava:%s-jre" % GUAVA_VERSION,
241*f585d8a3SJacky Wang        "com.google.guava:guava-testlib:%s-jre" % GUAVA_VERSION,
242*f585d8a3SJacky Wang        "com.google.guava:failureaccess:1.0.1",
243*f585d8a3SJacky Wang        "com.google.guava:guava-beta-checker:1.0",
244*f585d8a3SJacky Wang        "com.google.protobuf:protobuf-java:3.7.0",
245*f585d8a3SJacky Wang        "com.google.testing.compile:compile-testing:0.18",
246*f585d8a3SJacky Wang        "com.google.truth:truth:1.4.0",
247*f585d8a3SJacky Wang        "com.squareup:javapoet:1.13.0",
248*f585d8a3SJacky Wang        "com.squareup:kotlinpoet:1.11.0",
249*f585d8a3SJacky Wang        "io.github.java-diff-utils:java-diff-utils:4.11",
250*f585d8a3SJacky Wang        "io.grpc:grpc-context:%s" % GRPC_VERSION,
251*f585d8a3SJacky Wang        "io.grpc:grpc-core:%s" % GRPC_VERSION,
252*f585d8a3SJacky Wang        "io.grpc:grpc-netty:%s" % GRPC_VERSION,
253*f585d8a3SJacky Wang        "io.grpc:grpc-protobuf:%s" % GRPC_VERSION,
254*f585d8a3SJacky Wang        "jakarta.inject:jakarta.inject-api:2.0.1",
255*f585d8a3SJacky Wang        "javax.annotation:javax.annotation-api:1.3.2",
256*f585d8a3SJacky Wang        "javax.inject:javax.inject:1",
257*f585d8a3SJacky Wang        "javax.inject:javax.inject-tck:1",
258*f585d8a3SJacky Wang        "junit:junit:4.13",
259*f585d8a3SJacky Wang        "net.bytebuddy:byte-buddy:%s" % BYTE_BUDDY_VERSION,
260*f585d8a3SJacky Wang        "net.bytebuddy:byte-buddy-agent:%s" % BYTE_BUDDY_VERSION,
261*f585d8a3SJacky Wang        "net.ltgt.gradle.incap:incap:%s" % INCAP_VERSION,
262*f585d8a3SJacky Wang        "net.ltgt.gradle.incap:incap-processor:%s" % INCAP_VERSION,
263*f585d8a3SJacky Wang        "org.checkerframework:checker-compat-qual:%s" % CHECKER_FRAMEWORK_VERSION,
264*f585d8a3SJacky Wang        "org.checkerframework:dataflow:%s" % CHECKER_FRAMEWORK_VERSION,
265*f585d8a3SJacky Wang        "org.checkerframework:javacutil:%s" % CHECKER_FRAMEWORK_VERSION,
266*f585d8a3SJacky Wang        "org.hamcrest:hamcrest-core:1.3",
267*f585d8a3SJacky Wang        "org.jetbrains.kotlin:kotlin-annotation-processing-embeddable:%s" % KOTLIN_VERSION,
268*f585d8a3SJacky Wang        "org.jetbrains.kotlin:kotlin-compiler-embeddable:%s" % KOTLIN_VERSION,
269*f585d8a3SJacky Wang        "org.jetbrains.kotlin:kotlin-daemon-embeddable:%s" % KOTLIN_VERSION,
270*f585d8a3SJacky Wang        "org.jetbrains.kotlin:kotlin-stdlib:%s" % KOTLIN_VERSION,
271*f585d8a3SJacky Wang        "org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.6.2",
272*f585d8a3SJacky Wang        "org.jspecify:jspecify:0.3.0",
273*f585d8a3SJacky Wang        "org.mockito:mockito-core:2.28.2",
274*f585d8a3SJacky Wang        "org.objenesis:objenesis:1.0",
275*f585d8a3SJacky Wang        "org.robolectric:robolectric:4.4",
276*f585d8a3SJacky Wang        "org.robolectric:shadows-framework:4.4",  # For ActivityController
277*f585d8a3SJacky Wang    ],
278*f585d8a3SJacky Wang    repositories = [
279*f585d8a3SJacky Wang        "https://repo1.maven.org/maven2",
280*f585d8a3SJacky Wang        "https://maven.google.com",
281*f585d8a3SJacky Wang    ],
282*f585d8a3SJacky Wang)
283