86 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
# 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",
 | 
						|
)
 |