| # 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", |
| ) |