diff options
author | 2022-07-14 00:38:35 +0000 | |
---|---|---|
committer | 2022-07-14 00:38:35 +0000 | |
commit | b6d77a76520bbcd998677f696f9f94cfcd5c9c1c (patch) | |
tree | 5c1f7b07ee424d4d1386fcdae09b4b0dba85ccbc /java | |
parent | 703d6bc23c4be4c9666571cb250516ea9998f121 (diff) | |
parent | 50dbe0a07408bc1b16b1c19720d464a98e618f23 (diff) |
Merge "Propagate max_sdk_version to manifest_fixer" am: 50dbe0a074
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2104965
Change-Id: If87b6e5740ae3bd2f90c57b096ac358f0f84ba08
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'java')
-rw-r--r-- | java/aar.go | 4 | ||||
-rw-r--r-- | java/android_manifest.go | 6 | ||||
-rw-r--r-- | java/base.go | 9 | ||||
-rw-r--r-- | java/droiddoc.go | 4 | ||||
-rw-r--r-- | java/java.go | 11 | ||||
-rw-r--r-- | java/rro.go | 4 |
6 files changed, 38 insertions, 0 deletions
diff --git a/java/aar.go b/java/aar.go index 00ff7e774..cf84309f4 100644 --- a/java/aar.go +++ b/java/aar.go @@ -678,6 +678,10 @@ func (a *AARImport) MinSdkVersion(ctx android.EarlyModuleContext) android.SdkSpe return a.SdkVersion(ctx) } +func (a *AARImport) ReplaceMaxSdkVersionPlaceholder(ctx android.EarlyModuleContext) android.SdkSpec { + return android.SdkSpecFrom(ctx, "") +} + func (a *AARImport) TargetSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec { return a.SdkVersion(ctx) } diff --git a/java/android_manifest.go b/java/android_manifest.go index a297b2c10..c61823d06 100644 --- a/java/android_manifest.go +++ b/java/android_manifest.go @@ -136,6 +136,11 @@ func ManifestFixer(ctx android.ModuleContext, manifest android.Path, ctx.ModuleErrorf("invalid minSdkVersion: %s", err) } + replaceMaxSdkVersionPlaceholder, err := params.SdkContext.ReplaceMaxSdkVersionPlaceholder(ctx).EffectiveVersion(ctx) + if err != nil { + ctx.ModuleErrorf("invalid ReplaceMaxSdkVersionPlaceholder: %s", err) + } + if UseApiFingerprint(ctx) && ctx.ModuleName() != "framework-res" { minSdkVersion = ctx.Config().PlatformSdkCodename() + fmt.Sprintf(".$$(cat %s)", ApiFingerprintPath(ctx).String()) deps = append(deps, ApiFingerprintPath(ctx)) @@ -145,6 +150,7 @@ func ManifestFixer(ctx android.ModuleContext, manifest android.Path, ctx.ModuleErrorf("invalid minSdkVersion: %s", err) } args = append(args, "--minSdkVersion ", minSdkVersion) + args = append(args, "--replaceMaxSdkVersionPlaceholder ", strconv.Itoa(replaceMaxSdkVersionPlaceholder.FinalOrFutureInt())) args = append(args, "--raise-min-sdk-version") } diff --git a/java/base.go b/java/base.go index c399c4063..94daf37fc 100644 --- a/java/base.go +++ b/java/base.go @@ -204,6 +204,10 @@ type DeviceProperties struct { // Defaults to empty string "". See sdk_version for possible values. Max_sdk_version *string + // if not blank, set the maxSdkVersion properties of permission and uses-permission tags. + // Defaults to empty string "". See sdk_version for possible values. + Replace_max_sdk_version_placeholder *string + // if not blank, set the targetSdkVersion in the AndroidManifest.xml. // Defaults to sdk_version if not set. See sdk_version for possible values. Target_sdk_version *string @@ -649,6 +653,11 @@ func (j *Module) MaxSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec { return android.SdkSpecFrom(ctx, maxSdkVersion) } +func (j *Module) ReplaceMaxSdkVersionPlaceholder(ctx android.EarlyModuleContext) android.SdkSpec { + replaceMaxSdkVersionPlaceholder := proptools.StringDefault(j.deviceProperties.Replace_max_sdk_version_placeholder, "") + return android.SdkSpecFrom(ctx, replaceMaxSdkVersionPlaceholder) +} + func (j *Module) MinSdkVersionString() string { return j.minSdkVersion.Raw } diff --git a/java/droiddoc.go b/java/droiddoc.go index 023d61912..96639220a 100644 --- a/java/droiddoc.go +++ b/java/droiddoc.go @@ -256,6 +256,10 @@ func (j *Javadoc) MinSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec return j.SdkVersion(ctx) } +func (j *Javadoc) ReplaceMaxSdkVersionPlaceholder(ctx android.EarlyModuleContext) android.SdkSpec { + return j.SdkVersion(ctx) +} + func (j *Javadoc) TargetSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec { return j.SdkVersion(ctx) } diff --git a/java/java.go b/java/java.go index 6e0515964..eaf82ad7a 100644 --- a/java/java.go +++ b/java/java.go @@ -1459,6 +1459,10 @@ type ImportProperties struct { // specified. Min_sdk_version *string + // The max sdk version placeholder used to replace maxSdkVersion attributes on permission + // and uses-permission tags in manifest_fixer. + Replace_max_sdk_version_placeholder *string + Installable *bool // If not empty, classes are restricted to the specified packages and their sub-packages. @@ -1538,6 +1542,13 @@ func (j *Import) MinSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec { return j.SdkVersion(ctx) } +func (j *Import) ReplaceMaxSdkVersionPlaceholder(ctx android.EarlyModuleContext) android.SdkSpec { + if j.properties.Replace_max_sdk_version_placeholder != nil { + return android.SdkSpecFrom(ctx, *j.properties.Replace_max_sdk_version_placeholder) + } + return android.SdkSpecFrom(ctx, "") +} + func (j *Import) TargetSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec { return j.SdkVersion(ctx) } diff --git a/java/rro.go b/java/rro.go index c98cbbd2d..8caf0868e 100644 --- a/java/rro.go +++ b/java/rro.go @@ -179,6 +179,10 @@ func (r *RuntimeResourceOverlay) MinSdkVersion(ctx android.EarlyModuleContext) a return r.SdkVersion(ctx) } +func (r *RuntimeResourceOverlay) ReplaceMaxSdkVersionPlaceholder(ctx android.EarlyModuleContext) android.SdkSpec { + return android.SdkSpecFrom(ctx, "") +} + func (r *RuntimeResourceOverlay) TargetSdkVersion(ctx android.EarlyModuleContext) android.SdkSpec { return r.SdkVersion(ctx) } |