Merge "Revert "Revert "Allow codename.fingerprint format for minSdkVersion"""

This commit is contained in:
Baligh Uddin
2020-01-25 04:12:30 +00:00
committed by Gerrit Code Review
3 changed files with 33 additions and 17 deletions

View File

@@ -382,15 +382,17 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) {
} }
targetSdkVersion := ctx.Config().DefaultAppTargetSdk() targetSdkVersion := ctx.Config().DefaultAppTargetSdk()
if targetSdkVersion == ctx.Config().PlatformSdkCodename() && minSdkVersion := ctx.Config().DefaultAppTargetSdk()
ctx.Config().UnbundledBuild() && if java.UseApiFingerprint(ctx, targetSdkVersion) {
!ctx.Config().UnbundledBuildUsePrebuiltSdks() && targetSdkVersion += fmt.Sprintf(".$$(cat %s)", java.ApiFingerprintPath(ctx).String())
ctx.Config().IsEnvTrue("UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT") { implicitInputs = append(implicitInputs, java.ApiFingerprintPath(ctx))
apiFingerprint := java.ApiFingerprintPath(ctx) }
targetSdkVersion += fmt.Sprintf(".$$(cat %s)", apiFingerprint.String()) if java.UseApiFingerprint(ctx, minSdkVersion) {
implicitInputs = append(implicitInputs, apiFingerprint) minSdkVersion += fmt.Sprintf(".$$(cat %s)", java.ApiFingerprintPath(ctx).String())
implicitInputs = append(implicitInputs, java.ApiFingerprintPath(ctx))
} }
optFlags = append(optFlags, "--target_sdk_version "+targetSdkVersion) optFlags = append(optFlags, "--target_sdk_version "+targetSdkVersion)
optFlags = append(optFlags, "--min_sdk_version "+minSdkVersion)
noticeFile := a.buildNoticeFile(ctx, a.Name()+suffix) noticeFile := a.buildNoticeFile(ctx, a.Name()+suffix)
if noticeFile.Valid() { if noticeFile.Valid() {

View File

@@ -93,12 +93,10 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext
var deps android.Paths var deps android.Paths
targetSdkVersion := sdkVersionOrDefault(ctx, sdkContext.targetSdkVersion()) targetSdkVersion := sdkVersionOrDefault(ctx, sdkContext.targetSdkVersion())
if targetSdkVersion == ctx.Config().PlatformSdkCodename() && minSdkVersion := sdkVersionOrDefault(ctx, sdkContext.minSdkVersion())
ctx.Config().UnbundledBuild() && if (UseApiFingerprint(ctx, sdkContext.targetSdkVersion()) ||
!ctx.Config().UnbundledBuildUsePrebuiltSdks() && UseApiFingerprint(ctx, sdkContext.minSdkVersion())) {
ctx.Config().IsEnvTrue("UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT") {
apiFingerprint := ApiFingerprintPath(ctx) apiFingerprint := ApiFingerprintPath(ctx)
targetSdkVersion += fmt.Sprintf(".$$(cat %s)", apiFingerprint.String())
deps = append(deps, apiFingerprint) deps = append(deps, apiFingerprint)
} }
@@ -110,7 +108,7 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext
Implicits: deps, Implicits: deps,
Output: fixedManifest, Output: fixedManifest,
Args: map[string]string{ Args: map[string]string{
"minSdkVersion": sdkVersionOrDefault(ctx, sdkContext.minSdkVersion()), "minSdkVersion": minSdkVersion,
"targetSdkVersion": targetSdkVersion, "targetSdkVersion": targetSdkVersion,
"args": strings.Join(args, " "), "args": strings.Join(args, " "),
}, },

View File

@@ -48,13 +48,29 @@ type sdkContext interface {
targetSdkVersion() string targetSdkVersion() string
} }
func UseApiFingerprint(ctx android.BaseModuleContext, v string) bool {
if v == ctx.Config().PlatformSdkCodename() &&
ctx.Config().UnbundledBuild() &&
!ctx.Config().UnbundledBuildUsePrebuiltSdks() &&
ctx.Config().IsEnvTrue("UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT") {
return true
}
return false
}
func sdkVersionOrDefault(ctx android.BaseModuleContext, v string) string { func sdkVersionOrDefault(ctx android.BaseModuleContext, v string) string {
var sdkVersion string
switch v { switch v {
case "", "none", "current", "test_current", "system_current", "core_current", "core_platform": case "", "none", "current", "test_current", "system_current", "core_current", "core_platform":
return ctx.Config().DefaultAppTargetSdk() sdkVersion = ctx.Config().DefaultAppTargetSdk()
default: default:
return v sdkVersion = v
} }
if UseApiFingerprint(ctx, sdkVersion) {
apiFingerprint := ApiFingerprintPath(ctx)
sdkVersion += fmt.Sprintf(".$$(cat %s)", apiFingerprint.String())
}
return sdkVersion
} }
// Returns a sdk version as a number. For modules targeting an unreleased SDK (meaning it does not yet have a number) // Returns a sdk version as a number. For modules targeting an unreleased SDK (meaning it does not yet have a number)