xref: /aosp_15_r20/external/dagger2/Android.bp (revision f585d8a307d0621d6060bd7e80091fdcbf94fe27)
1*f585d8a3SJacky Wang// Copyright (C) 2015 The Android Open Source Project
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 Wangpackage {
16*f585d8a3SJacky Wang    default_visibility: [":__subpackages__"],
17*f585d8a3SJacky Wang    default_applicable_licenses: ["external_dagger2_license"],
18*f585d8a3SJacky Wang}
19*f585d8a3SJacky Wang
20*f585d8a3SJacky Wang// Added automatically by a large-scale-change that took the approach of
21*f585d8a3SJacky Wang// 'apply every license found to every target'. While this makes sure we respect
22*f585d8a3SJacky Wang// every license restriction, it may not be entirely correct.
23*f585d8a3SJacky Wang//
24*f585d8a3SJacky Wang// e.g. GPL in an MIT project might only apply to the contrib/ directory.
25*f585d8a3SJacky Wang//
26*f585d8a3SJacky Wang// Please consider splitting the single license below into multiple licenses,
27*f585d8a3SJacky Wang// taking care not to lose any license_kind information, and overriding the
28*f585d8a3SJacky Wang// default license using the 'licenses: [...]' property on targets as needed.
29*f585d8a3SJacky Wang//
30*f585d8a3SJacky Wang// For unused files, consider creating a 'fileGroup' with "//visibility:private"
31*f585d8a3SJacky Wang// to attach the license to, and including a comment whether the files may be
32*f585d8a3SJacky Wang// used in the current project.
33*f585d8a3SJacky Wang//
34*f585d8a3SJacky Wang// large-scale-change included anything that looked like it might be a license
35*f585d8a3SJacky Wang// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
36*f585d8a3SJacky Wang//
37*f585d8a3SJacky Wang// Please consider removing redundant or irrelevant files from 'license_text:'.
38*f585d8a3SJacky Wang// See: http://go/android-license-faq
39*f585d8a3SJacky Wanglicense {
40*f585d8a3SJacky Wang    name: "external_dagger2_license",
41*f585d8a3SJacky Wang    visibility: [":__subpackages__"],
42*f585d8a3SJacky Wang    license_kinds: [
43*f585d8a3SJacky Wang        "SPDX-license-identifier-Apache-2.0",
44*f585d8a3SJacky Wang        "legacy_not_a_contribution",
45*f585d8a3SJacky Wang    ],
46*f585d8a3SJacky Wang    license_text: [
47*f585d8a3SJacky Wang        "LICENSE.txt",
48*f585d8a3SJacky Wang    ],
49*f585d8a3SJacky Wang}
50*f585d8a3SJacky Wang
51*f585d8a3SJacky Wangjava_import_host {
52*f585d8a3SJacky Wang    name: "dagger2-bootstrap-compiler-jar",
53*f585d8a3SJacky Wang    jars: ["java/dagger/internal/codegen/bootstrap/bootstrap_compiler_deploy.jar"],
54*f585d8a3SJacky Wang}
55*f585d8a3SJacky Wang
56*f585d8a3SJacky Wangjava_plugin {
57*f585d8a3SJacky Wang    name: "dagger2-bootstrap-compiler",
58*f585d8a3SJacky Wang    processor_class: "dagger.internal.codegen.ComponentProcessor",
59*f585d8a3SJacky Wang    generates_api: true,
60*f585d8a3SJacky Wang    static_libs: ["dagger2-bootstrap-compiler-jar"],
61*f585d8a3SJacky Wang    jarjar_rules: "jarjar-rules.txt",
62*f585d8a3SJacky Wang}
63*f585d8a3SJacky Wang
64*f585d8a3SJacky Wangjava_library {
65*f585d8a3SJacky Wang    name: "dagger2",
66*f585d8a3SJacky Wang    visibility: ["//visibility:public"],
67*f585d8a3SJacky Wang    host_supported: true,
68*f585d8a3SJacky Wang
69*f585d8a3SJacky Wang    srcs: [
70*f585d8a3SJacky Wang        "java/dagger/*.java",
71*f585d8a3SJacky Wang        "java/dagger/assisted/*.java",
72*f585d8a3SJacky Wang        "java/dagger/internal/*.java",
73*f585d8a3SJacky Wang        "java/dagger/multibindings/*.java",
74*f585d8a3SJacky Wang        "java/dagger/releasablereferences/*.java",
75*f585d8a3SJacky Wang    ],
76*f585d8a3SJacky Wang    exclude_srcs: ["java/dagger/android/**/*.java"],
77*f585d8a3SJacky Wang
78*f585d8a3SJacky Wang    libs: [
79*f585d8a3SJacky Wang        "guava",
80*f585d8a3SJacky Wang        "jsr330",
81*f585d8a3SJacky Wang    ],
82*f585d8a3SJacky Wang    apex_available: [
83*f585d8a3SJacky Wang        "//apex_available:platform",
84*f585d8a3SJacky Wang        "com.android.adservices",
85*f585d8a3SJacky Wang        "com.android.extservices",
86*f585d8a3SJacky Wang        "com.android.devicelock",
87*f585d8a3SJacky Wang        "com.android.healthfitness",
88*f585d8a3SJacky Wang        "com.android.mediaprovider",
89*f585d8a3SJacky Wang        "com.android.ondevicepersonalization",
90*f585d8a3SJacky Wang    ],
91*f585d8a3SJacky Wang
92*f585d8a3SJacky Wang    sdk_version: "core_current",
93*f585d8a3SJacky Wang
94*f585d8a3SJacky Wang    errorprone: {
95*f585d8a3SJacky Wang        javacflags: [
96*f585d8a3SJacky Wang            "-Xep:FormatStringAnnotation:WARN",
97*f585d8a3SJacky Wang            "-Xep:NoCanIgnoreReturnValueOnClasses:WARN",
98*f585d8a3SJacky Wang        ],
99*f585d8a3SJacky Wang    },
100*f585d8a3SJacky Wang}
101*f585d8a3SJacky Wang
102*f585d8a3SJacky Wang// build dagger2 producers library
103*f585d8a3SJacky Wang// ============================================================
104*f585d8a3SJacky Wang
105*f585d8a3SJacky Wangjava_library {
106*f585d8a3SJacky Wang    name: "dagger2-producers",
107*f585d8a3SJacky Wang    host_supported: true,
108*f585d8a3SJacky Wang
109*f585d8a3SJacky Wang    srcs: ["java/dagger/producers/**/*.java"],
110*f585d8a3SJacky Wang
111*f585d8a3SJacky Wang    static_libs: [
112*f585d8a3SJacky Wang        "error_prone_annotations",
113*f585d8a3SJacky Wang    ],
114*f585d8a3SJacky Wang
115*f585d8a3SJacky Wang    libs: [
116*f585d8a3SJacky Wang        "dagger2",
117*f585d8a3SJacky Wang        "dagger2-android-annotation-stubs",
118*f585d8a3SJacky Wang        "guava",
119*f585d8a3SJacky Wang        "jsr330",
120*f585d8a3SJacky Wang    ],
121*f585d8a3SJacky Wang
122*f585d8a3SJacky Wang    sdk_version: "core_current",
123*f585d8a3SJacky Wang}
124*f585d8a3SJacky Wang
125*f585d8a3SJacky Wang// build dagger2 compiler plugin
126*f585d8a3SJacky Wang// ============================================================
127*f585d8a3SJacky Wang
128*f585d8a3SJacky Wangjava_plugin {
129*f585d8a3SJacky Wang    name: "dagger2-compiler",
130*f585d8a3SJacky Wang    visibility: ["//visibility:public"],
131*f585d8a3SJacky Wang    processor_class: "dagger.internal.codegen.ComponentProcessor",
132*f585d8a3SJacky Wang    generates_api: true,
133*f585d8a3SJacky Wang    static_libs: ["dagger2-compiler-lib"],
134*f585d8a3SJacky Wang    // shade guava to avoid conflicts with guava embedded in Error Prone.
135*f585d8a3SJacky Wang    jarjar_rules: "jarjar-rules.txt",
136*f585d8a3SJacky Wang}
137*f585d8a3SJacky Wang
138*f585d8a3SJacky Wang// Dagger distributes its own copy of androidx.room.compiler.processing
139*f585d8a3SJacky Wang// while the API is unstable.  There are shading rules in jarjar-rules.txt
140*f585d8a3SJacky Wang// to prevent conflicts with official version.  When this is removed
141*f585d8a3SJacky Wang// in favor of the official version the shading rules should also be
142*f585d8a3SJacky Wang// removed.
143*f585d8a3SJacky Wangjava_import_host {
144*f585d8a3SJacky Wang    name: "dagger2-room-compiler-processing",
145*f585d8a3SJacky Wang    jars: ["java/dagger/internal/codegen/xprocessing/xprocessing.jar"],
146*f585d8a3SJacky Wang}
147*f585d8a3SJacky Wang
148*f585d8a3SJacky Wangjava_library_host {
149*f585d8a3SJacky Wang    name: "dagger2-compiler-lib",
150*f585d8a3SJacky Wang    use_tools_jar: true,
151*f585d8a3SJacky Wang    visibility: ["//visibility:public"],
152*f585d8a3SJacky Wang
153*f585d8a3SJacky Wang    srcs: [
154*f585d8a3SJacky Wang        "java/dagger/internal/codegen/**/*.java",
155*f585d8a3SJacky Wang        "java/dagger/internal/codegen/**/*.proto",
156*f585d8a3SJacky Wang
157*f585d8a3SJacky Wang        "java/dagger/model/*.java",
158*f585d8a3SJacky Wang        "java/dagger/spi/*.java",
159*f585d8a3SJacky Wang        "java/dagger/spi/model/*.java",
160*f585d8a3SJacky Wang        "java/dagger/spi/model/*.kt",
161*f585d8a3SJacky Wang    ],
162*f585d8a3SJacky Wang
163*f585d8a3SJacky Wang    exclude_srcs: [
164*f585d8a3SJacky Wang        "java/dagger/internal/codegen/BindingGraphStatisticsCollector.java",
165*f585d8a3SJacky Wang        "java/dagger/internal/codegen/kythe/DaggerKythePlugin.java",
166*f585d8a3SJacky Wang    ],
167*f585d8a3SJacky Wang
168*f585d8a3SJacky Wang    static_libs: [
169*f585d8a3SJacky Wang        "auto_common",
170*f585d8a3SJacky Wang        "dagger2",
171*f585d8a3SJacky Wang        "dagger2-producers",
172*f585d8a3SJacky Wang        "dagger2-room-compiler-processing",
173*f585d8a3SJacky Wang        "google_java_format",
174*f585d8a3SJacky Wang        "guava",
175*f585d8a3SJacky Wang        "javapoet",
176*f585d8a3SJacky Wang        "jsr330",
177*f585d8a3SJacky Wang        "kotlin_symbol_processing_api",
178*f585d8a3SJacky Wang        "kotlin-stdlib",
179*f585d8a3SJacky Wang        "kotlin-stdlib-jdk8",
180*f585d8a3SJacky Wang        "kotlinpoet",
181*f585d8a3SJacky Wang        "kotlinx_metadata_jvm",
182*f585d8a3SJacky Wang    ],
183*f585d8a3SJacky Wang
184*f585d8a3SJacky Wang    libs: [
185*f585d8a3SJacky Wang        "auto_factory_annotations",
186*f585d8a3SJacky Wang        "auto_service_annotations",
187*f585d8a3SJacky Wang        "auto_value_annotations",
188*f585d8a3SJacky Wang        "auto_value_memoized_extension_annotations",
189*f585d8a3SJacky Wang        "dagger2-android-annotation-stubs",
190*f585d8a3SJacky Wang    ],
191*f585d8a3SJacky Wang
192*f585d8a3SJacky Wang    plugins: [
193*f585d8a3SJacky Wang        "auto_factory_plugin",
194*f585d8a3SJacky Wang        "auto_service_plugin",
195*f585d8a3SJacky Wang        "auto_value_plugin",
196*f585d8a3SJacky Wang        "auto_value_memoized_extension_plugin",
197*f585d8a3SJacky Wang        "auto_annotation_plugin",
198*f585d8a3SJacky Wang        "dagger2-bootstrap-compiler",
199*f585d8a3SJacky Wang    ],
200*f585d8a3SJacky Wang
201*f585d8a3SJacky Wang    proto: {
202*f585d8a3SJacky Wang        type: "full",
203*f585d8a3SJacky Wang        include_dirs: ["external/protobuf/src/"],
204*f585d8a3SJacky Wang    },
205*f585d8a3SJacky Wang
206*f585d8a3SJacky Wang    // From Java 9 onward com.sun.tools.javac is not visible by default
207*f585d8a3SJacky Wang    javacflags: [
208*f585d8a3SJacky Wang        "--add-modules=jdk.compiler",
209*f585d8a3SJacky Wang        "--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
210*f585d8a3SJacky Wang        "--add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
211*f585d8a3SJacky Wang        "--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
212*f585d8a3SJacky Wang        "--add-exports jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED",
213*f585d8a3SJacky Wang        "--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED",
214*f585d8a3SJacky Wang        "--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
215*f585d8a3SJacky Wang        "--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
216*f585d8a3SJacky Wang    ],
217*f585d8a3SJacky Wang
218*f585d8a3SJacky Wang    errorprone: {
219*f585d8a3SJacky Wang        javacflags: [
220*f585d8a3SJacky Wang            "-Xep:FormatStringAnnotation:WARN",
221*f585d8a3SJacky Wang            "-Xep:NoCanIgnoreReturnValueOnClasses:WARN",
222*f585d8a3SJacky Wang        ],
223*f585d8a3SJacky Wang    },
224*f585d8a3SJacky Wang}
225*f585d8a3SJacky Wang
226*f585d8a3SJacky Wang// Compile  dummy implementations of annotations used by dagger2 but not
227*f585d8a3SJacky Wang// present in the Android tree.
228*f585d8a3SJacky Wangjava_library {
229*f585d8a3SJacky Wang    name: "dagger2-android-annotation-stubs",
230*f585d8a3SJacky Wang    host_supported: true,
231*f585d8a3SJacky Wang    sdk_version: "core_current",
232*f585d8a3SJacky Wang    srcs: ["android-annotation-stubs/src/**/*.java"],
233*f585d8a3SJacky Wang}
234*f585d8a3SJacky Wang
235*f585d8a3SJacky Wang// build core hilt library
236*f585d8a3SJacky Wang
237*f585d8a3SJacky Wangjava_library {
238*f585d8a3SJacky Wang    name: "hilt_core",
239*f585d8a3SJacky Wang    srcs: [
240*f585d8a3SJacky Wang        "java/dagger/hilt/*.java",
241*f585d8a3SJacky Wang        "java/dagger/hilt/codegen/*.java",
242*f585d8a3SJacky Wang        "java/dagger/hilt/components/*.java",
243*f585d8a3SJacky Wang        "java/dagger/hilt/internal/*.java",
244*f585d8a3SJacky Wang        "java/dagger/hilt/internal/aliasof/*.java",
245*f585d8a3SJacky Wang        "java/dagger/hilt/internal/definecomponent/*.java",
246*f585d8a3SJacky Wang        "java/dagger/hilt/internal/generatesrootinput/*.java",
247*f585d8a3SJacky Wang        "java/dagger/hilt/migration/*.java",
248*f585d8a3SJacky Wang        "java/dagger/hilt/processor/internal/aggregateddeps/AggregatedDeps.java",
249*f585d8a3SJacky Wang    ],
250*f585d8a3SJacky Wang    static_libs: [
251*f585d8a3SJacky Wang        "jsr305",
252*f585d8a3SJacky Wang        "jsr330",
253*f585d8a3SJacky Wang        "dagger2",
254*f585d8a3SJacky Wang    ],
255*f585d8a3SJacky Wang    sdk_version: "core_current",
256*f585d8a3SJacky Wang    plugins: [
257*f585d8a3SJacky Wang        "hilt_define_component_processor",
258*f585d8a3SJacky Wang        "hilt_generates_root_input_processor",
259*f585d8a3SJacky Wang    ],
260*f585d8a3SJacky Wang    apex_available: [
261*f585d8a3SJacky Wang        "//apex_available:platform",
262*f585d8a3SJacky Wang        "com.android.healthfitness",
263*f585d8a3SJacky Wang        "com.android.mediaprovider",
264*f585d8a3SJacky Wang        "com.android.ondevicepersonalization",
265*f585d8a3SJacky Wang    ],
266*f585d8a3SJacky Wang}
267*f585d8a3SJacky Wang
268*f585d8a3SJacky Wang// Build the android hilt library.  Depending on this will enable the Hilt annotation processors.
269*f585d8a3SJacky Wang
270*f585d8a3SJacky Wangandroid_library {
271*f585d8a3SJacky Wang    name: "hilt_android",
272*f585d8a3SJacky Wang    visibility: ["//visibility:public"],
273*f585d8a3SJacky Wang
274*f585d8a3SJacky Wang    srcs: [
275*f585d8a3SJacky Wang        "java/dagger/hilt/android/*.java",
276*f585d8a3SJacky Wang        "java/dagger/hilt/android/*.kt",
277*f585d8a3SJacky Wang        "java/dagger/hilt/android/components/*.java",
278*f585d8a3SJacky Wang        "java/dagger/hilt/android/flags/*.java",
279*f585d8a3SJacky Wang        "java/dagger/hilt/android/migration/*.java",
280*f585d8a3SJacky Wang        "java/dagger/hilt/android/qualifiers/*.java",
281*f585d8a3SJacky Wang        "java/dagger/hilt/android/scopes/*.java",
282*f585d8a3SJacky Wang        "java/dagger/hilt/android/internal/*.java",
283*f585d8a3SJacky Wang        "java/dagger/hilt/android/internal/builders/*.java",
284*f585d8a3SJacky Wang        "java/dagger/hilt/android/internal/earlyentrypoint/*.java",
285*f585d8a3SJacky Wang        "java/dagger/hilt/android/internal/legacy/*.java",
286*f585d8a3SJacky Wang        "java/dagger/hilt/android/internal/lifecycle/*.java",
287*f585d8a3SJacky Wang        "java/dagger/hilt/android/internal/managers/*.java",
288*f585d8a3SJacky Wang        "java/dagger/hilt/android/internal/migration/*.java",
289*f585d8a3SJacky Wang        "java/dagger/hilt/android/internal/modules/*.java",
290*f585d8a3SJacky Wang        "java/dagger/hilt/android/lifecycle/*.java",
291*f585d8a3SJacky Wang        "java/dagger/hilt/android/lifecycle/*.kt",
292*f585d8a3SJacky Wang        "java/dagger/hilt/internal/aggregatedroot/*.java",
293*f585d8a3SJacky Wang        "java/dagger/hilt/internal/componenttreedeps/*.java",
294*f585d8a3SJacky Wang        "java/dagger/hilt/internal/processedrootsentinel/*.java",
295*f585d8a3SJacky Wang    ],
296*f585d8a3SJacky Wang    manifest: "java/dagger/hilt/android/AndroidManifest.xml",
297*f585d8a3SJacky Wang    static_libs: [
298*f585d8a3SJacky Wang        "androidx.activity_activity",
299*f585d8a3SJacky Wang        "androidx.annotation_annotation",
300*f585d8a3SJacky Wang        "androidx.fragment_fragment",
301*f585d8a3SJacky Wang        "androidx.lifecycle_lifecycle-common",
302*f585d8a3SJacky Wang        "androidx.lifecycle_lifecycle-viewmodel",
303*f585d8a3SJacky Wang        "androidx.lifecycle_lifecycle-viewmodel-savedstate",
304*f585d8a3SJacky Wang        "jsr305",
305*f585d8a3SJacky Wang        "jsr330",
306*f585d8a3SJacky Wang        "dagger2",
307*f585d8a3SJacky Wang        "hilt_core",
308*f585d8a3SJacky Wang    ],
309*f585d8a3SJacky Wang    sdk_version: "current",
310*f585d8a3SJacky Wang    min_sdk_version: "21",
311*f585d8a3SJacky Wang    plugins: [
312*f585d8a3SJacky Wang        "dagger2-compiler",
313*f585d8a3SJacky Wang        "hilt_android_entry_point_processor",
314*f585d8a3SJacky Wang        "hilt_aggregated_deps_processor",
315*f585d8a3SJacky Wang        "hilt_define_component_processor",
316*f585d8a3SJacky Wang        "hilt_generates_root_input_processor",
317*f585d8a3SJacky Wang        "hilt_originating_element_processor",
318*f585d8a3SJacky Wang        "hilt_root_processor",
319*f585d8a3SJacky Wang    ],
320*f585d8a3SJacky Wang    exported_plugins: [
321*f585d8a3SJacky Wang        "dagger2-compiler",
322*f585d8a3SJacky Wang
323*f585d8a3SJacky Wang        "hilt_android_entry_point_processor",
324*f585d8a3SJacky Wang        "hilt_aggregated_deps_processor",
325*f585d8a3SJacky Wang        "hilt_alias_of_processor",
326*f585d8a3SJacky Wang        "hilt_component_tree_deps_processor",
327*f585d8a3SJacky Wang        "hilt_define_component_processor",
328*f585d8a3SJacky Wang        "hilt_early_entry_point_processor",
329*f585d8a3SJacky Wang        "hilt_generates_root_input_processor",
330*f585d8a3SJacky Wang        "hilt_originating_element_processor",
331*f585d8a3SJacky Wang        "hilt_root_processor",
332*f585d8a3SJacky Wang        "hilt_viewmodel_processor",
333*f585d8a3SJacky Wang    ],
334*f585d8a3SJacky Wang    apex_available: [
335*f585d8a3SJacky Wang        "//apex_available:platform",
336*f585d8a3SJacky Wang        "com.android.healthfitness",
337*f585d8a3SJacky Wang        "com.android.mediaprovider",
338*f585d8a3SJacky Wang        "com.android.ondevicepersonalization",
339*f585d8a3SJacky Wang    ],
340*f585d8a3SJacky Wang}
341*f585d8a3SJacky Wang
342*f585d8a3SJacky Wangandroid_library {
343*f585d8a3SJacky Wang    name: "hilt_android_testing",
344*f585d8a3SJacky Wang    visibility: ["//visibility:public"],
345*f585d8a3SJacky Wang
346*f585d8a3SJacky Wang    srcs: [
347*f585d8a3SJacky Wang        "java/dagger/hilt/android/internal/testing/*.java",
348*f585d8a3SJacky Wang        "java/dagger/hilt/android/internal/testing/root/*.java",
349*f585d8a3SJacky Wang        "java/dagger/hilt/android/internal/uninstallmodules/*.java",
350*f585d8a3SJacky Wang        "java/dagger/hilt/android/testing/*.java",
351*f585d8a3SJacky Wang        "java/dagger/hilt/testing/*.java",
352*f585d8a3SJacky Wang    ],
353*f585d8a3SJacky Wang    manifest: "java/dagger/hilt/android/testing/AndroidManifest.xml",
354*f585d8a3SJacky Wang    static_libs: [
355*f585d8a3SJacky Wang        "auto_value_annotations",
356*f585d8a3SJacky Wang        "androidx.annotation_annotation",
357*f585d8a3SJacky Wang        "androidx.fragment_fragment",
358*f585d8a3SJacky Wang        "androidx.annotation_annotation",
359*f585d8a3SJacky Wang        "androidx.fragment_fragment",
360*f585d8a3SJacky Wang        "androidx.test.core",
361*f585d8a3SJacky Wang        "android-support-multidex",
362*f585d8a3SJacky Wang        "jsr305",
363*f585d8a3SJacky Wang        "dagger2",
364*f585d8a3SJacky Wang        "hilt_android",
365*f585d8a3SJacky Wang        "hilt_core",
366*f585d8a3SJacky Wang        "junit",
367*f585d8a3SJacky Wang    ],
368*f585d8a3SJacky Wang    sdk_version: "current",
369*f585d8a3SJacky Wang    min_sdk_version: "21",
370*f585d8a3SJacky Wang    plugins: [
371*f585d8a3SJacky Wang        "auto_value_plugin",
372*f585d8a3SJacky Wang        "dagger2-compiler",
373*f585d8a3SJacky Wang        "hilt_generates_root_input_processor",
374*f585d8a3SJacky Wang    ],
375*f585d8a3SJacky Wang    exported_plugins: [
376*f585d8a3SJacky Wang        "dagger2-compiler",
377*f585d8a3SJacky Wang
378*f585d8a3SJacky Wang        "hilt_android_entry_point_processor",
379*f585d8a3SJacky Wang        "hilt_aggregated_deps_processor",
380*f585d8a3SJacky Wang        "hilt_alias_of_processor",
381*f585d8a3SJacky Wang        "hilt_component_tree_deps_processor",
382*f585d8a3SJacky Wang        "hilt_define_component_processor",
383*f585d8a3SJacky Wang        "hilt_early_entry_point_processor",
384*f585d8a3SJacky Wang        "hilt_generates_root_input_processor",
385*f585d8a3SJacky Wang        "hilt_originating_element_processor",
386*f585d8a3SJacky Wang        "hilt_root_processor",
387*f585d8a3SJacky Wang        "hilt_viewmodel_processor",
388*f585d8a3SJacky Wang
389*f585d8a3SJacky Wang        "hilt_custom_test_application_processor",
390*f585d8a3SJacky Wang        "hilt_bindvalue_processor",
391*f585d8a3SJacky Wang        "hilt_uninstall_modules_processor",
392*f585d8a3SJacky Wang    ],
393*f585d8a3SJacky Wang}
394*f585d8a3SJacky Wang
395*f585d8a3SJacky Wang// Hilt has many annotation processors.  To reduce compilation and runtime cost, they are all compiled
396*f585d8a3SJacky Wang// into hilt_android_processors.  A java_plugin can only expose a single processor class, so each has
397*f585d8a3SJacky Wang// to be defined separately.  Since they are not visible outside this package and will always be
398*f585d8a3SJacky Wang// exported together, only the first actually contains the annotation processor classes.
399*f585d8a3SJacky Wangjava_plugin {
400*f585d8a3SJacky Wang    name: "hilt_generates_root_input_processor",
401*f585d8a3SJacky Wang    generates_api: true,
402*f585d8a3SJacky Wang    processor_class: "dagger.hilt.processor.internal.generatesrootinput.GeneratesRootInputProcessor",
403*f585d8a3SJacky Wang    static_libs: ["hilt_android_processors"],
404*f585d8a3SJacky Wang}
405*f585d8a3SJacky Wang
406*f585d8a3SJacky Wangjava_plugin {
407*f585d8a3SJacky Wang    name: "hilt_android_entry_point_processor",
408*f585d8a3SJacky Wang    generates_api: true,
409*f585d8a3SJacky Wang    processor_class: "dagger.hilt.android.processor.internal.androidentrypoint.AndroidEntryPointProcessor",
410*f585d8a3SJacky Wang}
411*f585d8a3SJacky Wang
412*f585d8a3SJacky Wangjava_plugin {
413*f585d8a3SJacky Wang    name: "hilt_aggregated_deps_processor",
414*f585d8a3SJacky Wang    generates_api: true,
415*f585d8a3SJacky Wang    processor_class: "dagger.hilt.processor.internal.aggregateddeps.AggregatedDepsProcessor",
416*f585d8a3SJacky Wang}
417*f585d8a3SJacky Wang
418*f585d8a3SJacky Wangjava_plugin {
419*f585d8a3SJacky Wang    name: "hilt_alias_of_processor",
420*f585d8a3SJacky Wang    generates_api: true,
421*f585d8a3SJacky Wang    processor_class: "dagger.hilt.processor.internal.aliasof.AliasOfProcessor",
422*f585d8a3SJacky Wang}
423*f585d8a3SJacky Wang
424*f585d8a3SJacky Wangjava_plugin {
425*f585d8a3SJacky Wang    name: "hilt_component_tree_deps_processor",
426*f585d8a3SJacky Wang    generates_api: true,
427*f585d8a3SJacky Wang    processor_class: "dagger.hilt.processor.internal.root.ComponentTreeDepsProcessor",
428*f585d8a3SJacky Wang}
429*f585d8a3SJacky Wang
430*f585d8a3SJacky Wangjava_plugin {
431*f585d8a3SJacky Wang    name: "hilt_define_component_processor",
432*f585d8a3SJacky Wang    generates_api: true,
433*f585d8a3SJacky Wang    processor_class: "dagger.hilt.processor.internal.definecomponent.DefineComponentProcessor",
434*f585d8a3SJacky Wang}
435*f585d8a3SJacky Wang
436*f585d8a3SJacky Wangjava_plugin {
437*f585d8a3SJacky Wang    name: "hilt_early_entry_point_processor",
438*f585d8a3SJacky Wang    generates_api: true,
439*f585d8a3SJacky Wang    processor_class: "dagger.hilt.processor.internal.earlyentrypoint.EarlyEntryPointProcessor",
440*f585d8a3SJacky Wang}
441*f585d8a3SJacky Wang
442*f585d8a3SJacky Wangjava_plugin {
443*f585d8a3SJacky Wang    name: "hilt_originating_element_processor",
444*f585d8a3SJacky Wang    generates_api: true,
445*f585d8a3SJacky Wang    processor_class: "dagger.hilt.processor.internal.originatingelement.OriginatingElementProcessor",
446*f585d8a3SJacky Wang}
447*f585d8a3SJacky Wang
448*f585d8a3SJacky Wangjava_plugin {
449*f585d8a3SJacky Wang    name: "hilt_root_processor",
450*f585d8a3SJacky Wang    generates_api: true,
451*f585d8a3SJacky Wang    processor_class: "dagger.hilt.processor.internal.root.RootProcessor",
452*f585d8a3SJacky Wang}
453*f585d8a3SJacky Wang
454*f585d8a3SJacky Wangjava_plugin {
455*f585d8a3SJacky Wang    name: "hilt_viewmodel_processor",
456*f585d8a3SJacky Wang    generates_api: true,
457*f585d8a3SJacky Wang    processor_class: "dagger.hilt.android.processor.internal.viewmodel.ViewModelProcessor",
458*f585d8a3SJacky Wang}
459*f585d8a3SJacky Wang
460*f585d8a3SJacky Wang// Hilt testing processors
461*f585d8a3SJacky Wangjava_plugin {
462*f585d8a3SJacky Wang    name: "hilt_custom_test_application_processor",
463*f585d8a3SJacky Wang    generates_api: true,
464*f585d8a3SJacky Wang    processor_class: "dagger.hilt.android.processor.internal.customtestapplication.CustomTestApplicationProcessor",
465*f585d8a3SJacky Wang}
466*f585d8a3SJacky Wang
467*f585d8a3SJacky Wangjava_plugin {
468*f585d8a3SJacky Wang    name: "hilt_bindvalue_processor",
469*f585d8a3SJacky Wang    generates_api: true,
470*f585d8a3SJacky Wang    processor_class: "dagger.hilt.android.processor.internal.bindvalue.BindValueProcessor",
471*f585d8a3SJacky Wang}
472*f585d8a3SJacky Wang
473*f585d8a3SJacky Wangjava_plugin {
474*f585d8a3SJacky Wang    name: "hilt_uninstall_modules_processor",
475*f585d8a3SJacky Wang    generates_api: true,
476*f585d8a3SJacky Wang    processor_class: "dagger.hilt.processor.internal.uninstallmodules.UninstallModulesProcessor",
477*f585d8a3SJacky Wang}
478*f585d8a3SJacky Wang
479*f585d8a3SJacky Wangjava_library_host {
480*f585d8a3SJacky Wang    name: "hilt_android_processors",
481*f585d8a3SJacky Wang    use_tools_jar: true,
482*f585d8a3SJacky Wang    srcs: [
483*f585d8a3SJacky Wang        "java/dagger/hilt/android/processor/**/*.java",
484*f585d8a3SJacky Wang        "java/dagger/hilt/android/processor/**/*.kt",
485*f585d8a3SJacky Wang        "java/dagger/hilt/codegen/*.java",
486*f585d8a3SJacky Wang        "java/dagger/hilt/processor/internal/**/*.java",
487*f585d8a3SJacky Wang        "java/dagger/hilt/processor/internal/**/*.kt",
488*f585d8a3SJacky Wang    ],
489*f585d8a3SJacky Wang    exclude_srcs: [
490*f585d8a3SJacky Wang        // Depends on DefineComponentValidationProcessingStep which is not present in github.
491*f585d8a3SJacky Wang        "java/dagger/hilt/processor/internal/definecomponent/KspDefineComponentValidationProcessor.java",
492*f585d8a3SJacky Wang    ],
493*f585d8a3SJacky Wang    plugins: [
494*f585d8a3SJacky Wang        "auto_service_plugin",
495*f585d8a3SJacky Wang        "auto_value_plugin",
496*f585d8a3SJacky Wang        "auto_value_memoized_extension_plugin",
497*f585d8a3SJacky Wang        "dagger2-compiler",
498*f585d8a3SJacky Wang    ],
499*f585d8a3SJacky Wang    static_libs: [
500*f585d8a3SJacky Wang        "auto_common",
501*f585d8a3SJacky Wang        "auto_service_annotations",
502*f585d8a3SJacky Wang        "auto_value_annotations",
503*f585d8a3SJacky Wang        "auto_value_memoized_extension_annotations",
504*f585d8a3SJacky Wang        "guava",
505*f585d8a3SJacky Wang        "jsr305",
506*f585d8a3SJacky Wang        "dagger2-compiler-lib",
507*f585d8a3SJacky Wang        "dagger2",
508*f585d8a3SJacky Wang        "javapoet",
509*f585d8a3SJacky Wang        "jsr330",
510*f585d8a3SJacky Wang        "kotlin-stdlib",
511*f585d8a3SJacky Wang        "kotlinx_metadata_jvm",
512*f585d8a3SJacky Wang        "dagger2-android-annotation-stubs",
513*f585d8a3SJacky Wang    ],
514*f585d8a3SJacky Wang    // shade guava to avoid conflicts with guava embedded in Error Prone.
515*f585d8a3SJacky Wang    jarjar_rules: "jarjar-rules.txt",
516*f585d8a3SJacky Wang}
517