1*f585d8a3SJacky Wang# Copyright (C) 2018 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# The Service Provider Interface for Dagger's binding graph model 17*f585d8a3SJacky Wang 18*f585d8a3SJacky Wangload("@rules_java//java:defs.bzl", "java_library") 19*f585d8a3SJacky Wangload( 20*f585d8a3SJacky Wang "//:build_defs.bzl", 21*f585d8a3SJacky Wang "DOCLINT_HTML_AND_SYNTAX", 22*f585d8a3SJacky Wang "DOCLINT_REFERENCES", 23*f585d8a3SJacky Wang "POM_VERSION", 24*f585d8a3SJacky Wang) 25*f585d8a3SJacky Wangload("//tools:maven.bzl", "gen_maven_artifact") 26*f585d8a3SJacky Wang 27*f585d8a3SJacky Wangpackage(default_visibility = ["//:src"]) 28*f585d8a3SJacky Wang 29*f585d8a3SJacky Wangfilegroup( 30*f585d8a3SJacky Wang name = "spi-srcs", 31*f585d8a3SJacky Wang srcs = glob(["*.java"]) + [ 32*f585d8a3SJacky Wang "//java/dagger/model:model-srcs", 33*f585d8a3SJacky Wang "//java/dagger/spi/model:model-srcs", 34*f585d8a3SJacky Wang ], 35*f585d8a3SJacky Wang) 36*f585d8a3SJacky Wang 37*f585d8a3SJacky Wangjava_library( 38*f585d8a3SJacky Wang name = "spi", 39*f585d8a3SJacky Wang srcs = glob(["*.java"]), 40*f585d8a3SJacky Wang javacopts = DOCLINT_HTML_AND_SYNTAX + DOCLINT_REFERENCES, 41*f585d8a3SJacky Wang tags = ["maven_coordinates=com.google.dagger:dagger-spi:" + POM_VERSION], 42*f585d8a3SJacky Wang exports = [ 43*f585d8a3SJacky Wang "//java/dagger/model", 44*f585d8a3SJacky Wang "//java/dagger/spi/model", 45*f585d8a3SJacky Wang ], 46*f585d8a3SJacky Wang deps = [ 47*f585d8a3SJacky Wang "//java/dagger:core", 48*f585d8a3SJacky Wang "//java/dagger/model", 49*f585d8a3SJacky Wang "//third_party/java/auto:value", 50*f585d8a3SJacky Wang "//third_party/java/error_prone:annotations", 51*f585d8a3SJacky Wang ], 52*f585d8a3SJacky Wang) 53*f585d8a3SJacky Wang 54*f585d8a3SJacky Wanggen_maven_artifact( 55*f585d8a3SJacky Wang name = "artifact", 56*f585d8a3SJacky Wang artifact_coordinates = "com.google.dagger:dagger-spi:" + POM_VERSION, 57*f585d8a3SJacky Wang artifact_name = "Dagger SPI", 58*f585d8a3SJacky Wang artifact_target = ":spi", 59*f585d8a3SJacky Wang artifact_target_libs = [ 60*f585d8a3SJacky Wang "//java/dagger/internal/codegen/extension", 61*f585d8a3SJacky Wang "//java/dagger/model", 62*f585d8a3SJacky Wang "//java/dagger/spi/model", 63*f585d8a3SJacky Wang ], 64*f585d8a3SJacky Wang artifact_target_maven_deps = [ 65*f585d8a3SJacky Wang "com.google.code.findbugs:jsr305", 66*f585d8a3SJacky Wang "com.google.dagger:dagger", 67*f585d8a3SJacky Wang "com.google.devtools.ksp:symbol-processing-api", 68*f585d8a3SJacky Wang "com.google.guava:failureaccess", 69*f585d8a3SJacky Wang "com.google.guava:guava", 70*f585d8a3SJacky Wang "com.squareup:javapoet", 71*f585d8a3SJacky Wang "javax.inject:javax.inject", 72*f585d8a3SJacky Wang ], 73*f585d8a3SJacky Wang javadoc_root_packages = [ 74*f585d8a3SJacky Wang "dagger.model", 75*f585d8a3SJacky Wang "dagger.spi", 76*f585d8a3SJacky Wang ], 77*f585d8a3SJacky Wang javadoc_srcs = [":spi-srcs"], 78*f585d8a3SJacky Wang # The shaded deps are added using jarjar, but they won't be shaded until later 79*f585d8a3SJacky Wang # due to: https://github.com/google/dagger/issues/2765. For the shaded rules see 80*f585d8a3SJacky Wang # util/deploy-dagger.sh 81*f585d8a3SJacky Wang shaded_deps = [ 82*f585d8a3SJacky Wang "//third_party/java/auto:common", 83*f585d8a3SJacky Wang "@maven//:org_jetbrains_kotlinx_kotlinx_metadata_jvm", 84*f585d8a3SJacky Wang "//java/dagger/internal/codegen/xprocessing:xprocessing-jar", 85*f585d8a3SJacky Wang ], 86*f585d8a3SJacky Wang) 87