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