# Copyright (C) 2020 The Dagger Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Description: # Dagger Lint Rules load("//:build_defs.bzl", "POM_VERSION") load("//tools:maven.bzl", "gen_maven_artifact") load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kt_jvm_library") package(default_visibility = ["//:src"]) kt_jvm_library( name = "lint-artifact-lib", srcs = glob(["*.kt"]), tags = ["maven_coordinates=com.google.dagger:dagger-lint:" + POM_VERSION], deps = [ "@google_bazel_common//third_party/java/auto:service", "@maven//:com_android_tools_external_com_intellij_intellij_core", "@maven//:com_android_tools_external_com_intellij_kotlin_compiler", "@maven//:com_android_tools_external_org_jetbrains_uast", "@maven//:com_android_tools_lint_lint", "@maven//:com_android_tools_lint_lint_api", ], ) # Current `kt_jvm_library` does not output source jars and gen_maven_artifact expects one. # See: https://github.com/bazelbuild/rules_kotlin/issues/324 genrule( name = "dagger-lint-sources", srcs = glob(["*.kt"]), outs = ["liblint-artifact-lib-src.jar"], cmd = """ TEMP="$$(mktemp -d)" for file in $(SRCS); do filename="$$TEMP/$${file#java/}" mkdir -p `dirname $$filename` && cp $$file $$filename done jar cf $@ -C $$TEMP . """, ) gen_maven_artifact( name = "lint-artifact", artifact_coordinates = "com.google.dagger:dagger-lint:" + POM_VERSION, artifact_name = "Dagger Lint Rules", artifact_target = ":lint-artifact-lib", artifact_target_maven_deps = [ "com.android.tools.external.com-intellij:intellij-core", "com.android.tools.external.com-intellij:kotlin-compiler", "com.android.tools.external.org-jetbrains:uast", "com.android.tools.lint:lint", "com.android.tools.lint:lint-api", ], pom_name = "lint-pom", ) # An empty android artifact to distribute and share the Dagger lint rules for # the Android sub-projects. android_library( name = "lint-android-artifact-lib", tags = ["maven_coordinates=com.google.dagger:dagger-lint-aar:" + POM_VERSION], ) gen_maven_artifact( name = "lint-android-artifact", artifact_coordinates = "com.google.dagger:dagger-lint-aar:" + POM_VERSION, artifact_name = "Dagger Lint Rules AAR Distribution", artifact_target = ":lint-android-artifact-lib", lint_deps = [":lint-artifact-lib"], manifest = "AndroidManifest.xml", packaging = "aar", pom_name = "lint-android-pom", )