xref: /aosp_15_r20/external/dagger2/BUILD (revision f585d8a307d0621d6060bd7e80091fdcbf94fe27)
1# Copyright (C) 2017 The Dagger Authors.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15load("@rules_java//java:defs.bzl", "java_library")
16load("@google_bazel_common//tools/javadoc:javadoc.bzl", "javadoc_library")
17load("@google_bazel_common//tools/jarjar:jarjar.bzl", "jarjar_library")
18load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "define_kt_toolchain")
19
20package(default_visibility = ["//visibility:public"])
21
22define_kt_toolchain(
23    name = "kotlin_toolchain",
24    api_version = "1.4",
25    jvm_target = "1.8",
26    language_version = "1.4",
27)
28
29package_group(
30    name = "src",
31    packages = ["//..."],
32)
33
34java_library(
35    name = "dagger_with_compiler",
36    exported_plugins = ["//java/dagger/internal/codegen:component-codegen"],
37    exports = ["//java/dagger:core"],
38)
39
40java_library(
41    name = "producers_with_compiler",
42    exports = [
43        ":dagger_with_compiler",
44        "//java/dagger/producers",
45    ],
46)
47
48java_library(
49    name = "spi",
50    exports = ["//java/dagger/spi"],
51)
52
53java_library(
54    name = "compiler_internals",
55    exports = [
56        "//java/dagger/internal/codegen:processor",
57        "//java/dagger/internal/codegen/base",
58        "//java/dagger/internal/codegen/binding",
59        "//java/dagger/internal/codegen/validation",
60        "//java/dagger/internal/codegen/writing",
61    ],
62)
63
64android_library(
65    name = "android",
66    exported_plugins = ["//java/dagger/android/processor:plugin"],
67    exports = ["//java/dagger/android"],
68)
69
70android_library(
71    name = "android-support",
72    exports = [
73        ":android",
74        "//java/dagger/android/support",
75    ],
76)
77
78jarjar_library(
79    name = "shaded_grpc_server_processor",
80    jars = [
81        "//java/dagger/grpc/server/processor",
82        "//third_party/java/auto:common",
83    ],
84    rules = [
85        "rule com.google.auto.common.** dagger.grpc.shaded.auto.common.@1",
86    ],
87)
88
89android_library(
90    name = "android_local_test_exports",
91    exports = [
92        # TODO(bcorso): see if we can remove jsr250 dep from autovalue to prevent this.
93        "@maven//:javax_annotation_javax_annotation_api",  # For @Generated
94        "@maven//:org_robolectric_shadows_framework",  # For ActivityController
95        "@maven//:androidx_lifecycle_lifecycle_common",  # For Lifecycle.State
96        "@maven//:androidx_activity_activity",  # For ComponentActivity
97        "@maven//:androidx_test_core",  # For ApplicationProvider
98        "@maven//:androidx_test_ext_junit",
99        "@maven//:org_robolectric_annotations",
100        "@maven//:org_robolectric_robolectric",
101        "@robolectric//bazel:android-all",
102    ],
103)
104
105# coalesced javadocs used for the gh-pages site
106javadoc_library(
107    name = "user-docs",
108    testonly = 1,
109    srcs = [
110        "//java/dagger:javadoc-srcs",
111        "//java/dagger/android:android-srcs",
112        "//java/dagger/android/support:support-srcs",
113        "//java/dagger/grpc/server:javadoc-srcs",
114        "//java/dagger/grpc/server/processor:javadoc-srcs",
115        "//java/dagger/hilt:javadoc-srcs",
116        "//java/dagger/producers:producers-srcs",
117        "//java/dagger/spi:spi-srcs",
118    ],
119    android_api_level = 32,
120    # TODO(ronshapiro): figure out how to specify the version number for release builds
121    doctitle = "Dagger Dependency Injection API",
122    exclude_packages = [
123        "dagger.hilt.android.internal",
124        "dagger.hilt.internal",
125        "dagger.internal",
126        "dagger.producers.internal",
127        "dagger.producers.monitoring.internal",
128    ],
129    root_packages = ["dagger"],
130    deps = [
131        "//java/dagger:core",
132        "//java/dagger/android",
133        "//java/dagger/android/support",
134        "//java/dagger/grpc/server",
135        "//java/dagger/grpc/server/processor",
136        "//java/dagger/hilt/android:artifact-lib",
137        "//java/dagger/hilt/android/testing:artifact-lib",
138        "//java/dagger/producers",
139        "//java/dagger/spi",
140    ],
141)
142