Make the defaults property configurable
This allows using select statements with it. Bug: 354824866 Test: m Change-Id: I673df0869a68c2e79b19c577d0ae1ff2249388db
This commit is contained in:
parent
1d86a7f5e8
commit
bbf681deaf
2 changed files with 5 additions and 6 deletions
|
@ -28,7 +28,7 @@ type defaultsDependencyTag struct {
|
|||
var DefaultsDepTag defaultsDependencyTag
|
||||
|
||||
type defaultsProperties struct {
|
||||
Defaults []string
|
||||
Defaults proptools.Configurable[[]string]
|
||||
}
|
||||
|
||||
type DefaultableModuleBase struct {
|
||||
|
@ -278,13 +278,14 @@ func RegisterDefaultsPreArchMutators(ctx RegisterMutatorsContext) {
|
|||
|
||||
func defaultsDepsMutator(ctx BottomUpMutatorContext) {
|
||||
if defaultable, ok := ctx.Module().(Defaultable); ok {
|
||||
ctx.AddDependency(ctx.Module(), DefaultsDepTag, defaultable.defaults().Defaults...)
|
||||
ctx.AddDependency(ctx.Module(), DefaultsDepTag, defaultable.defaults().Defaults.GetOrDefault(ctx.Module().ConfigurableEvaluator(ctx), nil)...)
|
||||
}
|
||||
}
|
||||
|
||||
func defaultsMutator(ctx TopDownMutatorContext) {
|
||||
if defaultable, ok := ctx.Module().(Defaultable); ok {
|
||||
if len(defaultable.defaults().Defaults) > 0 {
|
||||
defaults := defaultable.defaults().Defaults.GetOrDefault(ctx.Module().ConfigurableEvaluator(ctx), nil)
|
||||
if len(defaults) > 0 {
|
||||
var defaultsList []Defaults
|
||||
seen := make(map[Defaults]bool)
|
||||
|
||||
|
@ -294,7 +295,7 @@ func defaultsMutator(ctx TopDownMutatorContext) {
|
|||
if !seen[defaults] {
|
||||
seen[defaults] = true
|
||||
defaultsList = append(defaultsList, defaults)
|
||||
return len(defaults.defaults().Defaults) > 0
|
||||
return len(defaults.defaults().Defaults.GetOrDefault(ctx.Module().ConfigurableEvaluator(ctx), nil)) > 0
|
||||
}
|
||||
} else {
|
||||
ctx.PropertyErrorf("defaults", "module %s is not an defaults module",
|
||||
|
|
|
@ -722,7 +722,6 @@ test {
|
|||
propInfo{Name: "Arch.X86_64.A", Type: "string", Value: "x86_64 a"},
|
||||
propInfo{Name: "B", Type: "bool", Value: "true"},
|
||||
propInfo{Name: "C", Type: "string slice", Values: []string{"default_c", "c"}},
|
||||
propInfo{Name: "Defaults", Type: "string slice", Values: []string{"foo_defaults"}},
|
||||
propInfo{Name: "Embedded_prop", Type: "string", Value: "a"},
|
||||
propInfo{Name: "Name", Type: "string", Value: "foo"},
|
||||
propInfo{Name: "Nested.E", Type: "string", Value: "nested e"},
|
||||
|
@ -746,7 +745,6 @@ test {
|
|||
foo := result.ModuleForTests("foo", "").Module().base()
|
||||
|
||||
AssertDeepEquals(t, "foo ", tc.expectedProps, foo.propertiesWithValues())
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue