Ensure that sdk/module_exports depends on source members

Previously, preferring a prebuilt of an sdk/module_exports's member
would cause the sdk/module_exports to depend on the prebuilt instead
of the source and cause problems with the build.

This chance prevents the dependency from an sdk/module_exports to its
members from being replaced with prebuilts.

Bug: 160785918
Test: m nothing
Change-Id: Iee4bcd438c11929e30fb5766701b05a0e89956d9
This commit is contained in:
Paul Duffin
2020-07-09 17:32:57 +01:00
parent 2c79c871d9
commit cee7e66b07
4 changed files with 84 additions and 21 deletions

View File

@@ -266,6 +266,9 @@ type SdkMemberTypeDependencyTag interface {
SdkMemberType() SdkMemberType
}
var _ SdkMemberTypeDependencyTag = (*sdkMemberDependencyTag)(nil)
var _ ReplaceSourceWithPrebuilt = (*sdkMemberDependencyTag)(nil)
type sdkMemberDependencyTag struct {
blueprint.BaseDependencyTag
memberType SdkMemberType
@@ -275,6 +278,12 @@ func (t *sdkMemberDependencyTag) SdkMemberType() SdkMemberType {
return t.memberType
}
// Prevent dependencies from the sdk/module_exports onto their members from being
// replaced with a preferred prebuilt.
func (t *sdkMemberDependencyTag) ReplaceSourceWithPrebuilt() bool {
return false
}
func DependencyTagForSdkMemberType(memberType SdkMemberType) SdkMemberTypeDependencyTag {
return &sdkMemberDependencyTag{memberType: memberType}
}