diff options
Diffstat (limited to 'android')
-rw-r--r-- | android/module.go | 11 | ||||
-rw-r--r-- | android/mutator.go | 11 | ||||
-rw-r--r-- | android/prebuilt.go | 12 |
3 files changed, 27 insertions, 7 deletions
diff --git a/android/module.go b/android/module.go index cb068abb..0fb94796 100644 --- a/android/module.go +++ b/android/module.go @@ -139,6 +139,7 @@ type ModuleContext interface { VisitDirectDepsBlueprint(visit func(blueprint.Module)) VisitDirectDeps(visit func(Module)) + VisitDirectDepsWithTag(tag blueprint.DependencyTag, visit func(Module)) VisitDirectDepsIf(pred func(Module) bool, visit func(Module)) VisitDepsDepthFirst(visit func(Module)) VisitDepsDepthFirstIf(pred func(Module) bool, visit func(Module)) @@ -831,6 +832,16 @@ func (a *androidModuleContext) VisitDirectDeps(visit func(Module)) { }) } +func (a *androidModuleContext) VisitDirectDepsWithTag(tag blueprint.DependencyTag, visit func(Module)) { + a.ModuleContext.VisitDirectDeps(func(module blueprint.Module) { + if aModule := a.validateAndroidModule(module); aModule != nil { + if a.ModuleContext.OtherModuleDependencyTag(aModule) == tag { + visit(aModule) + } + } + }) +} + func (a *androidModuleContext) VisitDirectDepsIf(pred func(Module) bool, visit func(Module)) { a.ModuleContext.VisitDirectDepsIf( // pred diff --git a/android/mutator.go b/android/mutator.go index 8de57e1b..2f13f6ca 100644 --- a/android/mutator.go +++ b/android/mutator.go @@ -127,6 +127,7 @@ type TopDownMutatorContext interface { GetDirectDep(name string) (blueprint.Module, blueprint.DependencyTag) VisitDirectDeps(visit func(Module)) + VisitDirectDepsWithTag(tag blueprint.DependencyTag, visit func(Module)) VisitDirectDepsIf(pred func(Module) bool, visit func(Module)) VisitDepsDepthFirst(visit func(Module)) VisitDepsDepthFirstIf(pred func(Module) bool, visit func(Module)) @@ -230,6 +231,16 @@ func (a *androidTopDownMutatorContext) VisitDirectDeps(visit func(Module)) { }) } +func (a *androidTopDownMutatorContext) VisitDirectDepsWithTag(tag blueprint.DependencyTag, visit func(Module)) { + a.TopDownMutatorContext.VisitDirectDeps(func(module blueprint.Module) { + if aModule, _ := module.(Module); aModule != nil { + if a.TopDownMutatorContext.OtherModuleDependencyTag(aModule) == tag { + visit(aModule) + } + } + }) +} + func (a *androidTopDownMutatorContext) VisitDirectDepsIf(pred func(Module) bool, visit func(Module)) { a.TopDownMutatorContext.VisitDirectDepsIf( // pred diff --git a/android/prebuilt.go b/android/prebuilt.go index d3f97041..9356aabb 100644 --- a/android/prebuilt.go +++ b/android/prebuilt.go @@ -109,13 +109,11 @@ func PrebuiltSelectModuleMutator(ctx TopDownMutatorContext) { p.properties.UsePrebuilt = p.usePrebuilt(ctx, nil) } } else if s, ok := ctx.Module().(Module); ok { - ctx.VisitDirectDeps(func(m Module) { - if ctx.OtherModuleDependencyTag(m) == prebuiltDepTag { - p := m.(PrebuiltInterface).Prebuilt() - if p.usePrebuilt(ctx, s) { - p.properties.UsePrebuilt = true - s.SkipInstall() - } + ctx.VisitDirectDepsWithTag(prebuiltDepTag, func(m Module) { + p := m.(PrebuiltInterface).Prebuilt() + if p.usePrebuilt(ctx, s) { + p.properties.UsePrebuilt = true + s.SkipInstall() } }) } |