diff --git a/android/paths.go b/android/paths.go index 93c5684f3..c88be89d3 100644 --- a/android/paths.go +++ b/android/paths.go @@ -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 { diff --git a/python/python.go b/python/python.go index 4444a70e6..0f5b7880e 100644 --- a/python/python.go +++ b/python/python.go @@ -444,11 +444,10 @@ func (p *Module) GenerateAndroidBuildActions(ctx android.ModuleContext) { var sharedLibs []string // if embedded launcher is enabled, we need to collect the shared library depenendencies of the // launcher - ctx.VisitDirectDeps(func(dep android.Module) { - if ctx.OtherModuleDependencyTag(dep) == launcherSharedLibTag { - sharedLibs = append(sharedLibs, ctx.OtherModuleName(dep)) - } - }) + for _, dep := range ctx.GetDirectDepsWithTag(launcherSharedLibTag) { + sharedLibs = append(sharedLibs, ctx.OtherModuleName(dep)) + } + p.installer.setAndroidMkSharedLibs(sharedLibs) // Install the par file from installSource