You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
3.0 KiB
86 lines
3.0 KiB
7 months ago
|
# 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",
|
||
|
)
|