Prune any empty property sets from the modules before transforming

Ensures that the generated prebuilt modules do not contain empty
property sets.

Bug: 148933848
Test: m nothing
Change-Id: I99d5da1c4e3a72836e81e021ef043df53888e66b
This commit is contained in:
Paul Duffin 2020-02-21 16:29:35 +00:00
parent 64f54b0ae8
commit a78f3a7360
1 changed files with 17 additions and 0 deletions

View File

@ -241,6 +241,9 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext) android.OutputPath {
unversionedTransformer := unversionedTransformation{builder: builder}
for _, unversioned := range builder.prebuiltOrder {
// Prune any empty property sets.
unversioned = unversioned.transform(pruneEmptySetTransformer{})
// Copy the unversioned module so it can be modified to make it versioned.
versioned := unversioned.deepCopy()
@ -389,6 +392,20 @@ func (t unversionedTransformation) transformProperty(name string, value interfac
}
}
type pruneEmptySetTransformer struct {
identityTransformation
}
var _ bpTransformer = (*pruneEmptySetTransformer)(nil)
func (t pruneEmptySetTransformer) transformPropertySetAfterContents(name string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
if len(propertySet.properties) == 0 {
return nil, nil
} else {
return propertySet, tag
}
}
func generateBpContents(contents *generatedContents, bpFile *bpFile) {
contents.Printfln("// This is auto-generated. DO NOT EDIT.")
for _, bpModule := range bpFile.order {