xref: /aosp_15_r20/external/dagger2/java/dagger/hilt/android/BUILD (revision f585d8a307d0621d6060bd7e80091fdcbf94fe27)
1# Copyright (C) 2020 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
15# Description:
16#   A library based on Hilt that provides standard components and automated injection for Android.
17load("//:build_defs.bzl", "POM_VERSION")
18load("//tools:bazel_compat.bzl", "compat_kt_android_library")
19load("//tools:maven.bzl", "gen_maven_artifact")
20
21package(default_visibility = ["//:src"])
22
23android_library(
24    name = "android_entry_point",
25    srcs = [
26        "AndroidEntryPoint.java",
27        "WithFragmentBindings.java",
28    ],
29    exported_plugins = [
30        "//java/dagger/hilt/android/processor/internal/androidentrypoint:plugin",
31    ],
32    exports = [
33        "//java/dagger/hilt:install_in",
34        "//java/dagger/hilt/android/components",
35        "//java/dagger/hilt/android/flags:fragment_get_context_fix",
36        "//java/dagger/hilt/android/internal",
37        "//java/dagger/hilt/android/internal/builders",
38        "//java/dagger/hilt/android/internal/managers",
39        "//java/dagger/hilt/android/internal/managers:component_supplier",
40        "//java/dagger/hilt/android/internal/modules",
41        "//java/dagger/hilt/android/lifecycle:hilt_view_model",
42        "//java/dagger/hilt/android/lifecycle:hilt_view_model_extensions",
43        "//java/dagger/hilt/codegen:originating_element",
44        "//java/dagger/hilt/internal:component_entry_point",
45        "//java/dagger/hilt/internal:component_manager",
46        "//java/dagger/hilt/internal:generated_entry_point",
47        "//java/dagger/hilt/internal:preconditions",
48        "@maven//:androidx_activity_activity",
49        "@maven//:androidx_annotation_annotation",
50        "@maven//:androidx_fragment_fragment",
51        "@maven//:androidx_lifecycle_lifecycle_common",
52        "@maven//:androidx_lifecycle_lifecycle_viewmodel",
53        "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate",
54    ],
55    deps = [
56        ":package_info",
57        "//java/dagger/hilt:generates_root_input",
58    ],
59)
60
61android_library(
62    name = "hilt_android_app",
63    srcs = ["HiltAndroidApp.java"],
64    exported_plugins = [
65        "//java/dagger/hilt/android/processor/internal/androidentrypoint:plugin",
66        "//java/dagger/hilt/android/processor/internal/viewmodel:validation_plugin",
67        "//java/dagger/hilt/processor/internal/root:component_tree_deps_plugin",
68        "//java/dagger/hilt/processor/internal/root:root_plugin",
69    ],
70    exports = [
71        ":activity_retained_lifecycle",
72        "//:dagger_with_compiler",
73        "//java/dagger/hilt:install_in",
74        "//java/dagger/hilt/android/components",
75        "//java/dagger/hilt/android/internal/builders",
76        "//java/dagger/hilt/android/internal/legacy:aggregated_element_proxy",
77        "//java/dagger/hilt/android/internal/managers",
78        "//java/dagger/hilt/android/internal/managers:component_supplier",
79        "//java/dagger/hilt/android/internal/modules",
80        "//java/dagger/hilt/android/scopes",
81        "//java/dagger/hilt/codegen:originating_element",
82        "//java/dagger/hilt/internal:component_manager",
83        "//java/dagger/hilt/internal:generated_component",
84        "//java/dagger/hilt/internal:generated_entry_point",
85        "//java/dagger/hilt/internal/aggregatedroot",
86        "//java/dagger/hilt/internal/componenttreedeps",
87        "//java/dagger/hilt/internal/processedrootsentinel",
88        "//java/dagger/hilt/migration:disable_install_in_check",
89        "@maven//:androidx_activity_activity",
90        "@maven//:androidx_annotation_annotation",
91        "@maven//:androidx_fragment_fragment",
92        "@maven//:androidx_lifecycle_lifecycle_common",
93        "@maven//:androidx_lifecycle_lifecycle_viewmodel",
94        "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate",
95    ],
96    deps = [
97        ":package_info",
98        "//java/dagger/hilt:generates_root_input",
99    ],
100)
101
102android_library(
103    name = "activity_retained_lifecycle",
104    srcs = [
105        "ActivityRetainedLifecycle.java",
106    ],
107    deps = [
108        ":package_info",
109        "//java/dagger/hilt/android/lifecycle:retained_lifecycle",
110    ],
111)
112
113android_library(
114    name = "view_model_lifecycle",
115    srcs = [
116        "ViewModelLifecycle.java",
117    ],
118    deps = [
119        ":package_info",
120        "//java/dagger/hilt/android/lifecycle:retained_lifecycle",
121    ],
122)
123
124android_library(
125    name = "early_entry_point",
126    srcs = [
127        "EarlyEntryPoint.java",
128        "EarlyEntryPoints.java",
129    ],
130    exported_plugins = [
131        "//java/dagger/hilt/processor/internal/aggregateddeps:plugin",
132        "//java/dagger/hilt/processor/internal/earlyentrypoint:processor",
133    ],
134    proguard_specs = ["proguard-rules.pro"],
135    exports = [
136        "//java/dagger/hilt/android/internal/earlyentrypoint",
137    ],
138    deps = [
139        ":package_info",
140        "//:dagger_with_compiler",
141        "//java/dagger/hilt:entry_point",
142        "//java/dagger/hilt/android/internal",
143        "//java/dagger/hilt/internal:component_manager",
144        "//java/dagger/hilt/internal:preconditions",
145        "//java/dagger/hilt/internal:test_singleton_component_manager",
146        "//third_party/java/jsr305_annotations",
147    ],
148)
149
150android_library(
151    name = "unstable_api",
152    srcs = ["UnstableApi.java"],
153    deps = [
154        "@maven//:androidx_annotation_annotation_experimental",
155    ],
156)
157
158java_library(
159    name = "package_info",
160    srcs = ["package-info.java"],
161    deps = [
162        "//third_party/java/jsr305_annotations",
163    ],
164)
165
166android_library(
167    name = "artifact-lib",
168    tags = ["maven_coordinates=com.google.dagger:hilt-android:" + POM_VERSION],
169    exports = [
170        ":android_entry_point",
171        ":early_entry_point",
172        ":entry_point_accessors",
173        ":hilt_android_app",
174        ":package_info",
175        ":unstable_api",
176        "//java/dagger/hilt:artifact-core-lib",
177        "//java/dagger/hilt/android/migration:custom_inject",
178        "//java/dagger/hilt/android/migration:optional_inject",
179        "//java/dagger/lint:lint-android-artifact-lib",
180    ],
181)
182
183gen_maven_artifact(
184    name = "artifact",
185    artifact_coordinates = "com.google.dagger:hilt-android:" + POM_VERSION,
186    artifact_name = "Hilt Android",
187    artifact_target = ":artifact-lib",
188    artifact_target_libs = [
189        ":entry_point_accessors",
190        "//java/dagger/hilt/android:activity_retained_lifecycle",
191        "//java/dagger/hilt/android:android_entry_point",
192        "//java/dagger/hilt/android:hilt_android_app",
193        "//java/dagger/hilt/android:unstable_api",
194        "//java/dagger/hilt/android:early_entry_point",
195        "//java/dagger/hilt/android:package_info",
196        "//java/dagger/hilt/android:view_model_lifecycle",
197        "//java/dagger/hilt/android/components",
198        "//java/dagger/hilt/android/components:package_info",
199        "//java/dagger/hilt/android/flags:fragment_get_context_fix",
200        "//java/dagger/hilt/android/internal",
201        "//java/dagger/hilt/android/internal/builders",
202        "//java/dagger/hilt/android/internal/earlyentrypoint",
203        "//java/dagger/hilt/android/internal/legacy:aggregated_element_proxy",
204        "//java/dagger/hilt/android/internal/lifecycle",
205        "//java/dagger/hilt/android/internal/managers",
206        "//java/dagger/hilt/android/internal/managers:component_supplier",
207        "//java/dagger/hilt/android/internal/managers:saved_state_handle_holder",
208        "//java/dagger/hilt/android/internal/migration:has_custom_inject",
209        "//java/dagger/hilt/android/internal/migration:injected_by_hilt",
210        "//java/dagger/hilt/android/internal/modules",
211        "//java/dagger/hilt/android/lifecycle:activity_retained_saved_state",
212        "//java/dagger/hilt/android/lifecycle:hilt_view_model",
213        "//java/dagger/hilt/android/lifecycle:hilt_view_model_extensions",
214        "//java/dagger/hilt/android/lifecycle:package_info",
215        "//java/dagger/hilt/android/lifecycle:retained_lifecycle",
216        "//java/dagger/hilt/android/migration:custom_inject",
217        "//java/dagger/hilt/android/migration:optional_inject",
218        "//java/dagger/hilt/android/migration:package_info",
219        "//java/dagger/hilt/android/qualifiers",
220        "//java/dagger/hilt/android/qualifiers:package_info",
221        "//java/dagger/hilt/android/scopes",
222        "//java/dagger/hilt/android/scopes:package_info",
223        "//java/dagger/hilt/internal:component_entry_point",
224        "//java/dagger/hilt/internal:generated_entry_point",
225        "//java/dagger/hilt/internal:test_singleton_component_manager",
226        "//java/dagger/hilt/internal/aggregatedroot:aggregatedroot",
227        "//java/dagger/hilt/internal/processedrootsentinel:processedrootsentinel",
228        "//java/dagger/hilt/internal/componenttreedeps:componenttreedeps",
229    ],
230    artifact_target_maven_deps = [
231        "androidx.activity:activity",
232        "androidx.annotation:annotation",
233        "androidx.annotation:annotation-experimental",
234        "androidx.fragment:fragment",
235        "androidx.lifecycle:lifecycle-common",
236        "androidx.lifecycle:lifecycle-viewmodel",
237        "androidx.lifecycle:lifecycle-viewmodel-savedstate",
238        "androidx.savedstate:savedstate",
239        "com.google.code.findbugs:jsr305",
240        "com.google.dagger:dagger-lint-aar",
241        "com.google.dagger:dagger",
242        "com.google.dagger:hilt-core",
243        "javax.inject:javax.inject",
244        "org.jetbrains.kotlin:kotlin-stdlib",
245    ],
246    artifact_target_maven_deps_banned = [
247        "com.google.guava:guava",
248        "javax.annotation:javax.annotation-api",
249    ],
250    javadoc_android_api_level = 32,
251    javadoc_exclude_packages = [
252        "dagger.hilt.android.internal",
253    ],
254    javadoc_root_packages = [
255        "dagger.hilt.android",
256    ],
257    javadoc_srcs = [
258        "//java/dagger/hilt:hilt_android_filegroup",
259    ],
260    manifest = "AndroidManifest.xml",
261    packaging = "aar",
262    proguard_and_r8_specs = [
263        "//java/dagger/hilt:proguard-rules.pro",
264        "//java/dagger/hilt/android:proguard-rules.pro",
265        "//java/dagger/hilt/internal:proguard-rules.pro",
266    ],
267)
268
269compat_kt_android_library(
270    name = "entry_point_accessors",
271    srcs = ["EntryPointAccessors.kt"],
272    deps = [
273        "//java/dagger/hilt:entry_point",
274        "//java/dagger/hilt/android/internal",
275        "@maven//:androidx_activity_activity",
276        "@maven//:androidx_fragment_fragment",
277        "@maven//:androidx_lifecycle_lifecycle_common",
278        "@maven//:androidx_lifecycle_lifecycle_viewmodel",
279        "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate",
280    ],
281)
282
283filegroup(
284    name = "srcs_filegroup",
285    srcs = glob(["*"]),
286)
287