Loading android/sdk_version.go +17 −14 Original line number Diff line number Diff line Loading @@ -22,15 +22,15 @@ import ( type SdkContext interface { // SdkVersion returns SdkSpec that corresponds to the sdk_version property of the current module SdkVersion() SdkSpec SdkVersion(ctx EarlyModuleContext) SdkSpec // SystemModules returns the system_modules property of the current module, or an empty string if it is not set. SystemModules() string // MinSdkVersion returns SdkSpec that corresponds to the min_sdk_version property of the current module, // or from sdk_version if it is not set. MinSdkVersion() SdkSpec MinSdkVersion(ctx EarlyModuleContext) SdkSpec // TargetSdkVersion returns the SdkSpec that corresponds to the target_sdk_version property of the current module, // or from sdk_version if it is not set. TargetSdkVersion() SdkSpec TargetSdkVersion(ctx EarlyModuleContext) SdkSpec } // SdkKind represents a particular category of an SDK spec like public, system, test, etc. Loading Loading @@ -201,15 +201,23 @@ func (s SdkSpec) EffectiveVersionString(ctx EarlyModuleContext) (string, error) return ctx.Config().DefaultAppTargetSdk(ctx).String(), nil } func SdkSpecFrom(str string) SdkSpec { var ( SdkSpecNone = SdkSpec{SdkNone, NoneApiLevel, "(no version)"} // TODO(b/175678607) ApiLevel of SdkSpecPrivate should be FutureApiLevel SdkSpecPrivate = SdkSpec{SdkPrivate, NoneApiLevel, ""} // TODO(b/175678607) ApiLevel of SdkSpecCorePlatform should be FutureApiLevel SdkSpecCorePlatform = SdkSpec{SdkCorePlatform, NoneApiLevel, "core_platform"} ) func SdkSpecFrom(ctx EarlyModuleContext, str string) SdkSpec { switch str { // special cases first case "": return SdkSpec{SdkPrivate, NoneApiLevel, str} return SdkSpecPrivate case "none": return SdkSpec{SdkNone, NoneApiLevel, str} return SdkSpecNone case "core_platform": return SdkSpec{SdkCorePlatform, NoneApiLevel, str} return SdkSpecCorePlatform default: // the syntax is [kind_]version sep := strings.LastIndex(str, "_") Loading Loading @@ -242,15 +250,10 @@ func SdkSpecFrom(str string) SdkSpec { return SdkSpec{SdkInvalid, NoneApiLevel, str} } var apiLevel ApiLevel if versionString == "current" { apiLevel = FutureApiLevel } else if i, err := strconv.Atoi(versionString); err == nil { apiLevel = uncheckedFinalApiLevel(i) } else { apiLevel, err := ApiLevelFromUser(ctx, versionString) if err != nil { return SdkSpec{SdkInvalid, apiLevel, str} } return SdkSpec{kind, apiLevel, str} } } Loading apex/apex.go +4 −2 Original line number Diff line number Diff line Loading @@ -2272,8 +2272,10 @@ func (a *apexBundle) checkJavaStableSdkVersion(ctx android.ModuleContext) { tag := ctx.OtherModuleDependencyTag(module) switch tag { case javaLibTag, androidAppTag: if m, ok := module.(interface{ CheckStableSdkVersion() error }); ok { if err := m.CheckStableSdkVersion(); err != nil { if m, ok := module.(interface { CheckStableSdkVersion(ctx android.BaseModuleContext) error }); ok { if err := m.CheckStableSdkVersion(ctx); err != nil { ctx.ModuleErrorf("cannot depend on \"%v\": %v", ctx.OtherModuleName(module), err) } } Loading apex/builder.go +9 −6 Original line number Diff line number Diff line Loading @@ -946,16 +946,19 @@ func (a *apexBundle) buildApexDependencyInfo(ctx android.ModuleContext) { depInfos[to.Name()] = info } else { toMinSdkVersion := "(no version)" if m, ok := to.(interface{ MinSdkVersion() string }); ok { if m, ok := to.(interface { MinSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec }); ok { if v := m.MinSdkVersion(ctx); !v.ApiLevel.IsNone() { toMinSdkVersion = v.ApiLevel.String() } } else if m, ok := to.(interface{ MinSdkVersion() string }); ok { // TODO(b/175678607) eliminate the use of MinSdkVersion returning // string if v := m.MinSdkVersion(); v != "" { toMinSdkVersion = v } } else if m, ok := to.(interface{ MinSdkVersionString() string }); ok { if v := m.MinSdkVersionString(); v != "" { toMinSdkVersion = v } } depInfos[to.Name()] = android.ApexModuleDepInfo{ To: to.Name(), From: []string{from.Name()}, Loading java/aar.go +14 −8 Original line number Diff line number Diff line Loading @@ -218,7 +218,7 @@ func (a *aapt) aapt2Flags(ctx android.ModuleContext, sdkContext android.SdkConte linkDeps = append(linkDeps, assetDeps...) // SDK version flags minSdkVersion, err := sdkContext.MinSdkVersion().EffectiveVersionString(ctx) minSdkVersion, err := sdkContext.MinSdkVersion(ctx).EffectiveVersionString(ctx) if err != nil { ctx.ModuleErrorf("invalid minSdkVersion: %s", err) } Loading Loading @@ -609,6 +609,9 @@ type AARImport struct { hideApexVariantFromMake bool aarPath android.Path sdkVersion android.SdkSpec minSdkVersion android.SdkSpec } var _ android.OutputFileProducer = (*AARImport)(nil) Loading @@ -625,23 +628,23 @@ func (a *AARImport) OutputFiles(tag string) (android.Paths, error) { } } func (a *AARImport) SdkVersion() android.SdkSpec { return android.SdkSpecFrom(String(a.properties.Sdk_version)) func (a *AARImport) SdkVersion(ctx android.EarlyModuleContext) android.SdkSpec { return android.SdkSpecFrom(ctx, String(a.properties.Sdk_version)) } func (a *AARImport) SystemModules() string { return "" } func (a *AARImport) MinSdkVersion() android.SdkSpec { func (a *AARImport) MinSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec { if a.properties.Min_sdk_version != nil { return android.SdkSpecFrom(*a.properties.Min_sdk_version) return android.SdkSpecFrom(ctx, *a.properties.Min_sdk_version) } return a.SdkVersion() return a.SdkVersion(ctx) } func (a *AARImport) TargetSdkVersion() android.SdkSpec { return a.SdkVersion() func (a *AARImport) TargetSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec { return a.SdkVersion(ctx) } func (a *AARImport) javaVersion() string { Loading Loading @@ -727,6 +730,9 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { return } a.sdkVersion = a.SdkVersion(ctx) a.minSdkVersion = a.MinSdkVersion(ctx) a.hideApexVariantFromMake = !ctx.Provider(android.ApexInfoProvider).(android.ApexInfo).IsForPlatform() aarName := ctx.ModuleName() + ".aar" Loading java/android_manifest.go +3 −3 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext if isLibrary { args = append(args, "--library") } else { minSdkVersion, err := sdkContext.MinSdkVersion().EffectiveVersion(ctx) minSdkVersion, err := sdkContext.MinSdkVersion(ctx).EffectiveVersion(ctx) if err != nil { ctx.ModuleErrorf("invalid minSdkVersion: %s", err) } Loading Loading @@ -87,7 +87,7 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext args = append(args, "--logging-parent", loggingParent) } var deps android.Paths targetSdkVersion, err := sdkContext.TargetSdkVersion().EffectiveVersionString(ctx) targetSdkVersion, err := sdkContext.TargetSdkVersion(ctx).EffectiveVersionString(ctx) if err != nil { ctx.ModuleErrorf("invalid targetSdkVersion: %s", err) } Loading @@ -96,7 +96,7 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext deps = append(deps, ApiFingerprintPath(ctx)) } minSdkVersion, err := sdkContext.MinSdkVersion().EffectiveVersionString(ctx) minSdkVersion, err := sdkContext.MinSdkVersion(ctx).EffectiveVersionString(ctx) if err != nil { ctx.ModuleErrorf("invalid minSdkVersion: %s", err) } Loading Loading
android/sdk_version.go +17 −14 Original line number Diff line number Diff line Loading @@ -22,15 +22,15 @@ import ( type SdkContext interface { // SdkVersion returns SdkSpec that corresponds to the sdk_version property of the current module SdkVersion() SdkSpec SdkVersion(ctx EarlyModuleContext) SdkSpec // SystemModules returns the system_modules property of the current module, or an empty string if it is not set. SystemModules() string // MinSdkVersion returns SdkSpec that corresponds to the min_sdk_version property of the current module, // or from sdk_version if it is not set. MinSdkVersion() SdkSpec MinSdkVersion(ctx EarlyModuleContext) SdkSpec // TargetSdkVersion returns the SdkSpec that corresponds to the target_sdk_version property of the current module, // or from sdk_version if it is not set. TargetSdkVersion() SdkSpec TargetSdkVersion(ctx EarlyModuleContext) SdkSpec } // SdkKind represents a particular category of an SDK spec like public, system, test, etc. Loading Loading @@ -201,15 +201,23 @@ func (s SdkSpec) EffectiveVersionString(ctx EarlyModuleContext) (string, error) return ctx.Config().DefaultAppTargetSdk(ctx).String(), nil } func SdkSpecFrom(str string) SdkSpec { var ( SdkSpecNone = SdkSpec{SdkNone, NoneApiLevel, "(no version)"} // TODO(b/175678607) ApiLevel of SdkSpecPrivate should be FutureApiLevel SdkSpecPrivate = SdkSpec{SdkPrivate, NoneApiLevel, ""} // TODO(b/175678607) ApiLevel of SdkSpecCorePlatform should be FutureApiLevel SdkSpecCorePlatform = SdkSpec{SdkCorePlatform, NoneApiLevel, "core_platform"} ) func SdkSpecFrom(ctx EarlyModuleContext, str string) SdkSpec { switch str { // special cases first case "": return SdkSpec{SdkPrivate, NoneApiLevel, str} return SdkSpecPrivate case "none": return SdkSpec{SdkNone, NoneApiLevel, str} return SdkSpecNone case "core_platform": return SdkSpec{SdkCorePlatform, NoneApiLevel, str} return SdkSpecCorePlatform default: // the syntax is [kind_]version sep := strings.LastIndex(str, "_") Loading Loading @@ -242,15 +250,10 @@ func SdkSpecFrom(str string) SdkSpec { return SdkSpec{SdkInvalid, NoneApiLevel, str} } var apiLevel ApiLevel if versionString == "current" { apiLevel = FutureApiLevel } else if i, err := strconv.Atoi(versionString); err == nil { apiLevel = uncheckedFinalApiLevel(i) } else { apiLevel, err := ApiLevelFromUser(ctx, versionString) if err != nil { return SdkSpec{SdkInvalid, apiLevel, str} } return SdkSpec{kind, apiLevel, str} } } Loading
apex/apex.go +4 −2 Original line number Diff line number Diff line Loading @@ -2272,8 +2272,10 @@ func (a *apexBundle) checkJavaStableSdkVersion(ctx android.ModuleContext) { tag := ctx.OtherModuleDependencyTag(module) switch tag { case javaLibTag, androidAppTag: if m, ok := module.(interface{ CheckStableSdkVersion() error }); ok { if err := m.CheckStableSdkVersion(); err != nil { if m, ok := module.(interface { CheckStableSdkVersion(ctx android.BaseModuleContext) error }); ok { if err := m.CheckStableSdkVersion(ctx); err != nil { ctx.ModuleErrorf("cannot depend on \"%v\": %v", ctx.OtherModuleName(module), err) } } Loading
apex/builder.go +9 −6 Original line number Diff line number Diff line Loading @@ -946,16 +946,19 @@ func (a *apexBundle) buildApexDependencyInfo(ctx android.ModuleContext) { depInfos[to.Name()] = info } else { toMinSdkVersion := "(no version)" if m, ok := to.(interface{ MinSdkVersion() string }); ok { if m, ok := to.(interface { MinSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec }); ok { if v := m.MinSdkVersion(ctx); !v.ApiLevel.IsNone() { toMinSdkVersion = v.ApiLevel.String() } } else if m, ok := to.(interface{ MinSdkVersion() string }); ok { // TODO(b/175678607) eliminate the use of MinSdkVersion returning // string if v := m.MinSdkVersion(); v != "" { toMinSdkVersion = v } } else if m, ok := to.(interface{ MinSdkVersionString() string }); ok { if v := m.MinSdkVersionString(); v != "" { toMinSdkVersion = v } } depInfos[to.Name()] = android.ApexModuleDepInfo{ To: to.Name(), From: []string{from.Name()}, Loading
java/aar.go +14 −8 Original line number Diff line number Diff line Loading @@ -218,7 +218,7 @@ func (a *aapt) aapt2Flags(ctx android.ModuleContext, sdkContext android.SdkConte linkDeps = append(linkDeps, assetDeps...) // SDK version flags minSdkVersion, err := sdkContext.MinSdkVersion().EffectiveVersionString(ctx) minSdkVersion, err := sdkContext.MinSdkVersion(ctx).EffectiveVersionString(ctx) if err != nil { ctx.ModuleErrorf("invalid minSdkVersion: %s", err) } Loading Loading @@ -609,6 +609,9 @@ type AARImport struct { hideApexVariantFromMake bool aarPath android.Path sdkVersion android.SdkSpec minSdkVersion android.SdkSpec } var _ android.OutputFileProducer = (*AARImport)(nil) Loading @@ -625,23 +628,23 @@ func (a *AARImport) OutputFiles(tag string) (android.Paths, error) { } } func (a *AARImport) SdkVersion() android.SdkSpec { return android.SdkSpecFrom(String(a.properties.Sdk_version)) func (a *AARImport) SdkVersion(ctx android.EarlyModuleContext) android.SdkSpec { return android.SdkSpecFrom(ctx, String(a.properties.Sdk_version)) } func (a *AARImport) SystemModules() string { return "" } func (a *AARImport) MinSdkVersion() android.SdkSpec { func (a *AARImport) MinSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec { if a.properties.Min_sdk_version != nil { return android.SdkSpecFrom(*a.properties.Min_sdk_version) return android.SdkSpecFrom(ctx, *a.properties.Min_sdk_version) } return a.SdkVersion() return a.SdkVersion(ctx) } func (a *AARImport) TargetSdkVersion() android.SdkSpec { return a.SdkVersion() func (a *AARImport) TargetSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec { return a.SdkVersion(ctx) } func (a *AARImport) javaVersion() string { Loading Loading @@ -727,6 +730,9 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { return } a.sdkVersion = a.SdkVersion(ctx) a.minSdkVersion = a.MinSdkVersion(ctx) a.hideApexVariantFromMake = !ctx.Provider(android.ApexInfoProvider).(android.ApexInfo).IsForPlatform() aarName := ctx.ModuleName() + ".aar" Loading
java/android_manifest.go +3 −3 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext if isLibrary { args = append(args, "--library") } else { minSdkVersion, err := sdkContext.MinSdkVersion().EffectiveVersion(ctx) minSdkVersion, err := sdkContext.MinSdkVersion(ctx).EffectiveVersion(ctx) if err != nil { ctx.ModuleErrorf("invalid minSdkVersion: %s", err) } Loading Loading @@ -87,7 +87,7 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext args = append(args, "--logging-parent", loggingParent) } var deps android.Paths targetSdkVersion, err := sdkContext.TargetSdkVersion().EffectiveVersionString(ctx) targetSdkVersion, err := sdkContext.TargetSdkVersion(ctx).EffectiveVersionString(ctx) if err != nil { ctx.ModuleErrorf("invalid targetSdkVersion: %s", err) } Loading @@ -96,7 +96,7 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext deps = append(deps, ApiFingerprintPath(ctx)) } minSdkVersion, err := sdkContext.MinSdkVersion().EffectiveVersionString(ctx) minSdkVersion, err := sdkContext.MinSdkVersion(ctx).EffectiveVersionString(ctx) if err != nil { ctx.ModuleErrorf("invalid minSdkVersion: %s", err) } Loading