summaryrefslogtreecommitdiff
path: root/android/api_levels.go
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2018-05-03 15:42:34 -0700
committerColin Cross <ccross@android.com>2018-07-24 22:52:57 +0000
commit6bc5b8320f9db94295f5d6d22e5d2843b65288ce (patch)
treee3301f6df2f53b899fd9165790dfc0882e55acf2 /android/api_levels.go
parent2358e0400fdfa206023ace40e6efc76caf4537a3 (diff)
Stop versioning NDK stubs pre-M.
Test: make ndk # readelf various stubs to check version info Bug: https://github.com/android-ndk/ndk/issues/622 Change-Id: Ic2930cfe5ee8377bb89bfb1bc051b6975f6e57d3 Merged-In: Ic2930cfe5ee8377bb89bfb1bc051b6975f6e57d3 (cherry picked from commit c229f38e93da71bcf9beca3683f5a603b7dd3bca)
Diffstat (limited to 'android/api_levels.go')
-rw-r--r--android/api_levels.go61
1 files changed, 41 insertions, 20 deletions
diff --git a/android/api_levels.go b/android/api_levels.go
index b1b954ca0..1b56625b2 100644
--- a/android/api_levels.go
+++ b/android/api_levels.go
@@ -16,6 +16,7 @@ package android
import (
"encoding/json"
+ "strconv"
)
func init() {
@@ -50,28 +51,48 @@ func GetApiLevelsJson(ctx PathContext) WritablePath {
return PathForOutput(ctx, "api_levels.json")
}
-func (a *apiLevelsSingleton) GenerateBuildActions(ctx SingletonContext) {
- baseApiLevel := 9000
- apiLevelsMap := map[string]int{
- "G": 9,
- "I": 14,
- "J": 16,
- "J-MR1": 17,
- "J-MR2": 18,
- "K": 19,
- "L": 21,
- "L-MR1": 22,
- "M": 23,
- "N": 24,
- "N-MR1": 25,
- "O": 26,
- "O-MR1": 27,
- "P": 28,
- }
- for i, codename := range ctx.Config().PlatformVersionCombinedCodenames() {
- apiLevelsMap[codename] = baseApiLevel + i
+func getApiLevelsMap(config Config) map[string]int {
+ return config.Once("ApiLevelsMap", func() interface{} {
+ baseApiLevel := 9000
+ apiLevelsMap := map[string]int{
+ "G": 9,
+ "I": 14,
+ "J": 16,
+ "J-MR1": 17,
+ "J-MR2": 18,
+ "K": 19,
+ "L": 21,
+ "L-MR1": 22,
+ "M": 23,
+ "N": 24,
+ "N-MR1": 25,
+ "O": 26,
+ "O-MR1": 27,
+ "P": 28,
+ }
+ for i, codename := range config.PlatformVersionCombinedCodenames() {
+ apiLevelsMap[codename] = baseApiLevel + i
+ }
+
+ return apiLevelsMap
+ }).(map[string]int)
+}
+
+// Converts an API level string into its numeric form.
+// * Codenames are decoded.
+// * Numeric API levels are simply converted.
+// * "minimum" and "current" are not currently handled since the former is
+// NDK specific and the latter has inconsistent meaning.
+func ApiStrToNum(ctx BaseContext, apiLevel string) (int, error) {
+ num, ok := getApiLevelsMap(ctx.Config())[apiLevel]
+ if ok {
+ return num, nil
}
+ return strconv.Atoi(apiLevel)
+}
+func (a *apiLevelsSingleton) GenerateBuildActions(ctx SingletonContext) {
+ apiLevelsMap := getApiLevelsMap(ctx.Config())
apiLevelsJson := GetApiLevelsJson(ctx)
createApiLevelsJson(ctx, apiLevelsJson, apiLevelsMap)
}