Merge "Annotate dependency tags for dependencies of installed files"

This commit is contained in:
Colin Cross
2020-11-24 16:01:35 +00:00
committed by Gerrit Code Review
15 changed files with 346 additions and 30 deletions

View File

@@ -1286,14 +1286,18 @@ func (m *ModuleBase) ExportedToMake() bool {
return m.commonProperties.NamespaceExportedToMake
}
// computeInstallDeps finds the installed paths of all dependencies that have a dependency
// tag that is annotated as needing installation via the IsInstallDepNeeded method.
func (m *ModuleBase) computeInstallDeps(ctx blueprint.ModuleContext) InstallPaths {
var result InstallPaths
// TODO(ccross): we need to use WalkDeps and have some way to know which dependencies require installation
ctx.VisitDepsDepthFirst(func(m blueprint.Module) {
if a, ok := m.(Module); ok {
result = append(result, a.FilesToInstall()...)
ctx.WalkDeps(func(child, parent blueprint.Module) bool {
if a, ok := child.(Module); ok {
if IsInstallDepNeeded(ctx.OtherModuleDependencyTag(child)) {
result = append(result, a.FilesToInstall()...)
return true
}
}
return false
})
return result