From a865f4e905b49620d6634bc3b3cf897d91f5e114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20M=C3=A4nnich?= Date: Thu, 23 Feb 2023 17:10:27 +0000 Subject: [PATCH] Revert "refactor of api_levels map for soong injection" Revert submission 2441746-api_levels_refactor Reason for revert: broke Android kernel build tools build: https://ci.android.com/builds/branches/aosp_kernel-build-tools/grid? Reverted changes: /q/submissionid:2441746-api_levels_refactor Change-Id: I35206879b93ec95ae325025cb764c6c34880dccf --- android/api_levels.go | 84 +++++++++++++++++++++++++++--------------- bp2build/conversion.go | 1 - starlark_fmt/format.go | 11 ------ 3 files changed, 54 insertions(+), 42 deletions(-) diff --git a/android/api_levels.go b/android/api_levels.go index 6d7552ff7..bf7b31736 100644 --- a/android/api_levels.go +++ b/android/api_levels.go @@ -302,35 +302,31 @@ func GetApiLevelsJson(ctx PathContext) WritablePath { return PathForOutput(ctx, "api_levels.json") } -func getApiLevelsMapReleasedVersions() map[string]int { - return 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, - "Q": 29, - "R": 30, - "S": 31, - "S-V2": 32, - "Tiramisu": 33, - } -} - var finalCodenamesMapKey = NewOnceKey("FinalCodenamesMap") func getFinalCodenamesMap(config Config) map[string]int { return config.Once(finalCodenamesMapKey, func() interface{} { - apiLevelsMap := getApiLevelsMapReleasedVersions() + 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, + "Q": 29, + "R": 30, + "S": 31, + "S-V2": 32, + "Tiramisu": 33, + } // TODO: Differentiate "current" and "future". // The code base calls it FutureApiLevel, but the spelling is "current", @@ -353,10 +349,29 @@ func getFinalCodenamesMap(config Config) map[string]int { var apiLevelsMapKey = NewOnceKey("ApiLevelsMap") -// ApiLevelsMap has entries for preview API levels func GetApiLevelsMap(config Config) map[string]int { return config.Once(apiLevelsMapKey, func() interface{} { - apiLevelsMap := getApiLevelsMapReleasedVersions() + 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, + "Q": 29, + "R": 30, + "S": 31, + "S-V2": 32, + "Tiramisu": 33, + } for i, codename := range config.PlatformVersionActiveCodenames() { apiLevelsMap[codename] = previewAPILevelBase + i } @@ -371,11 +386,20 @@ func (a *apiLevelsSingleton) GenerateBuildActions(ctx SingletonContext) { createApiLevelsJson(ctx, apiLevelsJson, apiLevelsMap) } +func printApiLevelsStarlarkDict(config Config) string { + apiLevelsMap := GetApiLevelsMap(config) + valDict := make(map[string]string, len(apiLevelsMap)) + for k, v := range apiLevelsMap { + valDict[k] = strconv.Itoa(v) + } + return starlark_fmt.PrintDict(valDict, 0) +} + func StarlarkApiLevelConfigs(config Config) string { return fmt.Sprintf(bazel.GeneratedBazelFileWarning+` -_api_levels_released_versions = %s +_api_levels = %s -api_levels_released_versions = _api_levels_released_versions -`, starlark_fmt.PrintStringIntDict(getApiLevelsMapReleasedVersions(), 0), +api_levels = _api_levels +`, printApiLevelsStarlarkDict(config), ) } diff --git a/bp2build/conversion.go b/bp2build/conversion.go index 47cd2b408..73df67555 100644 --- a/bp2build/conversion.go +++ b/bp2build/conversion.go @@ -59,7 +59,6 @@ func soongInjectionFiles(cfg android.Config, metrics CodegenMetrics) ([]BazelFil return nil, err } files = append(files, newFile("api_levels", GeneratedBuildFileName, `exports_files(["api_levels.json"])`)) - // TODO(b/269691302) value of apiLevelsContent is product variable dependent and should be avoided for soong injection files = append(files, newFile("api_levels", "api_levels.json", string(apiLevelsContent))) files = append(files, newFile("api_levels", "api_levels.bzl", android.StarlarkApiLevelConfigs(cfg))) diff --git a/starlark_fmt/format.go b/starlark_fmt/format.go index 064fc2169..3e51fa14c 100644 --- a/starlark_fmt/format.go +++ b/starlark_fmt/format.go @@ -17,7 +17,6 @@ package starlark_fmt import ( "fmt" "sort" - "strconv" "strings" ) @@ -85,16 +84,6 @@ func PrintBoolDict(dict map[string]bool, indentLevel int) string { return PrintDict(formattedValueDict, indentLevel) } -// PrintStringIntDict returns a Starlark-compatible string formatted as dictionary with -// string keys and int values. -func PrintStringIntDict(dict map[string]int, indentLevel int) string { - valDict := make(map[string]string, len(dict)) - for k, v := range dict { - valDict[k] = strconv.Itoa(v) - } - return PrintDict(valDict, indentLevel) -} - // PrintDict returns a starlark-compatible string containing a dictionary with string keys and // values printed with no additional formatting. func PrintDict(dict map[string]string, indentLevel int) string {