From 5bde22ff159260a3f39ac53d0e2bbda1fe476dd8 Mon Sep 17 00:00:00 2001 From: Liz Kammer Date: Mon, 19 Apr 2021 14:04:14 -0400 Subject: [PATCH] Incorporate filegroups into mixed builds. Test: bp2build generate & sync; mixed build droid Bug: 185812083 Change-Id: I09d4203ec52acaacb11f371a6ae03b12214938f7 --- android/filegroup.go | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/android/filegroup.go b/android/filegroup.go index 2f13ab891..fc6850eb5 100644 --- a/android/filegroup.go +++ b/android/filegroup.go @@ -105,9 +105,34 @@ func FileGroupFactory() Module { return module } -func (fg *fileGroup) GenerateAndroidBuildActions(ctx ModuleContext) { - fg.srcs = PathsForModuleSrcExcludes(ctx, fg.properties.Srcs, fg.properties.Exclude_srcs) +func (fg *fileGroup) generateBazelBuildActions(ctx ModuleContext) bool { + if !fg.MixedBuildsEnabled(ctx) { + return false + } + bazelCtx := ctx.Config().BazelContext + filePaths, ok := bazelCtx.GetOutputFiles(fg.GetBazelLabel(ctx, fg), ctx.Arch().ArchType) + if !ok { + return false + } + + bazelOuts := make(Paths, 0, len(filePaths)) + for _, p := range filePaths { + src := PathForBazelOut(ctx, p) + bazelOuts = append(bazelOuts, src) + } + + fg.srcs = bazelOuts + + return true +} + +func (fg *fileGroup) GenerateAndroidBuildActions(ctx ModuleContext) { + if fg.generateBazelBuildActions(ctx) { + return + } + + fg.srcs = PathsForModuleSrcExcludes(ctx, fg.properties.Srcs, fg.properties.Exclude_srcs) if fg.properties.Path != nil { fg.srcs = PathsWithModuleSrcSubDir(ctx, fg.srcs, String(fg.properties.Path)) }