Merge "Add min_sdk_version to java_import."

This commit is contained in:
Jaewoong Jung
2021-04-01 19:45:53 +00:00
committed by Gerrit Code Review
3 changed files with 122 additions and 56 deletions

View File

@@ -1074,8 +1074,14 @@ func BinaryHostFactory() android.Module {
type ImportProperties struct {
Jars []string `android:"path,arch_variant"`
// The version of the SDK that the source prebuilt file was built against. Defaults to the
// current version if not specified.
Sdk_version *string
// The minimum version of the SDK that this module supports. Defaults to sdk_version if not
// specified.
Min_sdk_version *string
Installable *bool
// List of shared java libs that this module has dependencies to
@@ -1139,6 +1145,9 @@ func (j *Import) systemModules() string {
}
func (j *Import) minSdkVersion() sdkSpec {
if j.properties.Min_sdk_version != nil {
return sdkSpecFrom(*j.properties.Min_sdk_version)
}
return j.sdkVersion()
}
@@ -1350,7 +1359,20 @@ func (j *Import) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Modu
// Implements android.ApexModule
func (j *Import) ShouldSupportSdkVersion(ctx android.BaseModuleContext,
sdkVersion android.ApiLevel) error {
// Do not check for prebuilts against the min_sdk_version of enclosing APEX
sdkSpec := j.minSdkVersion()
if !sdkSpec.specified() {
return fmt.Errorf("min_sdk_version is not specified")
}
if sdkSpec.kind == sdkCore {
return nil
}
ver, err := sdkSpec.effectiveVersion(ctx)
if err != nil {
return err
}
if ver.ApiLevel(ctx).GreaterThan(sdkVersion) {
return fmt.Errorf("newer SDK(%v)", ver)
}
return nil
}