Use ApiLevel on min, target and compile Sdk version
This change is a partial revert of aosp/2143082. The reason is that unreleased apis should be referenced by name instead of a number. link to xml reports before/after this cl: https://drive.google.com/drive/folders/1woIgVlHF6qude5RpW-0mEQLzcXo4isX4?usp=sharing Test: m lint-check Change-Id: I6d801f95a24400c9c5c23546e19d6440bd357873
This commit is contained in:
25
java/base.go
25
java/base.go
@@ -1678,30 +1678,11 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath
|
||||
}
|
||||
|
||||
if ctx.Device() {
|
||||
lintSDKVersion := func(apiLevel android.ApiLevel) int {
|
||||
lintSDKVersion := func(apiLevel android.ApiLevel) android.ApiLevel {
|
||||
if !apiLevel.IsPreview() {
|
||||
return apiLevel.FinalInt()
|
||||
return apiLevel
|
||||
} else {
|
||||
// When running metalava, we pass --version-codename. When that value
|
||||
// is not REL, metalava will add 1 to the --current-version argument.
|
||||
// On old branches, PLATFORM_SDK_VERSION is the latest version (for that
|
||||
// branch) and the codename is REL, except potentially on the most
|
||||
// recent non-master branch. On that branch, it goes through two other
|
||||
// phases before it gets to the phase previously described:
|
||||
// - PLATFORM_SDK_VERSION has not been updated yet, and the codename
|
||||
// is not rel. This happens for most of the internal branch's life
|
||||
// while the branch has been cut but is still under active development.
|
||||
// - PLATFORM_SDK_VERSION has been set, but the codename is still not
|
||||
// REL. This happens briefly during the release process. During this
|
||||
// state the code to add --current-version is commented out, and then
|
||||
// that commenting out is reverted after the codename is set to REL.
|
||||
// On the master branch, the PLATFORM_SDK_VERSION always represents a
|
||||
// prior version and the codename is always non-REL.
|
||||
//
|
||||
// We need to add one here to match metalava adding 1. Technically
|
||||
// this means that in the state described in the second bullet point
|
||||
// above, this number is 1 higher than it should be.
|
||||
return ctx.Config().PlatformSdkVersion().FinalInt() + 1
|
||||
return ctx.Config().DefaultAppTargetSdk(ctx)
|
||||
}
|
||||
}
|
||||
|
||||
|
15
java/lint.go
15
java/lint.go
@@ -17,7 +17,6 @@ package java
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/google/blueprint/proptools"
|
||||
@@ -84,9 +83,9 @@ type linter struct {
|
||||
classes android.Path
|
||||
extraLintCheckJars android.Paths
|
||||
library bool
|
||||
minSdkVersion int
|
||||
targetSdkVersion int
|
||||
compileSdkVersion int
|
||||
minSdkVersion android.ApiLevel
|
||||
targetSdkVersion android.ApiLevel
|
||||
compileSdkVersion android.ApiLevel
|
||||
compileSdkKind android.SdkKind
|
||||
javaLanguageLevel string
|
||||
kotlinLanguageLevel string
|
||||
@@ -356,8 +355,8 @@ func (l *linter) generateManifest(ctx android.ModuleContext, rule *android.RuleB
|
||||
Text(`echo "<?xml version='1.0' encoding='utf-8'?>" &&`).
|
||||
Text(`echo "<manifest xmlns:android='http://schemas.android.com/apk/res/android'" &&`).
|
||||
Text(`echo " android:versionCode='1' android:versionName='1' >" &&`).
|
||||
Textf(`echo " <uses-sdk android:minSdkVersion='%d' android:targetSdkVersion='%d'/>" &&`,
|
||||
l.minSdkVersion, l.targetSdkVersion).
|
||||
Textf(`echo " <uses-sdk android:minSdkVersion='%s' android:targetSdkVersion='%s'/>" &&`,
|
||||
l.minSdkVersion.String(), l.targetSdkVersion.String()).
|
||||
Text(`echo "</manifest>"`).
|
||||
Text(") >").Output(manifestPath)
|
||||
|
||||
@@ -382,7 +381,7 @@ func (l *linter) lint(ctx android.ModuleContext) {
|
||||
return
|
||||
}
|
||||
|
||||
if l.minSdkVersion != l.compileSdkVersion {
|
||||
if l.minSdkVersion.CompareTo(l.compileSdkVersion) == -1 {
|
||||
l.extraMainlineLintErrors = append(l.extraMainlineLintErrors, updatabilityChecks...)
|
||||
// Skip lint warning checks for NewApi warnings for libcore where they come from source
|
||||
// files that reference the API they are adding (b/208656169).
|
||||
@@ -496,7 +495,7 @@ func (l *linter) lint(ctx android.ModuleContext) {
|
||||
FlagWithOutput("--html ", html).
|
||||
FlagWithOutput("--text ", text).
|
||||
FlagWithOutput("--xml ", xml).
|
||||
FlagWithArg("--compile-sdk-version ", strconv.Itoa(l.compileSdkVersion)).
|
||||
FlagWithArg("--compile-sdk-version ", l.compileSdkVersion.String()).
|
||||
FlagWithArg("--java-language-level ", l.javaLanguageLevel).
|
||||
FlagWithArg("--kotlin-language-level ", l.kotlinLanguageLevel).
|
||||
FlagWithArg("--url ", fmt.Sprintf(".=.,%s=out", android.PathForOutput(ctx).String())).
|
||||
|
Reference in New Issue
Block a user