Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 67edce7a authored by Paul Duffin's avatar Paul Duffin Committed by Gerrit Code Review
Browse files

Merge "Make sdkMemberDependencyTag usable outside sdk package"

parents b8e5c68f f8539922
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -218,6 +218,25 @@ type SdkMember interface {
	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
// sdk.
//
+2 −9
Original line number Diff line number Diff line
@@ -65,11 +65,6 @@ type sdkProperties struct {
	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.
// Java_header_libs.
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
	// for a resolved dependency.
	dependencyTag *sdkMemberDependencyTag
	dependencyTag android.SdkMemberTypeDependencyTag
}

func (p *sdkMemberListProperty) propertyName() string {
@@ -167,9 +162,7 @@ func createDynamicSdkMemberTypes(sdkMemberTypes []android.SdkMemberType) *dynami

			memberType: memberType,

			dependencyTag: &sdkMemberDependencyTag{
				memberType: memberType,
			},
			dependencyTag: android.DependencyTagForSdkMemberType(memberType),
		}

		listProperties = append(listProperties, memberListProperty)
+2 −2
Original line number Diff line number Diff line
@@ -113,8 +113,8 @@ func (s *sdk) collectMembers(ctx android.ModuleContext) []*sdkMember {

	ctx.VisitDirectDeps(func(m android.Module) {
		tag := ctx.OtherModuleDependencyTag(m)
		if memberTag, ok := tag.(*sdkMemberDependencyTag); ok {
			memberType := memberTag.memberType
		if memberTag, ok := tag.(android.SdkMemberTypeDependencyTag); ok {
			memberType := memberTag.SdkMemberType()

			// Make sure that the resolved module is allowed in the member list property.
			if !memberType.IsInstance(m) {