diff options
Diffstat (limited to 'android/mutator.go')
| -rw-r--r-- | android/mutator.go | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/android/mutator.go b/android/mutator.go index 4e55609ae..4dacb8df8 100644 --- a/android/mutator.go +++ b/android/mutator.go @@ -709,24 +709,29 @@ func (t *topDownMutatorContext) CreateBazelTargetModuleWithRestrictions( // module and returns it as a list of keyed tags. func ApexAvailableTags(mod Module) bazel.StringListAttribute { attr := bazel.StringListAttribute{} - tags := []string{} // Transform specific attributes into tags. if am, ok := mod.(ApexModule); ok { // TODO(b/218841706): hidl_interface has the apex_available prop, but it's // defined directly as a prop and not via ApexModule, so this doesn't // pick those props up. - // TODO(b/260694842): This does not pick up aidl_interface.backend.ndk.apex_available. - for _, a := range am.apexModuleBase().ApexAvailable() { - tags = append(tags, "apex_available="+a) - } - } - if len(tags) > 0 { - // This avoids creating a tags attr with an empty list if there are no tags. - attr.Value = tags + attr.Value = ConvertApexAvailableToTags(am.apexModuleBase().ApexAvailable()) } return attr } +func ConvertApexAvailableToTags(apexAvailable []string) []string { + if len(apexAvailable) == 0 { + // We need nil specifically to make bp2build not add the tags property at all, + // instead of adding it with an empty list + return nil + } + result := make([]string, 0, len(apexAvailable)) + for _, a := range apexAvailable { + result = append(result, "apex_available="+a) + } + return result +} + func (t *topDownMutatorContext) createBazelTargetModule( bazelProps bazel.BazelTargetModuleProperties, commonAttrs CommonAttributes, |