Allow defaults modules to have defaults
Allow chaining defaults modules by making Defaults be a Defaultable.
Change-Id: I4ba86c07f7aad9c396ed33d55fe95d1fb78e487d
diff --git a/android/defaults.go b/android/defaults.go
index f9cf0cc..2c589b9 100644
--- a/android/defaults.go
+++ b/android/defaults.go
@@ -45,7 +45,7 @@
type Defaultable interface {
defaults() *defaultsProperties
setProperties([]interface{})
- applyDefaults(TopDownMutatorContext, Defaults)
+ applyDefaults(BottomUpMutatorContext, Defaults)
}
var _ Defaultable = (*DefaultableModule)(nil)
@@ -61,12 +61,13 @@
}
type DefaultsModule struct {
+ DefaultableModule
defaultProperties []interface{}
}
type Defaults interface {
+ Defaultable
isDefaults() bool
- setProperties([]interface{})
properties() []interface{}
}
@@ -75,22 +76,16 @@
}
func (d *DefaultsModule) properties() []interface{} {
- return d.defaultProperties
-}
-
-func (d *DefaultsModule) setProperties(props []interface{}) {
- d.defaultProperties = props
+ return d.defaultableProperties
}
func InitDefaultsModule(module Module, d Defaults, props ...interface{}) (blueprint.Module, []interface{}) {
- d.setProperties(props)
-
- return module, props
+ return InitDefaultableModule(module, d, props...)
}
var _ Defaults = (*DefaultsModule)(nil)
-func (defaultable *DefaultableModule) applyDefaults(ctx TopDownMutatorContext,
+func (defaultable *DefaultableModule) applyDefaults(ctx BottomUpMutatorContext,
defaults Defaults) {
for _, prop := range defaultable.defaultableProperties {
@@ -115,7 +110,7 @@
}
}
-func defaultsMutator(ctx TopDownMutatorContext) {
+func defaultsMutator(ctx BottomUpMutatorContext) {
if defaultable, ok := ctx.Module().(Defaultable); ok {
for _, defaultsDep := range defaultable.defaults().Defaults {
ctx.VisitDirectDeps(func(m blueprint.Module) {