aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2017-08-17 16:19:59 -0700
committerDan Albert <danalbert@google.com>2017-08-17 16:54:03 -0700
commitf5415d7cc68d84d9f5183f48498011675a19df47 (patch)
treea6ec94a4c74a084ab4455f17f768a0e6cee91e8c
parentb90afd09d6a5ee5b3b99d9af772f92b005cc39b0 (diff)
downloadbuild_soong-f5415d7cc68d84d9f5183f48498011675a19df47.tar.gz
build_soong-f5415d7cc68d84d9f5183f48498011675a19df47.tar.bz2
build_soong-f5415d7cc68d84d9f5183f48498011675a19df47.zip
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
-rw-r--r--android/config.go4
-rw-r--r--android/makevars.go9
-rw-r--r--cc/cc.go2
-rw-r--r--cc/ndk_library.go14
4 files changed, 22 insertions, 7 deletions
diff --git a/android/config.go b/android/config.go
index ee2f40fd..330669dc 100644
--- a/android/config.go
+++ b/android/config.go
@@ -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
diff --git a/android/makevars.go b/android/makevars.go
index 482fbdea..024e0152 100644
--- a/android/makevars.go
+++ b/android/makevars.go
@@ -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 {
diff --git a/cc/cc.go b/cc/cc.go
index ba06be24..cfe748b7 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -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())
}
diff --git a/cc/ndk_library.go b/cc/ndk_library.go
index 8fbffcf0..fc7cd918 100644
--- a/cc/ndk_library.go
+++ b/cc/ndk_library.go
@@ -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())