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