Reland: Use depsets for transitive manifests and assets

Instead of rolling assets and manifests up through each static lib,
provide them as a DepSet.  This will help with the next patch, which
needs to pass all the transitive manifests and R.txt files together.

This relands Id8b3aa2bed3771e82ab6bde192c9b43baa38b54c with a fix
to include additional manifests from dependencies in the final
manifest merger.

Test: app_test.go
Test: TestManifestMerger
Change-Id: Ied0a6cfee2f18e87188db145b9411d4a903ab6c9
This commit is contained in:
Colin Cross
2023-07-14 17:23:41 +00:00
parent 02bccdf37c
commit ab8d138d42
4 changed files with 190 additions and 116 deletions

View File

@@ -368,8 +368,13 @@ func (app *AndroidApp) AndroidMkEntries() []android.AndroidMkEntries {
filterRRO := func(filter overlayType) android.Paths {
var paths android.Paths
for _, d := range app.rroDirs {
seen := make(map[android.Path]bool)
for _, d := range app.rroDirsDepSet.ToList() {
if d.overlayType == filter {
if seen[d.path] {
continue
}
seen[d.path] = true
paths = append(paths, d.path)
}
}