Expose the minimum supported SDK version to make.

Right now this is hard coded in two places (here and in
core/binary.mk). Keep it in one place so it's easier to change.

Test: make checkbuild
Bug: None
Change-Id: I2a2c784d4c667b326f871e6144db92753c16c85f
This commit is contained in:
Dan Albert 2017-08-17 16:19:59 -07:00
parent b90afd09d6
commit f5415d7cc6
4 changed files with 22 additions and 7 deletions

View file

@ -378,6 +378,10 @@ func (c *config) PlatformSdkVersion() string {
return strconv.Itoa(c.PlatformSdkVersionInt())
}
func (c *config) MinSupportedSdkVersion() int {
return 9
}
// Codenames that are active in the current lunch target.
func (c *config) PlatformVersionActiveCodenames() []string {
return c.ProductVariables.Platform_version_active_codenames

View file

@ -19,11 +19,20 @@ import (
"fmt"
"io/ioutil"
"os"
"strconv"
"github.com/google/blueprint"
"github.com/google/blueprint/proptools"
)
func init() {
RegisterMakeVarsProvider(pctx, androidMakeVarsProvider)
}
func androidMakeVarsProvider(ctx MakeVarsContext) {
ctx.Strict("MIN_SUPPORTED_SDK_VERSION", strconv.Itoa(ctx.Config().MinSupportedSdkVersion()))
}
///////////////////////////////////////////////////////////////////////////////
// Interface for other packages to use to declare make variables
type MakeVarsContext interface {

View file

@ -638,7 +638,7 @@ func (c *Module) begin(ctx BaseModuleContext) {
feature.begin(ctx)
}
if ctx.sdk() {
version, err := normalizeNdkApiLevel(ctx.sdkVersion(), ctx.Arch())
version, err := normalizeNdkApiLevel(ctx, ctx.sdkVersion(), ctx.Arch())
if err != nil {
ctx.PropertyErrorf("sdk_version", err.Error())
}

View file

@ -110,18 +110,20 @@ func intMax(a int, b int) int {
}
}
func normalizeNdkApiLevel(apiLevel string, arch android.Arch) (string, error) {
func normalizeNdkApiLevel(ctx android.BaseContext, apiLevel string,
arch android.Arch) (string, error) {
if apiLevel == "current" {
return apiLevel, nil
}
minVersion := 9 // Minimum version supported by the NDK.
minVersion := ctx.AConfig().MinSupportedSdkVersion()
firstArchVersions := map[android.ArchType]int{
android.Arm: 9,
android.Arm: minVersion,
android.Arm64: 21,
android.Mips: 9,
android.Mips: minVersion,
android.Mips64: 21,
android.X86: 9,
android.X86: minVersion,
android.X86_64: 21,
}
@ -188,7 +190,7 @@ func shouldUseVersionScript(stub *stubDecorator) (bool, error) {
func generateStubApiVariants(mctx android.BottomUpMutatorContext, c *stubDecorator) {
platformVersion := mctx.AConfig().PlatformSdkVersionInt()
firstSupportedVersion, err := normalizeNdkApiLevel(c.properties.First_version,
firstSupportedVersion, err := normalizeNdkApiLevel(mctx, c.properties.First_version,
mctx.Arch())
if err != nil {
mctx.PropertyErrorf("first_version", err.Error())