diff options
author | Dan Albert <danalbert@google.com> | 2017-03-31 23:17:13 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-03-31 23:17:13 +0000 |
commit | d8db841138a1d7ed338c120af9aebbc4c5e108f4 (patch) | |
tree | b04c79d90fdb9ffd4cdd030213ab1b01daf918c9 | |
parent | d6f6ad8073e2a4fddcbc8985d3bda5916ce1f1ef (diff) | |
parent | 30c9d6e771ef76c4f809b0674ee9a3edd2aa88ab (diff) | |
download | build_soong-d8db841138a1d7ed338c120af9aebbc4c5e108f4.tar.gz build_soong-d8db841138a1d7ed338c120af9aebbc4c5e108f4.tar.bz2 build_soong-d8db841138a1d7ed338c120af9aebbc4c5e108f4.zip |
Generate file to map codenames to API levels.
am: 30c9d6e771
Change-Id: Ic2290130b7b675f3e82ba805bfe3b5a4fde6e249
-rw-r--r-- | Android.bp | 1 | ||||
-rw-r--r-- | android/api_levels.go | 63 | ||||
-rw-r--r-- | android/config.go | 4 | ||||
-rw-r--r-- | android/defs.go | 7 | ||||
-rw-r--r-- | android/variable.go | 3 |
5 files changed, 77 insertions, 1 deletions
@@ -47,6 +47,7 @@ bootstrap_go_package { ], srcs: [ "android/androidmk.go", + "android/api_levels.go", "android/arch.go", "android/config.go", "android/defaults.go", diff --git a/android/api_levels.go b/android/api_levels.go new file mode 100644 index 00000000..c77ced16 --- /dev/null +++ b/android/api_levels.go @@ -0,0 +1,63 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package android + +import ( + "encoding/json" + + "github.com/google/blueprint" +) + +func init() { + RegisterSingletonType("api_levels", ApiLevelsSingleton) +} + +func ApiLevelsSingleton() blueprint.Singleton { + return &apiLevelsSingleton{} +} + +type apiLevelsSingleton struct{} + +func createApiLevelsJson(ctx blueprint.SingletonContext, file string, + apiLevelsMap map[string]int) { + + jsonStr, err := json.Marshal(apiLevelsMap) + if err != nil { + ctx.Errorf(err.Error()) + } + + ctx.Build(pctx, blueprint.BuildParams{ + Rule: WriteFile, + Outputs: []string{file}, + Args: map[string]string{ + "content": string(jsonStr[:]), + }, + }) +} + +func GetApiLevelsJson(ctx PathContext) Path { + return PathForOutput(ctx, "api_levels.json") +} + +func (a *apiLevelsSingleton) GenerateBuildActions(ctx blueprint.SingletonContext) { + baseApiLevel := 9000 + apiLevelsMap := map[string]int{} + for i, codename := range ctx.Config().(Config).PlatformVersionAllCodenames() { + apiLevelsMap[codename] = baseApiLevel + i + } + + apiLevelsJson := GetApiLevelsJson(ctx) + createApiLevelsJson(ctx, apiLevelsJson.String(), apiLevelsMap) +} diff --git a/android/config.go b/android/config.go index 686eeb8e..3c254851 100644 --- a/android/config.go +++ b/android/config.go @@ -353,6 +353,10 @@ func (c *config) PlatformSdkVersion() string { return strconv.Itoa(c.PlatformSdkVersionInt()) } +func (c *config) PlatformVersionAllCodenames() []string { + return c.ProductVariables.Platform_version_all_codenames +} + func (c *config) BuildNumber() string { return "000000" } diff --git a/android/defs.go b/android/defs.go index d7e2a9f7..6f463162 100644 --- a/android/defs.go +++ b/android/defs.go @@ -80,6 +80,13 @@ var ( Description: "concatenate licenses $out", }) + WriteFile = pctx.AndroidStaticRule("WriteFile", + blueprint.RuleParams{ + Command: "echo '$content' > $out", + Description: "writing file $out", + }, + "content") + // Used only when USE_GOMA=true is set, to restrict non-goma jobs to the local parallelism value localPool = blueprint.NewBuiltinPool("local_pool") ) diff --git a/android/variable.go b/android/variable.go index c5b957be..b0ab2d0c 100644 --- a/android/variable.go +++ b/android/variable.go @@ -82,7 +82,8 @@ type productVariables struct { // Suffix to add to generated Makefiles Make_suffix *string `json:",omitempty"` - Platform_sdk_version *int `json:",omitempty"` + Platform_sdk_version *int `json:",omitempty"` + Platform_version_all_codenames []string `json:",omitempty"` DeviceName *string `json:",omitempty"` DeviceArch *string `json:",omitempty"` |