• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:maven.bzl", "gen_maven_artifact")
19load("//tools:bazel_compat.bzl", "compat_kt_android_library")
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",
42        "//java/dagger/hilt/codegen:originating_element",
43        "//java/dagger/hilt/internal:component_entry_point",
44        "//java/dagger/hilt/internal:component_manager",
45        "//java/dagger/hilt/internal:generated_entry_point",
46        "//java/dagger/hilt/internal:preconditions",
47        "@maven//:androidx_activity_activity",
48        "@maven//:androidx_annotation_annotation",
49        "@maven//:androidx_fragment_fragment",
50        "@maven//:androidx_lifecycle_lifecycle_common",
51        "@maven//:androidx_lifecycle_lifecycle_viewmodel",
52        "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate",
53    ],
54    deps = [
55        ":package_info",
56        "//java/dagger/hilt:generates_root_input",
57    ],
58)
59
60android_library(
61    name = "hilt_android_app",
62    srcs = ["HiltAndroidApp.java"],
63    exported_plugins = [
64        "//java/dagger/hilt/android/processor/internal/androidentrypoint:plugin",
65        "//java/dagger/hilt/android/processor/internal/viewmodel:validation_plugin",
66        "//java/dagger/hilt/processor/internal/root:component_tree_deps_plugin",
67        "//java/dagger/hilt/processor/internal/root:root_plugin",
68    ],
69    exports = [
70        ":activity_retained_lifecycle",
71        "//:dagger_with_compiler",
72        "//java/dagger/hilt:install_in",
73        "//java/dagger/hilt/android/components",
74        "//java/dagger/hilt/android/internal/builders",
75        "//java/dagger/hilt/android/internal/legacy:aggregated_element_proxy",
76        "//java/dagger/hilt/android/internal/managers",
77        "//java/dagger/hilt/android/internal/managers:component_supplier",
78        "//java/dagger/hilt/android/internal/modules",
79        "//java/dagger/hilt/android/scopes",
80        "//java/dagger/hilt/codegen:originating_element",
81        "//java/dagger/hilt/internal:component_manager",
82        "//java/dagger/hilt/internal:generated_component",
83        "//java/dagger/hilt/internal:generated_entry_point",
84        "//java/dagger/hilt/internal/aggregatedroot",
85        "//java/dagger/hilt/internal/componenttreedeps",
86        "//java/dagger/hilt/internal/processedrootsentinel",
87        "//java/dagger/hilt/migration:disable_install_in_check",
88        "@maven//:androidx_activity_activity",
89        "@maven//:androidx_annotation_annotation",
90        "@maven//:androidx_fragment_fragment",
91        "@maven//:androidx_lifecycle_lifecycle_common",
92        "@maven//:androidx_lifecycle_lifecycle_viewmodel",
93        "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate",
94    ],
95    deps = [
96        ":package_info",
97        "//java/dagger/hilt:generates_root_input",
98    ],
99)
100
101android_library(
102    name = "activity_retained_lifecycle",
103    srcs = ["ActivityRetainedLifecycle.java"],
104    deps = [
105        ":package_info",
106        "@maven//:androidx_annotation_annotation",
107    ],
108)
109
110android_library(
111    name = "early_entry_point",
112    srcs = [
113        "EarlyEntryPoint.java",
114        "EarlyEntryPoints.java",
115    ],
116    exported_plugins = [
117        "//java/dagger/hilt/processor/internal/aggregateddeps:plugin",
118        "//java/dagger/hilt/processor/internal/earlyentrypoint:processor",
119    ],
120    proguard_specs = ["proguard-rules.pro"],
121    exports = [
122        "//java/dagger/hilt/android/internal/earlyentrypoint",
123    ],
124    deps = [
125        ":package_info",
126        "//:dagger_with_compiler",
127        "//java/dagger/hilt:entry_point",
128        "//java/dagger/hilt/android/internal",
129        "//java/dagger/hilt/internal:component_manager",
130        "//java/dagger/hilt/internal:preconditions",
131        "//java/dagger/hilt/internal:test_singleton_component_manager",
132        "//third_party/java/jsr305_annotations",
133    ],
134)
135
136java_library(
137    name = "package_info",
138    srcs = ["package-info.java"],
139    deps = [
140        "//third_party/java/jsr305_annotations",
141    ],
142)
143
144android_library(
145    name = "artifact-lib",
146    tags = ["maven_coordinates=com.google.dagger:hilt-android:" + POM_VERSION],
147    exports = [
148        ":android_entry_point",
149        ":early_entry_point",
150        ":entry_point_accessors",
151        ":hilt_android_app",
152        ":package_info",
153        "//java/dagger/hilt:artifact-core-lib",
154        "//java/dagger/hilt/android/migration:custom_inject",
155        "//java/dagger/hilt/android/migration:optional_inject",
156        "//java/dagger/lint:lint-android-artifact-lib",
157    ],
158)
159
160gen_maven_artifact(
161    name = "artifact",
162    artifact_coordinates = "com.google.dagger:hilt-android:" + POM_VERSION,
163    artifact_name = "Hilt Android",
164    artifact_target = ":artifact-lib",
165    artifact_target_libs = [
166        ":entry_point_accessors",
167        "//java/dagger/hilt/android:activity_retained_lifecycle",
168        "//java/dagger/hilt/android:android_entry_point",
169        "//java/dagger/hilt/android:hilt_android_app",
170        "//java/dagger/hilt/android:early_entry_point",
171        "//java/dagger/hilt/android:package_info",
172        "//java/dagger/hilt/android/components",
173        "//java/dagger/hilt/android/components:package_info",
174        "//java/dagger/hilt/android/flags:fragment_get_context_fix",
175        "//java/dagger/hilt/android/internal",
176        "//java/dagger/hilt/android/internal/builders",
177        "//java/dagger/hilt/android/internal/earlyentrypoint",
178        "//java/dagger/hilt/android/internal/legacy:aggregated_element_proxy",
179        "//java/dagger/hilt/android/internal/lifecycle",
180        "//java/dagger/hilt/android/internal/managers",
181        "//java/dagger/hilt/android/internal/managers:component_supplier",
182        "//java/dagger/hilt/android/internal/migration:has_custom_inject",
183        "//java/dagger/hilt/android/internal/migration:injected_by_hilt",
184        "//java/dagger/hilt/android/internal/modules",
185        "//java/dagger/hilt/android/lifecycle",
186        "//java/dagger/hilt/android/migration:custom_inject",
187        "//java/dagger/hilt/android/migration:optional_inject",
188        "//java/dagger/hilt/android/migration:package_info",
189        "//java/dagger/hilt/android/qualifiers",
190        "//java/dagger/hilt/android/qualifiers:package_info",
191        "//java/dagger/hilt/android/scopes",
192        "//java/dagger/hilt/android/scopes:package_info",
193        "//java/dagger/hilt/internal:component_entry_point",
194        "//java/dagger/hilt/internal:generated_entry_point",
195        "//java/dagger/hilt/internal:test_singleton_component_manager",
196        "//java/dagger/hilt/internal/aggregatedroot:aggregatedroot",
197        "//java/dagger/hilt/internal/processedrootsentinel:processedrootsentinel",
198        "//java/dagger/hilt/internal/componenttreedeps:componenttreedeps",
199    ],
200    artifact_target_maven_deps = [
201        "androidx.activity:activity",
202        "androidx.annotation:annotation",
203        "androidx.fragment:fragment",
204        "androidx.lifecycle:lifecycle-common",
205        "androidx.lifecycle:lifecycle-viewmodel",
206        "androidx.lifecycle:lifecycle-viewmodel-savedstate",
207        "androidx.savedstate:savedstate",
208        "com.google.code.findbugs:jsr305",
209        "com.google.dagger:dagger-lint-aar",
210        "com.google.dagger:dagger",
211        "com.google.dagger:hilt-core",
212        "javax.inject:javax.inject",
213        "org.jetbrains.kotlin:kotlin-stdlib",
214    ],
215    artifact_target_maven_deps_banned = [
216        "com.google.guava:guava",
217        "javax.annotation:jsr250-api",
218    ],
219    javadoc_android_api_level = 30,
220    javadoc_exclude_packages = [
221        "dagger.hilt.android.internal",
222    ],
223    javadoc_root_packages = [
224        "dagger.hilt.android",
225    ],
226    javadoc_srcs = [
227        "//java/dagger/hilt:hilt_android_filegroup",
228    ],
229    manifest = "AndroidManifest.xml",
230    packaging = "aar",
231    proguard_specs = [
232        "//java/dagger/hilt:proguard-rules.pro",
233        ":proguard-rules.pro",
234        "//java/dagger/hilt/android/lifecycle:proguard-rules.pro",
235        "//java/dagger/hilt/internal:proguard-rules.pro",
236    ],
237)
238
239compat_kt_android_library(
240    name = "entry_point_accessors",
241    srcs = ["EntryPointAccessors.kt"],
242    deps = [
243        "//java/dagger/hilt:entry_point",
244        "//java/dagger/hilt/android/internal",
245        "@maven//:androidx_activity_activity",
246        "@maven//:androidx_fragment_fragment",
247        "@maven//:androidx_lifecycle_lifecycle_common",
248        "@maven//:androidx_lifecycle_lifecycle_viewmodel",
249        "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate",
250    ],
251)
252
253filegroup(
254    name = "srcs_filegroup",
255    srcs = glob(["*"]),
256)
257