Pass DepsContext to dependency methods
Pass a DepsContext that embeds android.BottomUpMutatorContext
instead of android.BaseContext so that dependency methods can
directly add dependencies.
Test: m -j
Change-Id: Id4c157975d3d6f03efd99785d217bef486a76139
diff --git a/cc/cc.go b/cc/cc.go
index 3fc694f..74d3d3d 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -171,16 +171,21 @@
ModuleContextIntf
}
+type DepsContext interface {
+ android.BottomUpMutatorContext
+ ModuleContextIntf
+}
+
type feature interface {
begin(ctx BaseModuleContext)
- deps(ctx BaseModuleContext, deps Deps) Deps
+ deps(ctx DepsContext, deps Deps) Deps
flags(ctx ModuleContext, flags Flags) Flags
props() []interface{}
}
type compiler interface {
compilerInit(ctx BaseModuleContext)
- compilerDeps(ctx BaseModuleContext, deps Deps) Deps
+ compilerDeps(ctx DepsContext, deps Deps) Deps
compilerFlags(ctx ModuleContext, flags Flags) Flags
compilerProps() []interface{}
@@ -191,7 +196,7 @@
type linker interface {
linkerInit(ctx BaseModuleContext)
- linkerDeps(ctx BaseModuleContext, deps Deps) Deps
+ linkerDeps(ctx DepsContext, deps Deps) Deps
linkerFlags(ctx ModuleContext, flags Flags) Flags
linkerProps() []interface{}
@@ -307,6 +312,11 @@
moduleContextImpl
}
+type depsContext struct {
+ android.BottomUpMutatorContext
+ moduleContextImpl
+}
+
type moduleContext struct {
android.ModuleContext
moduleContextImpl
@@ -534,7 +544,7 @@
}
}
-func (c *Module) deps(ctx BaseModuleContext) Deps {
+func (c *Module) deps(ctx DepsContext) Deps {
deps := Deps{}
if c.compiler != nil {
@@ -604,8 +614,8 @@
return
}
- ctx := &baseModuleContext{
- BaseContext: actx,
+ ctx := &depsContext{
+ BottomUpMutatorContext: actx,
moduleContextImpl: moduleContextImpl{
mod: c,
},