From bb638eba5046b5de3cd409c3f3804d50b0d75486 Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Sat, 26 Nov 2022 13:36:38 +0000 Subject: Output min_sdk_version to snapshot The min_sdk_version was added to the java_import in Tiramisu. This change will propagate the min_sdk_version set on a java_library to the java_import snapshot. If possible the min_sdk_version will be resolved into a numerical version to ensure consistent behavior across build releases. Bug: 260560424 Test: m nothing BUILD_NUMBER=fixed packages/modules/common/build/mainline_modules_sdks.sh # Ran above before and after this change and made sure that only # Tiramisu, UpsideDownCake and latest were changed and those changes # were the addition of a min_sdk_version property. # # Ran the following command in tm-mainline-prod: # lunch cf_x86_64_phone-userdebug # m ART_MODULE_BUILD_FROM_SOURCE=false nothing`. # # It failed with: # module "prebuilt_okhttp-norepackage" variant "android_common": should support min_sdk_version(33) for "AdServicesApk": min_sdk_version is not specified. # # Unpacked the Tiramisu art snapshot generated with this change into # tm-mainline-prod and reran the previous command and it succeeded. Change-Id: I9d9d730845554fc175d17f38c038e4e3c7d39e07 --- java/java.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'java/java.go') diff --git a/java/java.go b/java/java.go index 25b6349bf..6eeb95dc6 100644 --- a/java/java.go +++ b/java/java.go @@ -764,6 +764,9 @@ type librarySdkMemberProperties struct { // The list of permitted packages that need to be passed to the prebuilts as they are used to // create the updatable-bcp-packages.txt file. PermittedPackages []string + + // The value of the min_sdk_version property, translated into a number where possible. + MinSdkVersion *string `supported_build_releases:"Tiramisu+"` } func (p *librarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) { @@ -774,6 +777,13 @@ func (p *librarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMemberCo p.AidlIncludeDirs = j.AidlIncludeDirs() p.PermittedPackages = j.PermittedPackagesForUpdatableBootJars() + + // If the min_sdk_version was set then add the canonical representation of the API level to the + // snapshot. + if j.deviceProperties.Min_sdk_version != nil { + canonical := android.ReplaceFinalizedCodenames(ctx.SdkModuleContext().Config(), j.minSdkVersion.ApiLevel.String()) + p.MinSdkVersion = proptools.StringPtr(canonical) + } } func (p *librarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) { @@ -792,6 +802,10 @@ func (p *librarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberConte propertySet.AddProperty("jars", []string{snapshotRelativeJavaLibPath}) } + if p.MinSdkVersion != nil { + propertySet.AddProperty("min_sdk_version", *p.MinSdkVersion) + } + if len(p.PermittedPackages) > 0 { propertySet.AddProperty("permitted_packages", p.PermittedPackages) } -- cgit v1.2.3-59-g8ed1b