xref: /aosp_15_r20/external/dagger2/java/dagger/spi/BUILD (revision f585d8a307d0621d6060bd7e80091fdcbf94fe27)
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