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