Merge "Make all SdkMemberTypes support transitive member deps" am: dbb490359a
am: e1fab6a30b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1699188 Change-Id: Ia82883e6085db6f19ed5c5307b78e72959cd4da2
This commit is contained in:
commit
8d108bac17
|
@ -302,9 +302,7 @@ type SdkMember interface {
|
|||
}
|
||||
|
||||
// SdkMemberTypeDependencyTag is the interface that a tag must implement in order to allow the
|
||||
// dependent module to be automatically added to the sdk. In order for this to work the
|
||||
// SdkMemberType of the depending module must return true from
|
||||
// SdkMemberType.HasTransitiveSdkMembers.
|
||||
// dependent module to be automatically added to the sdk.
|
||||
type SdkMemberTypeDependencyTag interface {
|
||||
blueprint.DependencyTag
|
||||
|
||||
|
@ -385,13 +383,6 @@ type SdkMemberType interface {
|
|||
// True if the member type supports the sdk/sdk_snapshot, false otherwise.
|
||||
UsableWithSdkAndSdkSnapshot() bool
|
||||
|
||||
// Return true if modules of this type can have dependencies which should be
|
||||
// treated as if they are sdk members.
|
||||
//
|
||||
// Any dependency that is to be treated as a member of the sdk needs to implement
|
||||
// SdkAware and be added with an SdkMemberTypeDependencyTag tag.
|
||||
HasTransitiveSdkMembers() bool
|
||||
|
||||
// Return true if prebuilt host artifacts may be specific to the host OS. Only
|
||||
// applicable to modules where HostSupported() is true. If this is true,
|
||||
// snapshots will list each host OS variant explicitly and disable all other
|
||||
|
@ -457,10 +448,9 @@ type SdkMemberType interface {
|
|||
|
||||
// Base type for SdkMemberType implementations.
|
||||
type SdkMemberTypeBase struct {
|
||||
PropertyName string
|
||||
SupportsSdk bool
|
||||
TransitiveSdkMembers bool
|
||||
HostOsDependent bool
|
||||
PropertyName string
|
||||
SupportsSdk bool
|
||||
HostOsDependent bool
|
||||
}
|
||||
|
||||
func (b *SdkMemberTypeBase) SdkPropertyName() string {
|
||||
|
@ -471,10 +461,6 @@ func (b *SdkMemberTypeBase) UsableWithSdkAndSdkSnapshot() bool {
|
|||
return b.SupportsSdk
|
||||
}
|
||||
|
||||
func (b *SdkMemberTypeBase) HasTransitiveSdkMembers() bool {
|
||||
return b.TransitiveSdkMembers
|
||||
}
|
||||
|
||||
func (b *SdkMemberTypeBase) IsHostOsDependent() bool {
|
||||
return b.HostOsDependent
|
||||
}
|
||||
|
|
|
@ -32,9 +32,8 @@ func init() {
|
|||
|
||||
android.RegisterSdkMemberType(&bootclasspathFragmentMemberType{
|
||||
SdkMemberTypeBase: android.SdkMemberTypeBase{
|
||||
PropertyName: "bootclasspath_fragments",
|
||||
SupportsSdk: true,
|
||||
TransitiveSdkMembers: true,
|
||||
PropertyName: "bootclasspath_fragments",
|
||||
SupportsSdk: true,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -35,9 +35,8 @@ func init() {
|
|||
// Register sdk member types.
|
||||
android.RegisterSdkMemberType(&systemModulesSdkMemberType{
|
||||
android.SdkMemberTypeBase{
|
||||
PropertyName: "java_system_modules",
|
||||
SupportsSdk: true,
|
||||
TransitiveSdkMembers: true,
|
||||
PropertyName: "java_system_modules",
|
||||
SupportsSdk: true,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -133,9 +133,9 @@ func (s *sdk) collectMembers(ctx android.ModuleContext) {
|
|||
export := memberTag.ExportMember()
|
||||
s.memberVariantDeps = append(s.memberVariantDeps, sdkMemberVariantDep{s, memberType, child.(android.SdkAware), export})
|
||||
|
||||
// If the member type supports transitive sdk members then recurse down into
|
||||
// its dependencies, otherwise exit traversal.
|
||||
return memberType.HasTransitiveSdkMembers()
|
||||
// Recurse down into the member's dependencies as it may have dependencies that need to be
|
||||
// automatically added to the sdk.
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
|
|
Loading…
Reference in New Issue