Merge "Stop exporting systemserverclasspath_fragment when targeting S" into tm-dev am: 0147aca453

Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/19135262

Change-Id: I9039499819e938deb9d13557bdee26fc56bd6f4c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Paul Duffin
2022-07-07 17:21:58 +00:00
committed by Automerger Merge Worker
5 changed files with 110 additions and 9 deletions

View File

@@ -254,7 +254,7 @@ func (s *sdk) collectMembers(ctx android.ModuleContext) {
// Finally, the member type slices are concatenated together to form a single slice. The order in
// which they are concatenated is the order in which the member types were registered in the
// android.SdkMemberTypesRegistry.
func (s *sdk) groupMemberVariantsByMemberThenType(ctx android.ModuleContext, memberVariantDeps []sdkMemberVariantDep) []*sdkMember {
func (s *sdk) groupMemberVariantsByMemberThenType(ctx android.ModuleContext, targetBuildRelease *buildRelease, memberVariantDeps []sdkMemberVariantDep) []*sdkMember {
byType := make(map[android.SdkMemberType][]*sdkMember)
byName := make(map[string]*sdkMember)
@@ -277,13 +277,39 @@ func (s *sdk) groupMemberVariantsByMemberThenType(ctx android.ModuleContext, mem
var members []*sdkMember
for _, memberListProperty := range s.memberTypeListProperties() {
membersOfType := byType[memberListProperty.memberType]
memberType := memberListProperty.memberType
if !isMemberTypeSupportedByTargetBuildRelease(memberType, targetBuildRelease) {
continue
}
membersOfType := byType[memberType]
members = append(members, membersOfType...)
}
return members
}
// isMemberTypeSupportedByTargetBuildRelease returns true if the member type is supported by the
// target build release.
func isMemberTypeSupportedByTargetBuildRelease(memberType android.SdkMemberType, targetBuildRelease *buildRelease) bool {
supportedByTargetBuildRelease := true
supportedBuildReleases := memberType.SupportedBuildReleases()
if supportedBuildReleases == "" {
supportedBuildReleases = "S+"
}
set, err := parseBuildReleaseSet(supportedBuildReleases)
if err != nil {
panic(fmt.Errorf("member type %s has invalid supported build releases %q: %s",
memberType.SdkPropertyName(), supportedBuildReleases, err))
}
if !set.contains(targetBuildRelease) {
supportedByTargetBuildRelease = false
}
return supportedByTargetBuildRelease
}
func appendUniqueVariants(variants []android.SdkAware, newVariant android.SdkAware) []android.SdkAware {
for _, v := range variants {
if v == newVariant {
@@ -428,7 +454,7 @@ be unnecessary as every module in the sdk already has its own licenses property.
// Group the variants for each member module together and then group the members of each member
// type together.
members := s.groupMemberVariantsByMemberThenType(ctx, memberVariantDeps)
members := s.groupMemberVariantsByMemberThenType(ctx, targetBuildRelease, memberVariantDeps)
// Create the prebuilt modules for each of the member modules.
traits := s.gatherTraits()
@@ -925,6 +951,9 @@ func (s *sdk) addSnapshotPropertiesToPropertySet(builder *snapshotBuilder, prope
if memberListProperty.getter == nil {
continue
}
if !isMemberTypeSupportedByTargetBuildRelease(memberListProperty.memberType, builder.targetBuildRelease) {
continue
}
names := memberListProperty.getter(dynamicMemberTypeListProperties)
if len(names) > 0 {
propertySet.AddProperty(memberListProperty.propertyName(), builder.versionedSdkMemberNames(names, false))