1*f585d8a3SJacky Wang# Copyright (C) 2017 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 JSR-330 compliant dependency injection system for android and java 17*f585d8a3SJacky Wang 18*f585d8a3SJacky Wangload("@rules_java//java:defs.bzl", "java_library", "java_plugin") 19*f585d8a3SJacky Wangload( 20*f585d8a3SJacky Wang "//:build_defs.bzl", 21*f585d8a3SJacky Wang "POM_VERSION", 22*f585d8a3SJacky Wang) 23*f585d8a3SJacky Wangload("//tools:maven.bzl", "gen_maven_artifact") 24*f585d8a3SJacky Wang 25*f585d8a3SJacky Wangpackage(default_visibility = ["//:src"]) 26*f585d8a3SJacky Wang 27*f585d8a3SJacky Wangjava_library( 28*f585d8a3SJacky Wang name = "processor", 29*f585d8a3SJacky Wang srcs = glob( 30*f585d8a3SJacky Wang ["*.java"], 31*f585d8a3SJacky Wang exclude = ["package-info.java"], 32*f585d8a3SJacky Wang ), 33*f585d8a3SJacky Wang plugins = [ 34*f585d8a3SJacky Wang "//java/dagger/internal/codegen/bootstrap", 35*f585d8a3SJacky Wang ], 36*f585d8a3SJacky Wang tags = ["maven_coordinates=com.google.dagger:dagger-compiler:" + POM_VERSION], 37*f585d8a3SJacky Wang deps = [ 38*f585d8a3SJacky Wang ":package_info", 39*f585d8a3SJacky Wang "//java/dagger:core", 40*f585d8a3SJacky Wang "//java/dagger/internal/codegen/base", 41*f585d8a3SJacky Wang "//java/dagger/internal/codegen/binding", 42*f585d8a3SJacky Wang "//java/dagger/internal/codegen/bindinggraphvalidation", 43*f585d8a3SJacky Wang "//java/dagger/internal/codegen/compileroption", 44*f585d8a3SJacky Wang "//java/dagger/internal/codegen/componentgenerator", 45*f585d8a3SJacky Wang "//java/dagger/internal/codegen/kotlin", 46*f585d8a3SJacky Wang "//java/dagger/internal/codegen/processingstep", 47*f585d8a3SJacky Wang "//java/dagger/internal/codegen/validation", 48*f585d8a3SJacky Wang "//java/dagger/internal/codegen/writing", 49*f585d8a3SJacky Wang "//java/dagger/internal/codegen/xprocessing", 50*f585d8a3SJacky Wang "//java/dagger/spi", 51*f585d8a3SJacky Wang "//third_party/java/auto:service", 52*f585d8a3SJacky Wang "//third_party/java/error_prone:annotations", 53*f585d8a3SJacky Wang "//third_party/java/google_java_format", 54*f585d8a3SJacky Wang "//third_party/java/guava/collect", 55*f585d8a3SJacky Wang "//third_party/java/incap", 56*f585d8a3SJacky Wang "@maven//:com_google_devtools_ksp_symbol_processing_api", 57*f585d8a3SJacky Wang ], 58*f585d8a3SJacky Wang) 59*f585d8a3SJacky Wang 60*f585d8a3SJacky Wangjava_library( 61*f585d8a3SJacky Wang name = "package_info", 62*f585d8a3SJacky Wang srcs = ["package-info.java"], 63*f585d8a3SJacky Wang tags = ["maven:merged"], 64*f585d8a3SJacky Wang deps = ["//third_party/java/error_prone:annotations"], 65*f585d8a3SJacky Wang) 66*f585d8a3SJacky Wang 67*f585d8a3SJacky Wanggen_maven_artifact( 68*f585d8a3SJacky Wang name = "artifact", 69*f585d8a3SJacky Wang artifact_coordinates = "com.google.dagger:dagger-compiler:" + POM_VERSION, 70*f585d8a3SJacky Wang artifact_name = "Dagger Compiler", 71*f585d8a3SJacky Wang artifact_target = ":processor", 72*f585d8a3SJacky Wang artifact_target_libs = [ 73*f585d8a3SJacky Wang ":package_info", 74*f585d8a3SJacky Wang "//java/dagger/internal/codegen/base", 75*f585d8a3SJacky Wang "//java/dagger/internal/codegen/base:shared", 76*f585d8a3SJacky Wang "//java/dagger/internal/codegen/binding", 77*f585d8a3SJacky Wang "//java/dagger/internal/codegen/bindinggraphvalidation", 78*f585d8a3SJacky Wang "//java/dagger/internal/codegen/compileroption", 79*f585d8a3SJacky Wang "//java/dagger/internal/codegen/componentgenerator", 80*f585d8a3SJacky Wang "//java/dagger/internal/codegen/javapoet", 81*f585d8a3SJacky Wang "//java/dagger/internal/codegen/kotlin", 82*f585d8a3SJacky Wang "//java/dagger/internal/codegen/langmodel", 83*f585d8a3SJacky Wang "//java/dagger/internal/codegen/model", 84*f585d8a3SJacky Wang "//java/dagger/internal/codegen/processingstep", 85*f585d8a3SJacky Wang "//java/dagger/internal/codegen/validation", 86*f585d8a3SJacky Wang "//java/dagger/internal/codegen/writing", 87*f585d8a3SJacky Wang "//java/dagger/internal/codegen/xprocessing", 88*f585d8a3SJacky Wang ], 89*f585d8a3SJacky Wang artifact_target_maven_deps = [ 90*f585d8a3SJacky Wang "com.google.code.findbugs:jsr305", 91*f585d8a3SJacky Wang "com.google.dagger:dagger-spi", 92*f585d8a3SJacky Wang "com.google.dagger:dagger", 93*f585d8a3SJacky Wang "com.google.devtools.ksp:symbol-processing-api", 94*f585d8a3SJacky Wang "com.google.googlejavaformat:google-java-format", 95*f585d8a3SJacky Wang "com.google.guava:failureaccess", 96*f585d8a3SJacky Wang "com.google.guava:guava", 97*f585d8a3SJacky Wang "com.squareup:javapoet", 98*f585d8a3SJacky Wang "com.squareup:kotlinpoet", 99*f585d8a3SJacky Wang "javax.inject:javax.inject", 100*f585d8a3SJacky Wang "net.ltgt.gradle.incap:incap", 101*f585d8a3SJacky Wang "org.checkerframework:checker-compat-qual", 102*f585d8a3SJacky Wang "org.jetbrains.kotlin:kotlin-stdlib", 103*f585d8a3SJacky Wang ], 104*f585d8a3SJacky Wang javadoc_root_packages = ["dagger.internal.codegen"], 105*f585d8a3SJacky Wang # The javadocs should only include ComponentProcessor.java, since that is the only class used 106*f585d8a3SJacky Wang # externally. Specifically, ComponentProcessor.forTesting() is required for testing SPI plugins. 107*f585d8a3SJacky Wang javadoc_srcs = ["ComponentProcessor.java"], 108*f585d8a3SJacky Wang # The shaded deps are inherited from dagger spi. For the shaded rules see util/deploy-dagger.sh 109*f585d8a3SJacky Wang) 110*f585d8a3SJacky Wang 111*f585d8a3SJacky Wangjava_plugin( 112*f585d8a3SJacky Wang name = "component-codegen", 113*f585d8a3SJacky Wang generates_api = 1, 114*f585d8a3SJacky Wang output_licenses = ["unencumbered"], 115*f585d8a3SJacky Wang processor_class = "dagger.internal.codegen.ComponentProcessor", 116*f585d8a3SJacky Wang tags = [ 117*f585d8a3SJacky Wang "annotation=dagger.Component;" + 118*f585d8a3SJacky Wang "genclass=${package}.Dagger${outerclasses}${classname}", 119*f585d8a3SJacky Wang "annotation=dagger.producers.ProductionComponent;" + 120*f585d8a3SJacky Wang "genclass=${package}.Dagger${outerclasses}${classname}", 121*f585d8a3SJacky Wang "annotation=dagger.MapKey;" + 122*f585d8a3SJacky Wang "genclass=${package}.${outerclasses}${classname}Creator", 123*f585d8a3SJacky Wang ], 124*f585d8a3SJacky Wang deps = [":processor"], 125*f585d8a3SJacky Wang) 126