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:
Joe Onorato 2023-06-21 15:16:23 -07:00
parent 81b25ed02b
commit 981c926269
13 changed files with 137 additions and 137 deletions

View file

@ -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"],
}

View file

@ -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,
})

View file

@ -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())

View file

@ -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) {

View file

@ -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" ],
}

View file

@ -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),

View file

@ -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"

View file

@ -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)
}

View 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
}

View file

@ -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)
}

View file

@ -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

View file

@ -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 {

View file

@ -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
}