Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6201373 authored by Baligh Uddin's avatar Baligh Uddin
Browse files

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

This reverts commit 230e241f.

Reason for revert: This is a revert of a revert.  Downstream problem has been fixed and have been validated locally and via Forrest build.

Change-Id: I89c51d25b3adb818ea44a983d0ac681a88790d8c
parent 230e241f
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -376,15 +376,17 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) {
		}

		targetSdkVersion := ctx.Config().DefaultAppTargetSdk()
		if targetSdkVersion == ctx.Config().PlatformSdkCodename() &&
			ctx.Config().UnbundledBuild() &&
			!ctx.Config().UnbundledBuildUsePrebuiltSdks() &&
			ctx.Config().IsEnvTrue("UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT") {
			apiFingerprint := java.ApiFingerprintPath(ctx)
			targetSdkVersion += fmt.Sprintf(".$$(cat %s)", apiFingerprint.String())
			implicitInputs = append(implicitInputs, apiFingerprint)
		minSdkVersion := ctx.Config().DefaultAppTargetSdk()
		if java.UseApiFingerprint(ctx, targetSdkVersion) {
			targetSdkVersion += fmt.Sprintf(".$$(cat %s)", java.ApiFingerprintPath(ctx).String())
			implicitInputs = append(implicitInputs, java.ApiFingerprintPath(ctx))
		}
		if java.UseApiFingerprint(ctx, minSdkVersion) {
			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, "--min_sdk_version "+minSdkVersion)

		noticeFile := a.buildNoticeFile(ctx, a.Name()+suffix)
		if noticeFile.Valid() {
+6 −8
Original line number Diff line number Diff line
@@ -93,12 +93,10 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext

	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") {
	minSdkVersion := sdkVersionOrDefault(ctx, sdkContext.minSdkVersion())
	if (UseApiFingerprint(ctx, sdkContext.targetSdkVersion()) ||
		UseApiFingerprint(ctx, sdkContext.minSdkVersion())) {
			apiFingerprint := ApiFingerprintPath(ctx)
		targetSdkVersion += fmt.Sprintf(".$$(cat %s)", apiFingerprint.String())
			deps = append(deps, apiFingerprint)
	}

@@ -110,7 +108,7 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext
		Implicits:   deps,
		Output:      fixedManifest,
		Args: map[string]string{
			"minSdkVersion":    sdkVersionOrDefault(ctx, sdkContext.minSdkVersion()),
			"minSdkVersion":    minSdkVersion,
			"targetSdkVersion": targetSdkVersion,
			"args":             strings.Join(args, " "),
		},
+18 −2
Original line number Diff line number Diff line
@@ -47,13 +47,29 @@ type sdkContext interface {
	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 {
	var sdkVersion string
	switch v {
	case "", "none", "current", "test_current", "system_current", "core_current", "core_platform":
		return ctx.Config().DefaultAppTargetSdk()
		sdkVersion = ctx.Config().DefaultAppTargetSdk()
	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)