Enforce newapi check only if min_sdk_version < compile_sdk_version
- NewApi check should be enforced only if min_sdk_version is less than
the compile_sdk_version (the opposite direction should be a different
build-time error)
- Change the datatype of *sdkVersion to android.ApiLevel (from string)
to support version comparisons
Test: go build ./java
Test: no changes in ninja file
Bug: 228956345
Merged-In: Ic408857db7760d912ef4694d2ed72c0b7106eb04
Change-Id: Ic408857db7760d912ef4694d2ed72c0b7106eb04
(cherry picked from commit ba7e532a11
)
This commit is contained in:
12
java/base.go
12
java/base.go
@@ -1481,11 +1481,11 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ctx.Device() {
|
if ctx.Device() {
|
||||||
lintSDKVersionString := func(sdkSpec android.SdkSpec) string {
|
lintSDKVersion := func(sdkSpec android.SdkSpec) android.ApiLevel {
|
||||||
if v := sdkSpec.ApiLevel; !v.IsPreview() {
|
if v := sdkSpec.ApiLevel; !v.IsPreview() {
|
||||||
return v.String()
|
return v
|
||||||
} else {
|
} else {
|
||||||
return ctx.Config().DefaultAppTargetSdk(ctx).String()
|
return ctx.Config().DefaultAppTargetSdk(ctx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1494,9 +1494,9 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
|
|||||||
j.linter.srcJars = srcJars
|
j.linter.srcJars = srcJars
|
||||||
j.linter.classpath = append(append(android.Paths(nil), flags.bootClasspath...), flags.classpath...)
|
j.linter.classpath = append(append(android.Paths(nil), flags.bootClasspath...), flags.classpath...)
|
||||||
j.linter.classes = j.implementationJarFile
|
j.linter.classes = j.implementationJarFile
|
||||||
j.linter.minSdkVersion = lintSDKVersionString(j.MinSdkVersion(ctx))
|
j.linter.minSdkVersion = lintSDKVersion(j.MinSdkVersion(ctx))
|
||||||
j.linter.targetSdkVersion = lintSDKVersionString(j.TargetSdkVersion(ctx))
|
j.linter.targetSdkVersion = lintSDKVersion(j.TargetSdkVersion(ctx))
|
||||||
j.linter.compileSdkVersion = lintSDKVersionString(j.SdkVersion(ctx))
|
j.linter.compileSdkVersion = lintSDKVersion(j.SdkVersion(ctx))
|
||||||
j.linter.compileSdkKind = j.SdkVersion(ctx).Kind
|
j.linter.compileSdkKind = j.SdkVersion(ctx).Kind
|
||||||
j.linter.javaLanguageLevel = flags.javaVersion.String()
|
j.linter.javaLanguageLevel = flags.javaVersion.String()
|
||||||
j.linter.kotlinLanguageLevel = "1.3"
|
j.linter.kotlinLanguageLevel = "1.3"
|
||||||
|
12
java/lint.go
12
java/lint.go
@@ -75,9 +75,9 @@ type linter struct {
|
|||||||
extraLintCheckJars android.Paths
|
extraLintCheckJars android.Paths
|
||||||
test bool
|
test bool
|
||||||
library bool
|
library bool
|
||||||
minSdkVersion string
|
minSdkVersion android.ApiLevel
|
||||||
targetSdkVersion string
|
targetSdkVersion android.ApiLevel
|
||||||
compileSdkVersion string
|
compileSdkVersion android.ApiLevel
|
||||||
compileSdkKind android.SdkKind
|
compileSdkKind android.SdkKind
|
||||||
javaLanguageLevel string
|
javaLanguageLevel string
|
||||||
kotlinLanguageLevel string
|
kotlinLanguageLevel string
|
||||||
@@ -300,7 +300,7 @@ func (l *linter) generateManifest(ctx android.ModuleContext, rule *android.RuleB
|
|||||||
Text(`echo "<manifest xmlns:android='http://schemas.android.com/apk/res/android'" &&`).
|
Text(`echo "<manifest xmlns:android='http://schemas.android.com/apk/res/android'" &&`).
|
||||||
Text(`echo " android:versionCode='1' android:versionName='1' >" &&`).
|
Text(`echo " android:versionCode='1' android:versionName='1' >" &&`).
|
||||||
Textf(`echo " <uses-sdk android:minSdkVersion='%s' android:targetSdkVersion='%s'/>" &&`,
|
Textf(`echo " <uses-sdk android:minSdkVersion='%s' android:targetSdkVersion='%s'/>" &&`,
|
||||||
l.minSdkVersion, l.targetSdkVersion).
|
l.minSdkVersion.String(), l.targetSdkVersion.String()).
|
||||||
Text(`echo "</manifest>"`).
|
Text(`echo "</manifest>"`).
|
||||||
Text(") >").Output(manifestPath)
|
Text(") >").Output(manifestPath)
|
||||||
|
|
||||||
@@ -325,7 +325,7 @@ func (l *linter) lint(ctx android.ModuleContext) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if l.minSdkVersion != l.compileSdkVersion {
|
if l.minSdkVersion.CompareTo(l.compileSdkVersion) == -1 {
|
||||||
l.extraMainlineLintErrors = append(l.extraMainlineLintErrors, updatabilityChecks...)
|
l.extraMainlineLintErrors = append(l.extraMainlineLintErrors, updatabilityChecks...)
|
||||||
_, filtered := android.FilterList(l.properties.Lint.Warning_checks, updatabilityChecks)
|
_, filtered := android.FilterList(l.properties.Lint.Warning_checks, updatabilityChecks)
|
||||||
if len(filtered) != 0 {
|
if len(filtered) != 0 {
|
||||||
@@ -427,7 +427,7 @@ func (l *linter) lint(ctx android.ModuleContext) {
|
|||||||
FlagWithOutput("--html ", html).
|
FlagWithOutput("--html ", html).
|
||||||
FlagWithOutput("--text ", text).
|
FlagWithOutput("--text ", text).
|
||||||
FlagWithOutput("--xml ", xml).
|
FlagWithOutput("--xml ", xml).
|
||||||
FlagWithArg("--compile-sdk-version ", l.compileSdkVersion).
|
FlagWithArg("--compile-sdk-version ", l.compileSdkVersion.String()).
|
||||||
FlagWithArg("--java-language-level ", l.javaLanguageLevel).
|
FlagWithArg("--java-language-level ", l.javaLanguageLevel).
|
||||||
FlagWithArg("--kotlin-language-level ", l.kotlinLanguageLevel).
|
FlagWithArg("--kotlin-language-level ", l.kotlinLanguageLevel).
|
||||||
FlagWithArg("--url ", fmt.Sprintf(".=.,%s=out", android.PathForOutput(ctx).String())).
|
FlagWithArg("--url ", fmt.Sprintf(".=.,%s=out", android.PathForOutput(ctx).String())).
|
||||||
|
Reference in New Issue
Block a user