blob: dcbe0036da0e50c9ede2e5376c18b416b338cdab [file] [log] [blame]
java_import_host {
name: "lint_api",
jars: [
"tools/lib/lint/lint-api.jar",
"tools/lib/lint/lint-checks.jar",
// A subset of the jars listed in MANIFEST.MF in
// tools/lib/lint-classpath.jar needed to provide dependencies
// of lint-api.jar and lint-checks.jar.
"tools/lib/external/com/google/guava/guava/28.1-jre/guava-28.1-jre.jar",
"tools/lib/external/lint-psi/intellij-core/intellij-core-all.jar",
"tools/lib/external/lint-psi/kotlin-compiler/kotlin-compiler-all.jar",
"tools/lib/external/lint-psi/uast/uast-all.jar",
],
}
// The lint shell script in tools/bin/lint uses tools/lib/lint-classpath.jar as its classpath.
// That jar contains a list of other jars that java adds to the classpath. This makes it impossible
// for the build system to track dependencies.
// This genrule reads the jars from tools/lib/lint-classpath.jar and then merges them all together into
// a single jar. The result is then embedded into a self-contained java_binary.
java_genrule_host {
name: "lint-classpath",
srcs: [
"tools/lib/lint-classpath.jar",
"tools/lib/**/*.jar",
],
out: [
"lint-classpath.jar",
],
tools: [
"merge_zips",
],
cmd: "unzip -pq $(location tools/lib/lint-classpath.jar) META-INF/MANIFEST.MF > $(genDir)/list && " +
"for jar in $$(grep '\\.jar' $(genDir)/list); do " +
" echo $$(dirname $(location tools/lib/lint-classpath.jar))/$${jar}; " +
"done > $(genDir)/jars && " +
"$(location merge_zips) -j -ignore-duplicates -stripFile 'META-INF/*.SF' -stripFile 'META-INF/*.DSA' $(out) $$(cat $(genDir)/jars)",
}
java_binary_host {
name: "lint",
static_libs: ["lint-classpath"],
wrapper: "tools/bin/lint",
}