Rename device_config --> aconfig and definitions --> declarations
Bug: 285303012 Test: for x in next trunk trunk_food trunk_staging ; do lunch aosp_panther-$x-eng ; m nothing ; done Change-Id: I3375f46b3ecbbc516d1bee6ab3f80725fcccde8f
This commit is contained in:
parent
81b25ed02b
commit
981c926269
13 changed files with 137 additions and 137 deletions
|
@ -3,8 +3,8 @@ package {
|
|||
}
|
||||
|
||||
bootstrap_go_package {
|
||||
name: "soong-device_config",
|
||||
pkgPath: "android/soong/device_config",
|
||||
name: "soong-aconfig",
|
||||
pkgPath: "android/soong/aconfig",
|
||||
deps: [
|
||||
"blueprint",
|
||||
"blueprint-pathtools",
|
||||
|
@ -16,17 +16,17 @@ bootstrap_go_package {
|
|||
"soong-java",
|
||||
],
|
||||
srcs: [
|
||||
"device_config_definitions.go",
|
||||
"device_config_values.go",
|
||||
"device_config_value_set.go",
|
||||
"aconfig_declarations.go",
|
||||
"aconfig_values.go",
|
||||
"aconfig_value_set.go",
|
||||
"init.go",
|
||||
"java_device_config_definitions_library.go",
|
||||
"java_aconfig_library.go",
|
||||
"testing.go",
|
||||
],
|
||||
testSrcs: [
|
||||
"device_config_definitions_test.go",
|
||||
"device_config_values_test.go",
|
||||
"device_config_value_set_test.go",
|
||||
"aconfig_declarations_test.go",
|
||||
"aconfig_values_test.go",
|
||||
"aconfig_value_set_test.go",
|
||||
],
|
||||
pluginFor: ["soong_build"],
|
||||
}
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package device_config
|
||||
package aconfig
|
||||
|
||||
import (
|
||||
"android/soong/android"
|
||||
|
@ -21,11 +21,11 @@ import (
|
|||
"strings"
|
||||
)
|
||||
|
||||
type DefinitionsModule struct {
|
||||
type DeclarationsModule struct {
|
||||
android.ModuleBase
|
||||
android.DefaultableModuleBase
|
||||
|
||||
// Properties for "device_config_definitions"
|
||||
// Properties for "aconfig_declarations"
|
||||
properties struct {
|
||||
// aconfig files, relative to this Android.bp file
|
||||
Srcs []string `android:"path"`
|
||||
|
@ -33,15 +33,15 @@ type DefinitionsModule struct {
|
|||
// Release config flag package
|
||||
Package string
|
||||
|
||||
// Values from TARGET_RELEASE / RELEASE_DEVICE_CONFIG_VALUE_SETS
|
||||
// Values from TARGET_RELEASE / RELEASE_ACONFIG_VALUE_SETS
|
||||
Values []string `blueprint:"mutated"`
|
||||
}
|
||||
|
||||
intermediatePath android.WritablePath
|
||||
}
|
||||
|
||||
func DefinitionsFactory() android.Module {
|
||||
module := &DefinitionsModule{}
|
||||
func DeclarationsFactory() android.Module {
|
||||
module := &DeclarationsModule{}
|
||||
|
||||
android.InitAndroidModule(module)
|
||||
android.InitDefaultableModule(module)
|
||||
|
@ -58,7 +58,7 @@ type implicitValuesTagType struct {
|
|||
|
||||
var implicitValuesTag = implicitValuesTagType{}
|
||||
|
||||
func (module *DefinitionsModule) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
func (module *DeclarationsModule) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
// Validate Properties
|
||||
if len(module.properties.Srcs) == 0 {
|
||||
ctx.PropertyErrorf("srcs", "missing source files")
|
||||
|
@ -68,14 +68,14 @@ func (module *DefinitionsModule) DepsMutator(ctx android.BottomUpMutatorContext)
|
|||
ctx.PropertyErrorf("package", "missing package property")
|
||||
}
|
||||
|
||||
// Add a dependency on the device_config_value_sets defined in
|
||||
// RELEASE_DEVICE_CONFIG_VALUE_SETS, and add any device_config_values that
|
||||
// Add a dependency on the aconfig_value_sets defined in
|
||||
// RELEASE_ACONFIG_VALUE_SETS, and add any aconfig_values that
|
||||
// match our package.
|
||||
valuesFromConfig := ctx.Config().ReleaseDeviceConfigValueSets()
|
||||
valuesFromConfig := ctx.Config().ReleaseAconfigValueSets()
|
||||
ctx.AddDependency(ctx.Module(), implicitValuesTag, valuesFromConfig...)
|
||||
}
|
||||
|
||||
func (module *DefinitionsModule) OutputFiles(tag string) (android.Paths, error) {
|
||||
func (module *DeclarationsModule) OutputFiles(tag string) (android.Paths, error) {
|
||||
switch tag {
|
||||
case "":
|
||||
// The default output of this module is the intermediates format, which is
|
||||
|
@ -83,7 +83,7 @@ func (module *DefinitionsModule) OutputFiles(tag string) (android.Paths, error)
|
|||
// correctly.
|
||||
return []android.Path{module.intermediatePath}, nil
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported device_config_definitions module reference tag %q", tag)
|
||||
return nil, fmt.Errorf("unsupported aconfig_declarations module reference tag %q", tag)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -96,16 +96,16 @@ func joinAndPrefix(prefix string, values []string) string {
|
|||
return sb.String()
|
||||
}
|
||||
|
||||
// Provider published by device_config_value_set
|
||||
type definitionsProviderData struct {
|
||||
// Provider published by aconfig_value_set
|
||||
type declarationsProviderData struct {
|
||||
Package string
|
||||
IntermediatePath android.WritablePath
|
||||
}
|
||||
|
||||
var definitionsProviderKey = blueprint.NewProvider(definitionsProviderData{})
|
||||
var declarationsProviderKey = blueprint.NewProvider(declarationsProviderData{})
|
||||
|
||||
func (module *DefinitionsModule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
// Get the values that came from the global RELEASE_DEVICE_CONFIG_VALUE_SETS flag
|
||||
func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
// Get the values that came from the global RELEASE_ACONFIG_VALUE_SETS flag
|
||||
ctx.VisitDirectDeps(func(dep android.Module) {
|
||||
if !ctx.OtherModuleHasProvider(dep, valueSetProviderKey) {
|
||||
// Other modules get injected as dependencies too, for example the license modules
|
||||
|
@ -127,7 +127,7 @@ func (module *DefinitionsModule) GenerateAndroidBuildActions(ctx android.ModuleC
|
|||
Rule: aconfigRule,
|
||||
Inputs: inputFiles,
|
||||
Output: intermediatePath,
|
||||
Description: "device_config_definitions",
|
||||
Description: "aconfig_declarations",
|
||||
Args: map[string]string{
|
||||
"release_version": ctx.Config().ReleaseVersion(),
|
||||
"package": module.properties.Package,
|
||||
|
@ -135,7 +135,7 @@ func (module *DefinitionsModule) GenerateAndroidBuildActions(ctx android.ModuleC
|
|||
},
|
||||
})
|
||||
|
||||
ctx.SetProvider(definitionsProviderKey, definitionsProviderData{
|
||||
ctx.SetProvider(declarationsProviderKey, declarationsProviderData{
|
||||
Package: module.properties.Package,
|
||||
IntermediatePath: intermediatePath,
|
||||
})
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package device_config
|
||||
package aconfig
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
@ -21,9 +21,9 @@ import (
|
|||
"android/soong/android"
|
||||
)
|
||||
|
||||
func TestDeviceConfigDefinitions(t *testing.T) {
|
||||
func TestAconfigDeclarations(t *testing.T) {
|
||||
bp := `
|
||||
device_config_definitions {
|
||||
aconfig_declarations {
|
||||
name: "module_name",
|
||||
package: "com.example.package",
|
||||
srcs: ["foo.aconfig"],
|
||||
|
@ -31,10 +31,10 @@ func TestDeviceConfigDefinitions(t *testing.T) {
|
|||
`
|
||||
result := runTest(t, android.FixtureExpectsNoErrors, bp)
|
||||
|
||||
module := result.ModuleForTests("module_name", "").Module().(*DefinitionsModule)
|
||||
module := result.ModuleForTests("module_name", "").Module().(*DeclarationsModule)
|
||||
|
||||
// Check that the provider has the right contents
|
||||
depData := result.ModuleProvider(module, definitionsProviderKey).(definitionsProviderData)
|
||||
depData := result.ModuleProvider(module, declarationsProviderKey).(declarationsProviderData)
|
||||
android.AssertStringEquals(t, "package", depData.Package, "com.example.package")
|
||||
if !strings.HasSuffix(depData.IntermediatePath.String(), "/intermediate.pb") {
|
||||
t.Errorf("Missing intermediates path in provider: %s", depData.IntermediatePath.String())
|
|
@ -12,20 +12,20 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package device_config
|
||||
package aconfig
|
||||
|
||||
import (
|
||||
"android/soong/android"
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
|
||||
// Properties for "device_config_value_set"
|
||||
// Properties for "aconfig_value_set"
|
||||
type ValueSetModule struct {
|
||||
android.ModuleBase
|
||||
android.DefaultableModuleBase
|
||||
|
||||
properties struct {
|
||||
// device_config_values modules
|
||||
// aconfig_values modules
|
||||
Values []string
|
||||
}
|
||||
}
|
||||
|
@ -49,10 +49,10 @@ type valueSetType struct {
|
|||
|
||||
var valueSetTag = valueSetType{}
|
||||
|
||||
// Provider published by device_config_value_set
|
||||
// Provider published by aconfig_value_set
|
||||
type valueSetProviderData struct {
|
||||
// The package of each of the
|
||||
// (map of package --> device_config_module)
|
||||
// (map of package --> aconfig_module)
|
||||
AvailablePackages map[string]android.Paths
|
||||
}
|
||||
|
||||
|
@ -63,7 +63,7 @@ func (module *ValueSetModule) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|||
for _, dep := range deps {
|
||||
_, ok := dep.(*ValuesModule)
|
||||
if !ok {
|
||||
ctx.PropertyErrorf("values", "values must be a device_config_values module")
|
||||
ctx.PropertyErrorf("values", "values must be a aconfig_values module")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
@ -71,7 +71,7 @@ func (module *ValueSetModule) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|||
|
||||
func (module *ValueSetModule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
// Accumulate the packages of the values modules listed, and set that as an
|
||||
// valueSetProviderKey provider that device_config modules can read and use
|
||||
// valueSetProviderKey provider that aconfig modules can read and use
|
||||
// to append values to their aconfig actions.
|
||||
packages := make(map[string]android.Paths)
|
||||
ctx.VisitDirectDeps(func(dep android.Module) {
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package device_config
|
||||
package aconfig
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
@ -20,15 +20,15 @@ import (
|
|||
"android/soong/android"
|
||||
)
|
||||
|
||||
func TestDeviceConfigValueSet(t *testing.T) {
|
||||
func TestAconfigValueSet(t *testing.T) {
|
||||
bp := `
|
||||
device_config_values {
|
||||
aconfig_values {
|
||||
name: "one",
|
||||
srcs: [ "blah.aconfig_values" ],
|
||||
package: "foo.package"
|
||||
}
|
||||
|
||||
device_config_value_set {
|
||||
aconfig_value_set {
|
||||
name: "module_name",
|
||||
values: [ "one" ],
|
||||
}
|
|
@ -12,14 +12,14 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package device_config
|
||||
package aconfig
|
||||
|
||||
import (
|
||||
"android/soong/android"
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
|
||||
// Properties for "device_config_value"
|
||||
// Properties for "aconfig_value"
|
||||
type ValuesModule struct {
|
||||
android.ModuleBase
|
||||
android.DefaultableModuleBase
|
||||
|
@ -45,7 +45,7 @@ func ValuesFactory() android.Module {
|
|||
return module
|
||||
}
|
||||
|
||||
// Provider published by device_config_value_set
|
||||
// Provider published by aconfig_value_set
|
||||
type valuesProviderData struct {
|
||||
// The package that this values module values
|
||||
Package string
|
||||
|
@ -61,7 +61,7 @@ func (module *ValuesModule) GenerateAndroidBuildActions(ctx android.ModuleContex
|
|||
ctx.PropertyErrorf("package", "missing package property")
|
||||
}
|
||||
|
||||
// Provide the our source files list to the device_config_value_set as a list of files
|
||||
// Provide the our source files list to the aconfig_value_set as a list of files
|
||||
providerData := valuesProviderData{
|
||||
Package: module.properties.Package,
|
||||
Values: android.PathsForModuleSrc(ctx, module.properties.Srcs),
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package device_config
|
||||
package aconfig
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
@ -20,9 +20,9 @@ import (
|
|||
"android/soong/android"
|
||||
)
|
||||
|
||||
func TestDeviceConfigValues(t *testing.T) {
|
||||
func TestAconfigValues(t *testing.T) {
|
||||
bp := `
|
||||
device_config_values {
|
||||
aconfig_values {
|
||||
name: "module_name",
|
||||
srcs: [ "blah.aconfig_values" ],
|
||||
package: "foo.package"
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package device_config
|
||||
package aconfig
|
||||
|
||||
import (
|
||||
"android/soong/android"
|
||||
|
@ -20,9 +20,9 @@ import (
|
|||
)
|
||||
|
||||
var (
|
||||
pctx = android.NewPackageContext("android/soong/device_config")
|
||||
pctx = android.NewPackageContext("android/soong/aconfig")
|
||||
|
||||
// For device_config_definitions: Generate cache file
|
||||
// For aconfig_declarations: Generate cache file
|
||||
aconfigRule = pctx.AndroidStaticRule("aconfig",
|
||||
blueprint.RuleParams{
|
||||
Command: `${aconfig} create-cache` +
|
||||
|
@ -38,7 +38,7 @@ var (
|
|||
Restat: true,
|
||||
}, "release_version", "package", "values")
|
||||
|
||||
// For java_device_config_definitions_library: Generate java file
|
||||
// For java_aconfig_library: Generate java file
|
||||
srcJarRule = pctx.AndroidStaticRule("aconfig_srcjar",
|
||||
blueprint.RuleParams{
|
||||
Command: `rm -rf ${out}.tmp` +
|
||||
|
@ -63,8 +63,8 @@ func init() {
|
|||
}
|
||||
|
||||
func registerBuildComponents(ctx android.RegistrationContext) {
|
||||
ctx.RegisterModuleType("device_config_definitions", DefinitionsFactory)
|
||||
ctx.RegisterModuleType("device_config_values", ValuesFactory)
|
||||
ctx.RegisterModuleType("device_config_value_set", ValueSetFactory)
|
||||
ctx.RegisterModuleType("java_device_config_definitions_library", JavaDefinitionsLibraryFactory)
|
||||
ctx.RegisterModuleType("aconfig_declarations", DeclarationsFactory)
|
||||
ctx.RegisterModuleType("aconfig_values", ValuesFactory)
|
||||
ctx.RegisterModuleType("aconfig_value_set", ValueSetFactory)
|
||||
ctx.RegisterModuleType("java_aconfig_library", JavaDeclarationsLibraryFactory)
|
||||
}
|
71
aconfig/java_aconfig_library.go
Normal file
71
aconfig/java_aconfig_library.go
Normal file
|
@ -0,0 +1,71 @@
|
|||
// Copyright 2023 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 aconfig
|
||||
|
||||
import (
|
||||
"android/soong/android"
|
||||
"android/soong/java"
|
||||
"fmt"
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
|
||||
type declarationsTagType struct {
|
||||
blueprint.BaseDependencyTag
|
||||
}
|
||||
|
||||
var declarationsTag = declarationsTagType{}
|
||||
|
||||
type JavaAconfigDeclarationsLibraryProperties struct {
|
||||
// name of the aconfig_declarations module to generate a library for
|
||||
Aconfig_declarations string
|
||||
}
|
||||
|
||||
type JavaAconfigDeclarationsLibraryCallbacks struct {
|
||||
properties JavaAconfigDeclarationsLibraryProperties
|
||||
}
|
||||
|
||||
func JavaDeclarationsLibraryFactory() android.Module {
|
||||
callbacks := &JavaAconfigDeclarationsLibraryCallbacks{}
|
||||
return java.GeneratedJavaLibraryModuleFactory("java_aconfig_library", callbacks, &callbacks.properties)
|
||||
}
|
||||
|
||||
func (callbacks *JavaAconfigDeclarationsLibraryCallbacks) DepsMutator(module *java.GeneratedJavaLibraryModule, ctx android.BottomUpMutatorContext) {
|
||||
declarations := callbacks.properties.Aconfig_declarations
|
||||
if len(declarations) == 0 {
|
||||
// TODO: Add test for this case
|
||||
ctx.PropertyErrorf("aconfig_declarations", "aconfig_declarations property required")
|
||||
} else {
|
||||
ctx.AddDependency(ctx.Module(), declarationsTag, declarations)
|
||||
}
|
||||
}
|
||||
|
||||
func (callbacks *JavaAconfigDeclarationsLibraryCallbacks) GenerateSourceJarBuildActions(ctx android.ModuleContext) android.Path {
|
||||
// Get the values that came from the global RELEASE_ACONFIG_VALUE_SETS flag
|
||||
declarationsModules := ctx.GetDirectDepsWithTag(declarationsTag)
|
||||
if len(declarationsModules) != 1 {
|
||||
panic(fmt.Errorf("Exactly one aconfig_declarations property required"))
|
||||
}
|
||||
declarations := ctx.OtherModuleProvider(declarationsModules[0], declarationsProviderKey).(declarationsProviderData)
|
||||
|
||||
srcJarPath := android.PathForModuleGen(ctx, ctx.ModuleName()+".srcjar")
|
||||
ctx.Build(pctx, android.BuildParams{
|
||||
Rule: srcJarRule,
|
||||
Input: declarations.IntermediatePath,
|
||||
Output: srcJarPath,
|
||||
Description: "aconfig.srcjar",
|
||||
})
|
||||
|
||||
return srcJarPath
|
||||
}
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package device_config
|
||||
package aconfig
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
@ -20,10 +20,10 @@ import (
|
|||
"android/soong/android"
|
||||
)
|
||||
|
||||
var PrepareForTestWithDeviceConfigBuildComponents = android.FixtureRegisterWithContext(registerBuildComponents)
|
||||
var PrepareForTestWithAconfigBuildComponents = android.FixtureRegisterWithContext(registerBuildComponents)
|
||||
|
||||
func runTest(t *testing.T, errorHandler android.FixtureErrorHandler, bp string) *android.TestResult {
|
||||
return android.GroupFixturePreparers(PrepareForTestWithDeviceConfigBuildComponents).
|
||||
return android.GroupFixturePreparers(PrepareForTestWithAconfigBuildComponents).
|
||||
ExtendWithErrorHandler(errorHandler).
|
||||
RunTestWithBp(t, bp)
|
||||
}
|
|
@ -184,8 +184,8 @@ func (c Config) ReleaseVersion() string {
|
|||
}
|
||||
|
||||
// The flag values files passed to aconfig, derived from RELEASE_VERSION
|
||||
func (c Config) ReleaseDeviceConfigValueSets() []string {
|
||||
return c.config.productVariables.ReleaseDeviceConfigValueSets
|
||||
func (c Config) ReleaseAconfigValueSets() []string {
|
||||
return c.config.productVariables.ReleaseAconfigValueSets
|
||||
}
|
||||
|
||||
// A DeviceConfig object represents the configuration for a particular device
|
||||
|
|
|
@ -478,7 +478,7 @@ type productVariables struct {
|
|||
BuildVersionTags []string `json:",omitempty"`
|
||||
|
||||
ReleaseVersion string `json:",omitempty"`
|
||||
ReleaseDeviceConfigValueSets []string `json:",omitempty"`
|
||||
ReleaseAconfigValueSets []string `json:",omitempty"`
|
||||
}
|
||||
|
||||
func boolPtr(v bool) *bool {
|
||||
|
|
|
@ -1,71 +0,0 @@
|
|||
// Copyright 2023 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 device_config
|
||||
|
||||
import (
|
||||
"android/soong/android"
|
||||
"android/soong/java"
|
||||
"fmt"
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
|
||||
type definitionsTagType struct {
|
||||
blueprint.BaseDependencyTag
|
||||
}
|
||||
|
||||
var definitionsTag = definitionsTagType{}
|
||||
|
||||
type JavaDeviceConfigDefinitionsLibraryProperties struct {
|
||||
// name of the device_config_definitions module to generate a library for
|
||||
Device_config_definitions string
|
||||
}
|
||||
|
||||
type JavaDeviceConfigDefinitionsLibraryCallbacks struct {
|
||||
properties JavaDeviceConfigDefinitionsLibraryProperties
|
||||
}
|
||||
|
||||
func JavaDefinitionsLibraryFactory() android.Module {
|
||||
callbacks := &JavaDeviceConfigDefinitionsLibraryCallbacks{}
|
||||
return java.GeneratedJavaLibraryModuleFactory("java_device_config_definitions_library", callbacks, &callbacks.properties)
|
||||
}
|
||||
|
||||
func (callbacks *JavaDeviceConfigDefinitionsLibraryCallbacks) DepsMutator(module *java.GeneratedJavaLibraryModule, ctx android.BottomUpMutatorContext) {
|
||||
definitions := callbacks.properties.Device_config_definitions
|
||||
if len(definitions) == 0 {
|
||||
// TODO: Add test for this case
|
||||
ctx.PropertyErrorf("device_config_definitions", "device_config_definitions property required")
|
||||
} else {
|
||||
ctx.AddDependency(ctx.Module(), definitionsTag, definitions)
|
||||
}
|
||||
}
|
||||
|
||||
func (callbacks *JavaDeviceConfigDefinitionsLibraryCallbacks) GenerateSourceJarBuildActions(ctx android.ModuleContext) android.Path {
|
||||
// Get the values that came from the global RELEASE_DEVICE_CONFIG_VALUE_SETS flag
|
||||
definitionsModules := ctx.GetDirectDepsWithTag(definitionsTag)
|
||||
if len(definitionsModules) != 1 {
|
||||
panic(fmt.Errorf("Exactly one device_config_definitions property required"))
|
||||
}
|
||||
definitions := ctx.OtherModuleProvider(definitionsModules[0], definitionsProviderKey).(definitionsProviderData)
|
||||
|
||||
srcJarPath := android.PathForModuleGen(ctx, ctx.ModuleName()+".srcjar")
|
||||
ctx.Build(pctx, android.BuildParams{
|
||||
Rule: srcJarRule,
|
||||
Input: definitions.IntermediatePath,
|
||||
Output: srcJarPath,
|
||||
Description: "device_config.srcjar",
|
||||
})
|
||||
|
||||
return srcJarPath
|
||||
}
|
Loading…
Reference in a new issue