xref: /aosp_15_r20/external/dagger2/java/dagger/lint/BUILD (revision f585d8a307d0621d6060bd7e80091fdcbf94fe27)
1*f585d8a3SJacky Wang# Copyright (C) 2020 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#   Dagger Lint Rules
17*f585d8a3SJacky Wang
18*f585d8a3SJacky Wangload("//:build_defs.bzl", "POM_VERSION")
19*f585d8a3SJacky Wangload("//tools:maven.bzl", "gen_maven_artifact")
20*f585d8a3SJacky Wangload("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kt_jvm_library")
21*f585d8a3SJacky Wang
22*f585d8a3SJacky Wangpackage(default_visibility = ["//:src"])
23*f585d8a3SJacky Wang
24*f585d8a3SJacky Wangkt_jvm_library(
25*f585d8a3SJacky Wang    name = "lint-artifact-lib",
26*f585d8a3SJacky Wang    srcs = glob(["*.kt"]),
27*f585d8a3SJacky Wang    tags = ["maven_coordinates=com.google.dagger:dagger-lint:" + POM_VERSION],
28*f585d8a3SJacky Wang    deps = [
29*f585d8a3SJacky Wang        "//third_party/java/auto:service",
30*f585d8a3SJacky Wang        "@maven//:com_android_tools_external_com_intellij_intellij_core",
31*f585d8a3SJacky Wang        "@maven//:com_android_tools_external_com_intellij_kotlin_compiler",
32*f585d8a3SJacky Wang        "@maven//:com_android_tools_external_org_jetbrains_uast",
33*f585d8a3SJacky Wang        "@maven//:com_android_tools_lint_lint",
34*f585d8a3SJacky Wang        "@maven//:com_android_tools_lint_lint_api",
35*f585d8a3SJacky Wang    ],
36*f585d8a3SJacky Wang)
37*f585d8a3SJacky Wang
38*f585d8a3SJacky Wang# Current `kt_jvm_library` does not output source jars and gen_maven_artifact expects one.
39*f585d8a3SJacky Wang# See: https://github.com/bazelbuild/rules_kotlin/issues/324
40*f585d8a3SJacky Wanggenrule(
41*f585d8a3SJacky Wang    name = "dagger-lint-sources",
42*f585d8a3SJacky Wang    srcs = glob(["*.kt"]),
43*f585d8a3SJacky Wang    outs = ["liblint-artifact-lib-src.jar"],
44*f585d8a3SJacky Wang    cmd = """
45*f585d8a3SJacky Wang        TEMP="$$(mktemp -d)"
46*f585d8a3SJacky Wang        for file in $(SRCS); do
47*f585d8a3SJacky Wang            filename="$$TEMP/$${file#java/}"
48*f585d8a3SJacky Wang            mkdir -p `dirname $$filename` && cp $$file $$filename
49*f585d8a3SJacky Wang        done
50*f585d8a3SJacky Wang        jar cf $@ -C $$TEMP .
51*f585d8a3SJacky Wang    """,
52*f585d8a3SJacky Wang)
53*f585d8a3SJacky Wang
54*f585d8a3SJacky Wanggen_maven_artifact(
55*f585d8a3SJacky Wang    name = "lint-artifact",
56*f585d8a3SJacky Wang    artifact_coordinates = "com.google.dagger:dagger-lint:" + POM_VERSION,
57*f585d8a3SJacky Wang    artifact_name = "Dagger Lint Rules",
58*f585d8a3SJacky Wang    artifact_target = ":lint-artifact-lib",
59*f585d8a3SJacky Wang    artifact_target_maven_deps = [
60*f585d8a3SJacky Wang        "com.android.tools.external.com-intellij:intellij-core",
61*f585d8a3SJacky Wang        "com.android.tools.external.com-intellij:kotlin-compiler",
62*f585d8a3SJacky Wang        "com.android.tools.external.org-jetbrains:uast",
63*f585d8a3SJacky Wang        "com.android.tools.lint:lint",
64*f585d8a3SJacky Wang        "com.android.tools.lint:lint-api",
65*f585d8a3SJacky Wang    ],
66*f585d8a3SJacky Wang    pom_name = "lint-pom",
67*f585d8a3SJacky Wang)
68*f585d8a3SJacky Wang
69*f585d8a3SJacky Wang# An empty android artifact to distribute and share the Dagger lint rules for
70*f585d8a3SJacky Wang# the Android sub-projects.
71*f585d8a3SJacky Wangandroid_library(
72*f585d8a3SJacky Wang    name = "lint-android-artifact-lib",
73*f585d8a3SJacky Wang    tags = ["maven_coordinates=com.google.dagger:dagger-lint-aar:" + POM_VERSION],
74*f585d8a3SJacky Wang)
75*f585d8a3SJacky Wang
76*f585d8a3SJacky Wanggen_maven_artifact(
77*f585d8a3SJacky Wang    name = "lint-android-artifact",
78*f585d8a3SJacky Wang    artifact_coordinates = "com.google.dagger:dagger-lint-aar:" + POM_VERSION,
79*f585d8a3SJacky Wang    artifact_name = "Dagger Lint Rules AAR Distribution",
80*f585d8a3SJacky Wang    artifact_target = ":lint-android-artifact-lib",
81*f585d8a3SJacky Wang    lint_deps = [":lint-artifact-lib"],
82*f585d8a3SJacky Wang    manifest = "AndroidManifest.xml",
83*f585d8a3SJacky Wang    packaging = "aar",
84*f585d8a3SJacky Wang    pom_name = "lint-android-pom",
85*f585d8a3SJacky Wang)
86