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