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