Make min_sdk overridable in override_apex
It makes sense to make min_sdk overridable because the override_apex is a variant of the original apex, and this variant might be created/introduced in the newer Android release compared with the base apex. Despite the fact that the source of the variant apex is the same as the original one, the variant may not support the older version, like Go modules, trimmed modules. If we consider the variant as a "new" module, then it makes sense to have a new min_sdk to make it only available for the newer Android released version only. Bug: 266945903 Test: Build locally, and check if the override works Change-Id: I7f4c7169e15b7e57f44a4abafe012151dbc226a0
This commit is contained in:
14
apex/apex.go
14
apex/apex.go
@@ -124,10 +124,6 @@ type apexBundleProperties struct {
|
||||
// List of filesystem images that are embedded inside this APEX bundle.
|
||||
Filesystems []string
|
||||
|
||||
// The minimum SDK version that this APEX must support at minimum. This is usually set to
|
||||
// the SDK version that the APEX was first introduced.
|
||||
Min_sdk_version *string
|
||||
|
||||
// Whether this APEX is considered updatable or not. When set to true, this will enforce
|
||||
// additional rules for making sure that the APEX is truly updatable. To be updatable,
|
||||
// min_sdk_version should be set as well. This will also disable the size optimizations like
|
||||
@@ -393,6 +389,10 @@ type overridableProperties struct {
|
||||
|
||||
// Trim against a specific Dynamic Common Lib APEX
|
||||
Trim_against *string
|
||||
|
||||
// The minimum SDK version that this APEX must support at minimum. This is usually set to
|
||||
// the SDK version that the APEX was first introduced.
|
||||
Min_sdk_version *string
|
||||
}
|
||||
|
||||
type apexBundle struct {
|
||||
@@ -2880,7 +2880,7 @@ func (a *apexBundle) minSdkVersionValue(ctx android.EarlyModuleContext) string {
|
||||
// Only override the minSdkVersion value on Apexes which already specify
|
||||
// a min_sdk_version (it's optional for non-updatable apexes), and that its
|
||||
// min_sdk_version value is lower than the one to override with.
|
||||
minApiLevel := minSdkVersionFromValue(ctx, proptools.String(a.properties.Min_sdk_version))
|
||||
minApiLevel := minSdkVersionFromValue(ctx, proptools.String(a.overridableProperties.Min_sdk_version))
|
||||
if minApiLevel.IsNone() {
|
||||
return ""
|
||||
}
|
||||
@@ -3534,8 +3534,8 @@ func convertWithBp2build(a *apexBundle, ctx android.TopDownMutatorContext) (baze
|
||||
// TODO(b/219503907) this would need to be set to a.MinSdkVersionValue(ctx) but
|
||||
// given it's coming via config, we probably don't want to put it in here.
|
||||
var minSdkVersion bazel.StringAttribute
|
||||
if a.properties.Min_sdk_version != nil {
|
||||
minSdkVersion.SetValue(*a.properties.Min_sdk_version)
|
||||
if a.overridableProperties.Min_sdk_version != nil {
|
||||
minSdkVersion.SetValue(*a.overridableProperties.Min_sdk_version)
|
||||
}
|
||||
if props, ok := productVariableProps[minSdkVersionPropName]; ok {
|
||||
for c, p := range props {
|
||||
|
Reference in New Issue
Block a user