Update min_sdk_version from SdkSpec to ApiLevel

min_sdk_version signifies device version and does not need an sdkKind to
describe it fully. Update the type and cleanup existing usages. As a
side benefit, we also get better error handling since users can no
longer enter something like `public_30` as a valid min_sdk_version in bp
files

Will do a similar cleanup for targetSdkVersion and maxSdkVersion in a
followup CL

Test: m nothing
Test: no change in ninja files (this should be a no-op)
Bug: 208456999

Change-Id: Ie6ae7e267d093c5e4787e82685daaca1021d202e
This commit is contained in:
Spandan Das
2023-03-03 21:20:36 +00:00
parent 3015e38a5f
commit e773739787
18 changed files with 83 additions and 71 deletions

View File

@@ -752,7 +752,7 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) {
type appDepsInterface interface {
SdkVersion(ctx android.EarlyModuleContext) android.SdkSpec
MinSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec
MinSdkVersion(ctx android.EarlyModuleContext) android.ApiLevel
RequiresStableAPIs(ctx android.BaseModuleContext) bool
}
@@ -865,10 +865,10 @@ func (a *AndroidApp) buildAppDependencyInfo(ctx android.ModuleContext) {
} else {
toMinSdkVersion := "(no version)"
if m, ok := to.(interface {
MinSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec
MinSdkVersion(ctx android.EarlyModuleContext) android.ApiLevel
}); ok {
if v := m.MinSdkVersion(ctx); !v.ApiLevel.IsNone() {
toMinSdkVersion = v.ApiLevel.String()
if v := m.MinSdkVersion(ctx); !v.IsNone() {
toMinSdkVersion = v.String()
}
} else if m, ok := to.(interface{ MinSdkVersion() string }); ok {
// TODO(b/175678607) eliminate the use of MinSdkVersion returning
@@ -1523,9 +1523,9 @@ func (a *AndroidApp) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
manifestValues := &manifestValueAttribute{}
// MinSdkVersion(ctx) calls SdkVersion(ctx) if no value for min_sdk_version is set
minSdkSpec := a.MinSdkVersion(ctx)
if !minSdkSpec.ApiLevel.IsPreview() && minSdkSpec.Valid() {
minSdkStr, err := minSdkSpec.EffectiveVersionString(ctx)
minSdkVersion := a.MinSdkVersion(ctx)
if !minSdkVersion.IsPreview() && !minSdkVersion.IsInvalid() {
minSdkStr, err := minSdkVersion.EffectiveVersionString(ctx)
if err == nil {
manifestValues.MinSdkVersion = &minSdkStr
}