// Copyright (C) 2015 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package { default_visibility: [":__subpackages__"], default_applicable_licenses: ["external_dagger2_license"], } // Added automatically by a large-scale-change that took the approach of // 'apply every license found to every target'. While this makes sure we respect // every license restriction, it may not be entirely correct. // // e.g. GPL in an MIT project might only apply to the contrib/ directory. // // Please consider splitting the single license below into multiple licenses, // taking care not to lose any license_kind information, and overriding the // default license using the 'licenses: [...]' property on targets as needed. // // For unused files, consider creating a 'fileGroup' with "//visibility:private" // to attach the license to, and including a comment whether the files may be // used in the current project. // // large-scale-change included anything that looked like it might be a license // text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. // // Please consider removing redundant or irrelevant files from 'license_text:'. // See: http://go/android-license-faq license { name: "external_dagger2_license", visibility: [":__subpackages__"], license_kinds: [ "SPDX-license-identifier-Apache-2.0", "legacy_not_a_contribution", ], license_text: [ "LICENSE.txt", "NOTICE", ], } java_import_host { name: "dagger2-bootstrap-compiler-jar", jars: ["java/dagger/internal/codegen/bootstrap/bootstrap_compiler_deploy.jar"], } java_plugin { name: "dagger2-bootstrap-compiler", processor_class: "dagger.internal.codegen.ComponentProcessor", generates_api: true, static_libs: ["dagger2-bootstrap-compiler-jar"], jarjar_rules: "jarjar-rules.txt", } java_library { name: "dagger2", visibility: ["//visibility:public"], host_supported: true, srcs: [ "java/dagger/*.java", "java/dagger/assisted/*.java", "java/dagger/internal/*.java", "java/dagger/multibindings/*.java", "java/dagger/releasablereferences/*.java", ], exclude_srcs: ["java/dagger/android/**/*.java"], libs: [ "guava", "jsr330", ], java_version: "1.8", sdk_version: "core_current", } // build dagger2 producers library // ============================================================ java_library { name: "dagger2-producers", host_supported: true, srcs: ["java/dagger/producers/**/*.java"], static_libs: [ "error_prone_annotations", ], libs: [ "dagger2", "dagger2-android-annotation-stubs", "guava", "jsr330", ], java_version: "1.8", sdk_version: "core_current", } // build dagger2 compiler plugin // ============================================================ java_plugin { name: "dagger2-compiler", visibility: ["//visibility:public"], processor_class: "dagger.internal.codegen.ComponentProcessor", generates_api: true, static_libs: ["dagger2-compiler-lib"], // shade guava to avoid conflicts with guava embedded in Error Prone. jarjar_rules: "jarjar-rules.txt", } java_library_host { name: "dagger2-compiler-lib", use_tools_jar: true, srcs: [ "java/dagger/internal/codegen/**/*.java", "java/dagger/internal/codegen/**/*.proto", "java/dagger/model/*.java", "java/dagger/spi/*.java", ], exclude_srcs: [ "java/dagger/internal/codegen/BindingGraphStatisticsCollector.java", "java/dagger/internal/codegen/kythe/DaggerKythePlugin.java", ], // Manually include META-INF/services/javax.annotation.processing.Processor // as the AutoService processor doesn't work properly. java_resource_dirs: ["resources"], static_libs: [ "auto_common", "dagger2", "dagger2-producers", "google_java_format", "guava", "javapoet", "jsr330", "kotlin-stdlib", "kotlinx_metadata_jvm", ], libs: [ "auto_factory_annotations", "auto_service_annotations", "auto_value_annotations", "auto_value_memoized_extension_annotations", "dagger2-android-annotation-stubs", ], plugins: [ "auto_factory_plugin", "auto_service_plugin", "auto_value_plugin", "auto_value_memoized_extension_plugin", "auto_annotation_plugin", "dagger2-bootstrap-compiler", ], proto: { type: "full", include_dirs: ["external/protobuf/src/"], }, java_version: "1.8", } // Compile dummy implementations of annotations used by dagger2 but not // present in the Android tree. java_library { name: "dagger2-android-annotation-stubs", host_supported: true, sdk_version: "core_current", srcs: ["android-annotation-stubs/src/**/*.java"], } // build core hilt library java_library { name: "hilt_core", srcs: [ "java/dagger/hilt/*.java", "java/dagger/hilt/codegen/*.java", "java/dagger/hilt/components/*.java", "java/dagger/hilt/internal/*.java", "java/dagger/hilt/internal/aliasof/*.java", "java/dagger/hilt/internal/definecomponent/*.java", "java/dagger/hilt/internal/generatesrootinput/*.java", "java/dagger/hilt/migration/*.java", "java/dagger/hilt/processor/internal/aggregateddeps/AggregatedDeps.java", ], static_libs: [ "jsr305", "jsr330", "dagger2", ], sdk_version: "core_current", plugins: [ "hilt_define_component_processor", "hilt_generates_root_input_processor", ], } // Build the android hilt library. Depending on this will enable the Hilt annotation processors. android_library { name: "hilt_android", visibility: ["//visibility:public"], srcs: [ "java/dagger/hilt/android/*.java", "java/dagger/hilt/android/components/*.java", "java/dagger/hilt/android/migration/*.java", "java/dagger/hilt/android/qualifiers/*.java", "java/dagger/hilt/android/scopes/*.java", "java/dagger/hilt/android/internal/*.java", "java/dagger/hilt/android/internal/builders/*.java", "java/dagger/hilt/android/internal/lifecycle/*.java", "java/dagger/hilt/android/internal/managers/*.java", "java/dagger/hilt/android/internal/migration/*.java", "java/dagger/hilt/android/internal/modules/*.java", "java/dagger/hilt/android/lifecycle/*.java", ], manifest: "java/dagger/hilt/android/AndroidManifest.xml", static_libs: [ "androidx.annotation_annotation", "androidx.fragment_fragment", "jsr305", "jsr330", "dagger2", "hilt_core", ], sdk_version: "current", min_sdk_version: "14", plugins: [ "dagger2-compiler", "hilt_android_entry_point_processor", "hilt_aggregated_deps_processor", "hilt_define_component_processor", "hilt_generates_root_input_processor", "hilt_originating_element_processor", "hilt_root_processor", ], exported_plugins: [ "dagger2-compiler", "hilt_android_entry_point_processor", "hilt_aggregated_deps_processor", "hilt_alias_of_processor", "hilt_define_component_processor", "hilt_generates_root_input_processor", "hilt_originating_element_processor", "hilt_root_processor", "hilt_viewmodel_processor", ], } android_library { name: "hilt_android_testing", visibility: ["//visibility:public"], srcs: [ "java/dagger/hilt/android/internal/testing/*.java", "java/dagger/hilt/android/testing/*.java", ], manifest: "java/dagger/hilt/android/testing/AndroidManifest.xml", static_libs: [ "auto_value_annotations", "androidx.annotation_annotation", "androidx.fragment_fragment", "androidx.annotation_annotation", "androidx.fragment_fragment", "androidx.test.core", "android-support-multidex", "jsr305", "dagger2", "hilt_core", "junit", ], sdk_version: "current", min_sdk_version: "14", plugins: [ "auto_value_plugin", "dagger2-compiler", "hilt_generates_root_input_processor", ], exported_plugins: [ "dagger2-compiler", "hilt_android_entry_point_processor", "hilt_aggregated_deps_processor", "hilt_define_component_processor", "hilt_generates_root_input_processor", "hilt_originating_element_processor", "hilt_root_processor", "hilt_viewmodel_processor", "hilt_custom_test_application_processor", "hilt_bindvalue_processor", "hilt_uninstall_modules_processor", ], } // Hilt has many annotation processors. To reduce compilation and runtime cost, they are all compiled // into hilt_android_processors. A java_plugin can only expose a single processor class, so each has // to be defined separately. Since they are not visible outside this package and will always be // exported together, only the first actually contains the annotation processor classes. java_plugin { name: "hilt_generates_root_input_processor", generates_api: true, processor_class: "dagger.hilt.processor.internal.generatesrootinput.GeneratesRootInputProcessor", static_libs: ["hilt_android_processors"], } java_plugin { name: "hilt_android_entry_point_processor", generates_api: true, processor_class: "dagger.hilt.android.processor.internal.androidentrypoint.AndroidEntryPointProcessor", } java_plugin { name: "hilt_aggregated_deps_processor", generates_api: true, processor_class: "dagger.hilt.processor.internal.aggregateddeps.AggregatedDepsProcessor", } java_plugin { name: "hilt_alias_of_processor", generates_api: true, processor_class: "dagger.hilt.processor.internal.aliasof.AliasOfProcessor", } java_plugin { name: "hilt_define_component_processor", generates_api: true, processor_class: "dagger.hilt.processor.internal.definecomponent.DefineComponentProcessor", } java_plugin { name: "hilt_originating_element_processor", generates_api: true, processor_class: "dagger.hilt.processor.internal.originatingelement.OriginatingElementProcessor", } java_plugin { name: "hilt_root_processor", generates_api: true, processor_class: "dagger.hilt.processor.internal.root.RootProcessor", } java_plugin { name: "hilt_viewmodel_processor", generates_api: true, processor_class: "dagger.hilt.android.processor.internal.viewmodel.ViewModelProcessor", } // Hilt testing processors java_plugin { name: "hilt_custom_test_application_processor", generates_api: true, processor_class: "dagger.hilt.android.processor.internal.customtestapplication.CustomTestApplicationProcessor", } java_plugin { name: "hilt_bindvalue_processor", generates_api: true, processor_class: "dagger.hilt.android.processor.internal.bindvalue.BindValueProcessor", } java_plugin { name: "hilt_uninstall_modules_processor", generates_api: true, processor_class: "dagger.hilt.android.processor.internal.uninstallmodules.UninstallModulesProcessor", } java_library_host { name: "hilt_android_processors", use_tools_jar: true, srcs: [ "java/dagger/hilt/android/processor/**/*.java", "java/dagger/hilt/android/processor/**/*.kt", "java/dagger/hilt/codegen/*.java", "java/dagger/hilt/processor/internal/**/*.java", ], plugins: [ "auto_service_plugin", "auto_value_plugin", "auto_value_memoized_extension_plugin", "dagger2-compiler", ], static_libs: [ "auto_common", "auto_service_annotations", "auto_value_annotations", "auto_value_memoized_extension_annotations", "guava", "jsr305", "dagger2-compiler-lib", "dagger2", "javapoet", "jsr330", "kotlin-stdlib", "kotlinx_metadata_jvm", "dagger2-android-annotation-stubs", ], // shade guava to avoid conflicts with guava embedded in Error Prone. jarjar_rules: "jarjar-rules.txt", }