Merge "Make sdkMemberDependencyTag usable outside sdk package"
This commit is contained in:
@@ -218,6 +218,25 @@ type SdkMember interface {
|
|||||||
Variants() []SdkAware
|
Variants() []SdkAware
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type SdkMemberTypeDependencyTag interface {
|
||||||
|
blueprint.DependencyTag
|
||||||
|
|
||||||
|
SdkMemberType() SdkMemberType
|
||||||
|
}
|
||||||
|
|
||||||
|
type sdkMemberDependencyTag struct {
|
||||||
|
blueprint.BaseDependencyTag
|
||||||
|
memberType SdkMemberType
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *sdkMemberDependencyTag) SdkMemberType() SdkMemberType {
|
||||||
|
return t.memberType
|
||||||
|
}
|
||||||
|
|
||||||
|
func DependencyTagForSdkMemberType(memberType SdkMemberType) SdkMemberTypeDependencyTag {
|
||||||
|
return &sdkMemberDependencyTag{memberType: memberType}
|
||||||
|
}
|
||||||
|
|
||||||
// Interface that must be implemented for every type that can be a member of an
|
// Interface that must be implemented for every type that can be a member of an
|
||||||
// sdk.
|
// sdk.
|
||||||
//
|
//
|
||||||
|
11
sdk/sdk.go
11
sdk/sdk.go
@@ -65,11 +65,6 @@ type sdkProperties struct {
|
|||||||
Module_exports bool `blueprint:"mutated"`
|
Module_exports bool `blueprint:"mutated"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type sdkMemberDependencyTag struct {
|
|
||||||
blueprint.BaseDependencyTag
|
|
||||||
memberType android.SdkMemberType
|
|
||||||
}
|
|
||||||
|
|
||||||
// Contains information about the sdk properties that list sdk members, e.g.
|
// Contains information about the sdk properties that list sdk members, e.g.
|
||||||
// Java_header_libs.
|
// Java_header_libs.
|
||||||
type sdkMemberListProperty struct {
|
type sdkMemberListProperty struct {
|
||||||
@@ -81,7 +76,7 @@ type sdkMemberListProperty struct {
|
|||||||
|
|
||||||
// the dependency tag used for items in this list that can be used to determine the memberType
|
// the dependency tag used for items in this list that can be used to determine the memberType
|
||||||
// for a resolved dependency.
|
// for a resolved dependency.
|
||||||
dependencyTag *sdkMemberDependencyTag
|
dependencyTag android.SdkMemberTypeDependencyTag
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *sdkMemberListProperty) propertyName() string {
|
func (p *sdkMemberListProperty) propertyName() string {
|
||||||
@@ -167,9 +162,7 @@ func createDynamicSdkMemberTypes(sdkMemberTypes []android.SdkMemberType) *dynami
|
|||||||
|
|
||||||
memberType: memberType,
|
memberType: memberType,
|
||||||
|
|
||||||
dependencyTag: &sdkMemberDependencyTag{
|
dependencyTag: android.DependencyTagForSdkMemberType(memberType),
|
||||||
memberType: memberType,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
listProperties = append(listProperties, memberListProperty)
|
listProperties = append(listProperties, memberListProperty)
|
||||||
|
@@ -113,8 +113,8 @@ func (s *sdk) collectMembers(ctx android.ModuleContext) []*sdkMember {
|
|||||||
|
|
||||||
ctx.VisitDirectDeps(func(m android.Module) {
|
ctx.VisitDirectDeps(func(m android.Module) {
|
||||||
tag := ctx.OtherModuleDependencyTag(m)
|
tag := ctx.OtherModuleDependencyTag(m)
|
||||||
if memberTag, ok := tag.(*sdkMemberDependencyTag); ok {
|
if memberTag, ok := tag.(android.SdkMemberTypeDependencyTag); ok {
|
||||||
memberType := memberTag.memberType
|
memberType := memberTag.SdkMemberType()
|
||||||
|
|
||||||
// Make sure that the resolved module is allowed in the member list property.
|
// Make sure that the resolved module is allowed in the member list property.
|
||||||
if !memberType.IsInstance(m) {
|
if !memberType.IsInstance(m) {
|
||||||
|
Reference in New Issue
Block a user