diff options
Diffstat (limited to 'sdk/update.go')
-rw-r--r-- | sdk/update.go | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/sdk/update.go b/sdk/update.go index 8b75da27a..43ec92662 100644 --- a/sdk/update.go +++ b/sdk/update.go @@ -130,7 +130,8 @@ func (s *sdk) collectMembers(ctx android.ModuleContext) { // Keep track of which multilib variants are used by the sdk. s.multilibUsages = s.multilibUsages.addArchType(child.Target().Arch.ArchType) - s.memberVariantDeps = append(s.memberVariantDeps, sdkMemberVariantDep{memberType, child.(android.SdkAware)}) + export := memberTag.ExportMember() + s.memberVariantDeps = append(s.memberVariantDeps, sdkMemberVariantDep{memberType, child.(android.SdkAware), export}) // If the member type supports transitive sdk members then recurse down into // its dependencies, otherwise exit traversal. @@ -226,12 +227,12 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) andro // Record the names of all the members, both explicitly specified and implicitly // included. for _, memberVariantDep := range sdkVariant.memberVariantDeps { - allMembersByName[memberVariantDep.variant.Name()] = struct{}{} - } + name := memberVariantDep.variant.Name() + allMembersByName[name] = struct{}{} - // Merge the exported member sets from all sdk variants. - for key, _ := range sdkVariant.getExportedMembers() { - exportedMembersByName[key] = struct{}{} + if memberVariantDep.export { + exportedMembersByName[name] = struct{}{} + } } } @@ -944,6 +945,7 @@ func addSdkMemberPropertiesToSet(ctx *memberContext, memberProperties android.Sd type sdkMemberVariantDep struct { memberType android.SdkMemberType variant android.SdkAware + export bool } var _ android.SdkMember = (*sdkMember)(nil) |