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