Allow exporting of sdk members to be done per tag

Previously, every module added to an sdk directly through one of the
SdkMemberType specific properties, e.g. java_libs, was exported and
every module added automatically via a transitive dependencies was not
exported. This change allows that behavior to be customized per tag.

Bug: 186290299
Test: m art-module-sdk
      - verify that this change does not affect its contents.
Change-Id: I563b5bcd823e61c23cdb706cfcbb13337963d550
This commit is contained in:
Paul Duffin
2021-04-23 21:20:20 +01:00
parent 2d1bb89fe3
commit a720811c38
4 changed files with 44 additions and 27 deletions

View File

@@ -193,7 +193,8 @@ func createDynamicSdkMemberTypes(sdkMemberTypes []android.SdkMemberType) *dynami
memberType: memberType,
dependencyTag: android.DependencyTagForSdkMemberType(memberType),
// Dependencies added directly from member properties are always exported.
dependencyTag: android.DependencyTagForSdkMemberType(memberType, true),
}
listProperties = append(listProperties, memberListProperty)
@@ -255,22 +256,6 @@ func (s *sdk) memberListProperties() []*sdkMemberListProperty {
return s.dynamicSdkMemberTypes.memberListProperties
}
func (s *sdk) getExportedMembers() map[string]struct{} {
// Collect all the exported members.
exportedMembers := make(map[string]struct{})
for _, memberListProperty := range s.memberListProperties() {
names := memberListProperty.getter(s.dynamicMemberTypeListProperties)
// Every member specified explicitly in the properties is exported by the sdk.
for _, name := range names {
exportedMembers[name] = struct{}{}
}
}
return exportedMembers
}
func (s *sdk) snapshot() bool {
return s.properties.Snapshot
}