summaryrefslogtreecommitdiff
path: root/java/java.go
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2020-06-18 01:44:53 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-06-18 01:44:53 +0000
commitc65658301b999c9354bb13ab5ca2f1cb552d25d7 (patch)
tree142a13757d11a490a7a41fd0ddf0bf3ef0236bd2 /java/java.go
parent2cdd68cfd87802f7e9e5d84c463f38bc1493b900 (diff)
parent05394377ba96bb925ebe7f363ae65dc14e511350 (diff)
Merge "Add support for running Android lint on java and android modules." am: a553358b34 am: 05394377ba
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1324098 Change-Id: Iae0b83aef382b116bedefa896e72d0c244046c61
Diffstat (limited to 'java/java.go')
-rw-r--r--java/java.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/java/java.go b/java/java.go
index c2d528b55..bdb0bbbc8 100644
--- a/java/java.go
+++ b/java/java.go
@@ -475,6 +475,7 @@ type Module struct {
hiddenAPI
dexpreopter
+ linter
// list of the xref extraction files
kytheFiles android.Paths
@@ -497,6 +498,7 @@ func (j *Module) addHostAndDeviceProperties() {
j.AddProperties(
&j.deviceProperties,
&j.dexpreoptProperties,
+ &j.linter.properties,
)
}
@@ -1658,6 +1660,28 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
outputFile = implementationAndResourcesJar
}
+ if ctx.Device() {
+ lintSDKVersionString := func(sdkSpec sdkSpec) string {
+ if v := sdkSpec.version; v.isNumbered() {
+ return v.String()
+ } else {
+ return ctx.Config().DefaultAppTargetSdk()
+ }
+ }
+
+ j.linter.name = ctx.ModuleName()
+ j.linter.srcs = srcFiles
+ j.linter.srcJars = srcJars
+ j.linter.classpath = append(append(android.Paths(nil), flags.bootClasspath...), flags.classpath...)
+ j.linter.classes = j.implementationJarFile
+ j.linter.minSdkVersion = lintSDKVersionString(j.minSdkVersion())
+ j.linter.targetSdkVersion = lintSDKVersionString(j.targetSdkVersion())
+ j.linter.compileSdkVersion = lintSDKVersionString(j.sdkVersion())
+ j.linter.javaLanguageLevel = flags.javaVersion.String()
+ j.linter.kotlinLanguageLevel = "1.3"
+ j.linter.lint(ctx)
+ }
+
ctx.CheckbuildFile(outputFile)
// Save the output file with no relative path so that it doesn't end up in a subdirectory when used as a resource
@@ -2266,6 +2290,7 @@ func TestFactory() android.Module {
module.Module.properties.Installable = proptools.BoolPtr(true)
module.Module.dexpreopter.isTest = true
+ module.Module.linter.test = true
InitJavaModule(module, android.HostAndDeviceSupported)
return module
@@ -2280,6 +2305,7 @@ func TestHelperLibraryFactory() android.Module {
module.Module.properties.Installable = proptools.BoolPtr(true)
module.Module.dexpreopter.isTest = true
+ module.Module.linter.test = true
InitJavaModule(module, android.HostAndDeviceSupported)
return module
@@ -2867,6 +2893,7 @@ func DefaultsFactory() android.Module {
&DexImportProperties{},
&android.ApexProperties{},
&RuntimeResourceOverlayProperties{},
+ &LintProperties{},
)
android.InitDefaultsModule(module)