Allow codename.fingerprint format for targetSdkVersion
Use codename.fingerprint format for targetSdkVersion if it is unset
in the manifest and UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT=true.
Test: manual
Bug: 130541924
Change-Id: I4e3b1274cc32038b00b292dc6d67559eb320e9e4
Merged-In: I4e3b1274cc32038b00b292dc6d67559eb320e9e4
(cherry picked from commit 109328714f
)
This commit is contained in:
@@ -68,15 +68,27 @@ func manifestMerger(ctx android.ModuleContext, manifest android.Path, sdkContext
|
||||
args = append(args, "--use-embedded-dex=true")
|
||||
}
|
||||
|
||||
var deps android.Paths
|
||||
targetSdkVersion := sdkVersionOrDefault(ctx, sdkContext.targetSdkVersion())
|
||||
if targetSdkVersion == ctx.Config().PlatformSdkCodename() &&
|
||||
ctx.Config().UnbundledBuild() &&
|
||||
!ctx.Config().UnbundledBuildUsePrebuiltSdks() &&
|
||||
ctx.Config().IsEnvTrue("UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT") {
|
||||
apiFingerprint := apiFingerprintPath(ctx)
|
||||
targetSdkVersion += fmt.Sprintf(".$$(cat %s)", apiFingerprint.String())
|
||||
deps = append(deps, apiFingerprint)
|
||||
}
|
||||
|
||||
// Inject minSdkVersion into the manifest
|
||||
fixedManifest := android.PathForModuleOut(ctx, "manifest_fixer", "AndroidManifest.xml")
|
||||
ctx.Build(pctx, android.BuildParams{
|
||||
Rule: manifestFixerRule,
|
||||
Input: manifest,
|
||||
Output: fixedManifest,
|
||||
Rule: manifestFixerRule,
|
||||
Input: manifest,
|
||||
Implicits: deps,
|
||||
Output: fixedManifest,
|
||||
Args: map[string]string{
|
||||
"minSdkVersion": sdkVersionOrDefault(ctx, sdkContext.minSdkVersion()),
|
||||
"targetSdkVersion": sdkVersionOrDefault(ctx, sdkContext.targetSdkVersion()),
|
||||
"targetSdkVersion": targetSdkVersion,
|
||||
"args": strings.Join(args, " "),
|
||||
},
|
||||
})
|
||||
|
Reference in New Issue
Block a user