Merge "Make all SdkMemberTypes support transitive member deps"
This commit is contained in:
commit
dbb490359a
|
@ -302,9 +302,7 @@ type SdkMember interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
// SdkMemberTypeDependencyTag is the interface that a tag must implement in order to allow the
|
// 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
|
// dependent module to be automatically added to the sdk.
|
||||||
// SdkMemberType of the depending module must return true from
|
|
||||||
// SdkMemberType.HasTransitiveSdkMembers.
|
|
||||||
type SdkMemberTypeDependencyTag interface {
|
type SdkMemberTypeDependencyTag interface {
|
||||||
blueprint.DependencyTag
|
blueprint.DependencyTag
|
||||||
|
|
||||||
|
@ -385,13 +383,6 @@ type SdkMemberType interface {
|
||||||
// True if the member type supports the sdk/sdk_snapshot, false otherwise.
|
// True if the member type supports the sdk/sdk_snapshot, false otherwise.
|
||||||
UsableWithSdkAndSdkSnapshot() bool
|
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
|
// 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,
|
// applicable to modules where HostSupported() is true. If this is true,
|
||||||
// snapshots will list each host OS variant explicitly and disable all other
|
// snapshots will list each host OS variant explicitly and disable all other
|
||||||
|
@ -457,10 +448,9 @@ type SdkMemberType interface {
|
||||||
|
|
||||||
// Base type for SdkMemberType implementations.
|
// Base type for SdkMemberType implementations.
|
||||||
type SdkMemberTypeBase struct {
|
type SdkMemberTypeBase struct {
|
||||||
PropertyName string
|
PropertyName string
|
||||||
SupportsSdk bool
|
SupportsSdk bool
|
||||||
TransitiveSdkMembers bool
|
HostOsDependent bool
|
||||||
HostOsDependent bool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *SdkMemberTypeBase) SdkPropertyName() string {
|
func (b *SdkMemberTypeBase) SdkPropertyName() string {
|
||||||
|
@ -471,10 +461,6 @@ func (b *SdkMemberTypeBase) UsableWithSdkAndSdkSnapshot() bool {
|
||||||
return b.SupportsSdk
|
return b.SupportsSdk
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *SdkMemberTypeBase) HasTransitiveSdkMembers() bool {
|
|
||||||
return b.TransitiveSdkMembers
|
|
||||||
}
|
|
||||||
|
|
||||||
func (b *SdkMemberTypeBase) IsHostOsDependent() bool {
|
func (b *SdkMemberTypeBase) IsHostOsDependent() bool {
|
||||||
return b.HostOsDependent
|
return b.HostOsDependent
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,9 +32,8 @@ func init() {
|
||||||
|
|
||||||
android.RegisterSdkMemberType(&bootclasspathFragmentMemberType{
|
android.RegisterSdkMemberType(&bootclasspathFragmentMemberType{
|
||||||
SdkMemberTypeBase: android.SdkMemberTypeBase{
|
SdkMemberTypeBase: android.SdkMemberTypeBase{
|
||||||
PropertyName: "bootclasspath_fragments",
|
PropertyName: "bootclasspath_fragments",
|
||||||
SupportsSdk: true,
|
SupportsSdk: true,
|
||||||
TransitiveSdkMembers: true,
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,9 +35,8 @@ func init() {
|
||||||
// Register sdk member types.
|
// Register sdk member types.
|
||||||
android.RegisterSdkMemberType(&systemModulesSdkMemberType{
|
android.RegisterSdkMemberType(&systemModulesSdkMemberType{
|
||||||
android.SdkMemberTypeBase{
|
android.SdkMemberTypeBase{
|
||||||
PropertyName: "java_system_modules",
|
PropertyName: "java_system_modules",
|
||||||
SupportsSdk: true,
|
SupportsSdk: true,
|
||||||
TransitiveSdkMembers: true,
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,9 +133,9 @@ func (s *sdk) collectMembers(ctx android.ModuleContext) {
|
||||||
export := memberTag.ExportMember()
|
export := memberTag.ExportMember()
|
||||||
s.memberVariantDeps = append(s.memberVariantDeps, sdkMemberVariantDep{s, memberType, child.(android.SdkAware), export})
|
s.memberVariantDeps = append(s.memberVariantDeps, sdkMemberVariantDep{s, memberType, child.(android.SdkAware), export})
|
||||||
|
|
||||||
// If the member type supports transitive sdk members then recurse down into
|
// Recurse down into the member's dependencies as it may have dependencies that need to be
|
||||||
// its dependencies, otherwise exit traversal.
|
// automatically added to the sdk.
|
||||||
return memberType.HasTransitiveSdkMembers()
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
|
Loading…
Reference in New Issue