diff options
author | Dan Albert <danalbert@google.com> | 2018-05-03 15:42:34 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2018-07-24 22:52:57 +0000 |
commit | 6bc5b8320f9db94295f5d6d22e5d2843b65288ce (patch) | |
tree | e3301f6df2f53b899fd9165790dfc0882e55acf2 /android/api_levels.go | |
parent | 2358e0400fdfa206023ace40e6efc76caf4537a3 (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.go | 61 |
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) } |