Replace FutureApiLevel with an ApiLevel.
Keeping the int constant around for now as FutureApiLevelInt because it's still useful in places that haven't adopted ApiLevel yet for testing if their non-ApiLevel API level is current or not. Test: treehugger Bug: http://b/154667674 Change-Id: I47a7012703f41fdeb56f91edf9c83afa93042deb
This commit is contained in:
@@ -51,7 +51,7 @@ type ApiLevel struct {
|
||||
|
||||
func (this ApiLevel) FinalOrFutureInt() int {
|
||||
if this.IsPreview() {
|
||||
return FutureApiLevel
|
||||
return FutureApiLevelInt
|
||||
} else {
|
||||
return this.number
|
||||
}
|
||||
@@ -127,13 +127,6 @@ func uncheckedFinalApiLevel(num int) ApiLevel {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Merge with FutureApiLevel
|
||||
var CurrentApiLevel = ApiLevel{
|
||||
value: "current",
|
||||
number: 10000,
|
||||
isPreview: true,
|
||||
}
|
||||
|
||||
var NoneApiLevel = ApiLevel{
|
||||
value: "(no version)",
|
||||
// Not 0 because we don't want this to compare equal with the first preview.
|
||||
@@ -188,7 +181,7 @@ func ApiLevelFromUser(ctx EarlyModuleContext, raw string) (ApiLevel, error) {
|
||||
}
|
||||
|
||||
if raw == "current" {
|
||||
return CurrentApiLevel, nil
|
||||
return FutureApiLevel, nil
|
||||
}
|
||||
|
||||
for _, preview := range ctx.Config().PreviewApiLevels() {
|
||||
|
@@ -37,7 +37,13 @@ var Bool = proptools.Bool
|
||||
var String = proptools.String
|
||||
var StringDefault = proptools.StringDefault
|
||||
|
||||
const FutureApiLevel = 10000
|
||||
const FutureApiLevelInt = 10000
|
||||
|
||||
var FutureApiLevel = ApiLevel{
|
||||
value: "current",
|
||||
number: FutureApiLevelInt,
|
||||
isPreview: true,
|
||||
}
|
||||
|
||||
// The configuration file name
|
||||
const configFileName = "soong.config"
|
||||
@@ -672,11 +678,12 @@ func (c *config) AllSupportedApiLevels() []ApiLevel {
|
||||
return append(levels, c.PreviewApiLevels()...)
|
||||
}
|
||||
|
||||
// TODO: Merge this and DefaultAppTargetSdk to just return an ApiLevel.
|
||||
func (c *config) DefaultAppTargetSdkInt() int {
|
||||
if Bool(c.productVariables.Platform_sdk_final) {
|
||||
return c.PlatformSdkVersionInt()
|
||||
} else {
|
||||
return FutureApiLevel
|
||||
return FutureApiLevelInt
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1955,7 +1955,7 @@ func (a *apexBundle) WalkPayloadDeps(ctx android.ModuleContext, do android.Paylo
|
||||
func (a *apexBundle) minSdkVersion(ctx android.BaseModuleContext) android.ApiLevel {
|
||||
ver := proptools.String(a.properties.Min_sdk_version)
|
||||
if ver == "" {
|
||||
return android.CurrentApiLevel
|
||||
return android.FutureApiLevel
|
||||
}
|
||||
apiLevel, err := android.ApiLevelFromUser(ctx, ver)
|
||||
if err != nil {
|
||||
@@ -1964,7 +1964,7 @@ func (a *apexBundle) minSdkVersion(ctx android.BaseModuleContext) android.ApiLev
|
||||
}
|
||||
if apiLevel.IsPreview() {
|
||||
// All codenames should build against "current".
|
||||
return android.CurrentApiLevel
|
||||
return android.FutureApiLevel
|
||||
}
|
||||
return apiLevel
|
||||
}
|
||||
|
4
cc/cc.go
4
cc/cc.go
@@ -2291,7 +2291,7 @@ func (c *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
|
||||
}
|
||||
|
||||
// For the dependency from platform to apex, use the latest stubs
|
||||
c.apexSdkVersion = android.CurrentApiLevel
|
||||
c.apexSdkVersion = android.FutureApiLevel
|
||||
if !c.IsForPlatform() {
|
||||
c.apexSdkVersion = c.ApexProperties.Info.MinSdkVersion(ctx)
|
||||
}
|
||||
@@ -2300,7 +2300,7 @@ func (c *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
|
||||
// In hwasan build, we override apexSdkVersion to the FutureApiLevel(10000)
|
||||
// so that even Q(29/Android10) apexes could use the dynamic unwinder by linking the newer stubs(e.g libc(R+)).
|
||||
// (b/144430859)
|
||||
c.apexSdkVersion = android.CurrentApiLevel
|
||||
c.apexSdkVersion = android.FutureApiLevel
|
||||
}
|
||||
|
||||
ctx.VisitDirectDeps(func(dep android.Module) {
|
||||
|
@@ -392,7 +392,7 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
|
||||
if ctx.Os().Class == android.Device {
|
||||
version := ctx.sdkVersion()
|
||||
if version == "" || version == "current" {
|
||||
target += strconv.Itoa(android.FutureApiLevel)
|
||||
target += strconv.Itoa(android.FutureApiLevelInt)
|
||||
} else {
|
||||
target += version
|
||||
}
|
||||
|
@@ -118,8 +118,8 @@ func generatePerApiVariants(ctx android.BottomUpMutatorContext, m *Module,
|
||||
versionStrs = append(versionStrs, version.String())
|
||||
}
|
||||
}
|
||||
versions = append(versions, android.CurrentApiLevel)
|
||||
versionStrs = append(versionStrs, android.CurrentApiLevel.String())
|
||||
versions = append(versions, android.FutureApiLevel)
|
||||
versionStrs = append(versionStrs, android.FutureApiLevel.String())
|
||||
|
||||
modules := ctx.CreateVariations(versionStrs...)
|
||||
for i, module := range modules {
|
||||
|
@@ -107,7 +107,7 @@ type sdkVersion int
|
||||
|
||||
const (
|
||||
// special version number for a not-yet-frozen SDK
|
||||
sdkVersionCurrent sdkVersion = sdkVersion(android.FutureApiLevel)
|
||||
sdkVersionCurrent sdkVersion = sdkVersion(android.FutureApiLevelInt)
|
||||
// special version number to be used for SDK specs where version number doesn't
|
||||
// make sense, e.g. "none", "", etc.
|
||||
sdkVersionNone sdkVersion = sdkVersion(0)
|
||||
|
Reference in New Issue
Block a user