Fix: PathsForModuleSrc does not work for a replaced dependency am: f2976304f7

am: 581569e4cc

Change-Id: I7fee54cf5aa62f5b58b88a4a04e600619b488806
This commit is contained in:
Jiyong Park 2019-04-19 02:09:52 -07:00 committed by android-build-merger
commit 683c699acd

View file

@ -1042,6 +1042,39 @@ func (a *androidModuleContext) validateAndroidModule(module blueprint.Module) Mo
return aModule return aModule
} }
func (a *androidModuleContext) getDirectDepInternal(name string, tag blueprint.DependencyTag) (blueprint.Module, blueprint.DependencyTag) {
type dep struct {
mod blueprint.Module
tag blueprint.DependencyTag
}
var deps []dep
a.VisitDirectDepsBlueprint(func(m blueprint.Module) {
if aModule, _ := m.(Module); aModule != nil && aModule.base().BaseModuleName() == name {
returnedTag := a.ModuleContext.OtherModuleDependencyTag(aModule)
if tag == nil || returnedTag == tag {
deps = append(deps, dep{aModule, returnedTag})
}
}
})
if len(deps) == 1 {
return deps[0].mod, deps[0].tag
} else if len(deps) >= 2 {
panic(fmt.Errorf("Multiple dependencies having same BaseModuleName() %q found from %q",
name, a.ModuleName()))
} else {
return nil, nil
}
}
func (a *androidModuleContext) GetDirectDepWithTag(name string, tag blueprint.DependencyTag) blueprint.Module {
m, _ := a.getDirectDepInternal(name, tag)
return m
}
func (a *androidModuleContext) GetDirectDep(name string) (blueprint.Module, blueprint.DependencyTag) {
return a.getDirectDepInternal(name, nil)
}
func (a *androidModuleContext) VisitDirectDepsBlueprint(visit func(blueprint.Module)) { func (a *androidModuleContext) VisitDirectDepsBlueprint(visit func(blueprint.Module)) {
a.ModuleContext.VisitDirectDeps(visit) a.ModuleContext.VisitDirectDeps(visit)
} }