Support blueprint_go_binary in PathForModuleSrc
Allow blueprint_go_binary to be used as test data by supporting it in PathForModuleSrc. Also make python use GetDirectDepsWithTag instead of VisitDirectDeps so it doesn't fail on the dependency to a Blueprint (non-Android) module. Fixes: 186528269 Test: manual Change-Id: Ibc1d7caf7bf1fa5db805c3b885a95df4baee0ecf
This commit is contained in:
@@ -24,6 +24,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
"github.com/google/blueprint/bootstrap"
|
||||
"github.com/google/blueprint/pathtools"
|
||||
)
|
||||
|
||||
@@ -448,6 +449,12 @@ func getPathsFromModuleDep(ctx ModuleWithDepsPathContext, path, moduleName, tag
|
||||
return outputFiles, nil
|
||||
} else if tag != "" {
|
||||
return nil, fmt.Errorf("path dependency %q is not an output file producing module", path)
|
||||
} else if goBinary, ok := module.(bootstrap.GoBinaryTool); ok {
|
||||
if rel, err := filepath.Rel(PathForOutput(ctx).String(), goBinary.InstallPath()); err == nil {
|
||||
return Paths{PathForOutput(ctx, rel).WithoutRel()}, nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("cannot find output path for %q: %w", goBinary.InstallPath(), err)
|
||||
}
|
||||
} else if srcProducer, ok := module.(SourceFileProducer); ok {
|
||||
return srcProducer.Srcs(), nil
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user