Merge "Set targetsdkversion to future level if TARGET_BUILD_APPS is not empty" am: 16ce4801ef
am: 4b669af97c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1907152 Change-Id: Idc7aff0edc89c3ae2aed7ff5a4f5fec84e3cc85d
This commit is contained in:
@@ -16,6 +16,7 @@ package java
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/google/blueprint"
|
"github.com/google/blueprint"
|
||||||
@@ -42,6 +43,20 @@ var manifestMergerRule = pctx.AndroidStaticRule("manifestMerger",
|
|||||||
},
|
},
|
||||||
"args", "libs")
|
"args", "libs")
|
||||||
|
|
||||||
|
// targetSdkVersion for manifest_fixer
|
||||||
|
// When TARGET_BUILD_APPS is not empty, this method returns the unreleased(future) API level
|
||||||
|
// This enables release builds (that run with TARGET_BUILD_APPS=[val...]) to target APIs that have not yet been finalized as part of an SDK
|
||||||
|
func targetSdkVersionForManifestFixer(ctx android.ModuleContext, sdkContext android.SdkContext) string {
|
||||||
|
if ctx.Config().UnbundledBuildApps() {
|
||||||
|
return strconv.Itoa(android.FutureApiLevel.FinalOrFutureInt())
|
||||||
|
}
|
||||||
|
targetSdkVersion, err := sdkContext.TargetSdkVersion(ctx).EffectiveVersionString(ctx)
|
||||||
|
if err != nil {
|
||||||
|
ctx.ModuleErrorf("invalid targetSdkVersion: %s", err)
|
||||||
|
}
|
||||||
|
return targetSdkVersion
|
||||||
|
}
|
||||||
|
|
||||||
// Uses manifest_fixer.py to inject minSdkVersion, etc. into an AndroidManifest.xml
|
// Uses manifest_fixer.py to inject minSdkVersion, etc. into an AndroidManifest.xml
|
||||||
func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext android.SdkContext,
|
func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext android.SdkContext,
|
||||||
classLoaderContexts dexpreopt.ClassLoaderContextMap, isLibrary, useEmbeddedNativeLibs, usesNonSdkApis,
|
classLoaderContexts dexpreopt.ClassLoaderContextMap, isLibrary, useEmbeddedNativeLibs, usesNonSdkApis,
|
||||||
@@ -89,10 +104,7 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext
|
|||||||
args = append(args, "--logging-parent", loggingParent)
|
args = append(args, "--logging-parent", loggingParent)
|
||||||
}
|
}
|
||||||
var deps android.Paths
|
var deps android.Paths
|
||||||
targetSdkVersion, err := sdkContext.TargetSdkVersion(ctx).EffectiveVersionString(ctx)
|
targetSdkVersion := targetSdkVersionForManifestFixer(ctx, sdkContext)
|
||||||
if err != nil {
|
|
||||||
ctx.ModuleErrorf("invalid targetSdkVersion: %s", err)
|
|
||||||
}
|
|
||||||
if UseApiFingerprint(ctx) && ctx.ModuleName() != "framework-res" {
|
if UseApiFingerprint(ctx) && ctx.ModuleName() != "framework-res" {
|
||||||
targetSdkVersion = ctx.Config().PlatformSdkCodename() + fmt.Sprintf(".$$(cat %s)", ApiFingerprintPath(ctx).String())
|
targetSdkVersion = ctx.Config().PlatformSdkCodename() + fmt.Sprintf(".$$(cat %s)", ApiFingerprintPath(ctx).String())
|
||||||
deps = append(deps, ApiFingerprintPath(ctx))
|
deps = append(deps, ApiFingerprintPath(ctx))
|
||||||
|
Reference in New Issue
Block a user