aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Duffin <paulduffin@google.com>2023-01-07 17:13:27 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2023-01-07 17:13:27 +0000
commit939673bf6b81ae1af7f1e6985a72e24b06aa46ab (patch)
treeece997dcc4b6083f527629abc7eed6720a3a6a39
parent351ca9aa8178b229e95aec888ad67a287278c379 (diff)
parent2156abe2528118c6fbebcf5b4bb40df00fcc11e7 (diff)
downloadsoong-939673bf6b81ae1af7f1e6985a72e24b06aa46ab.tar.gz
Merge "Remove memberMutator and use DepsMutator instead"
-rw-r--r--sdk/sdk.go62
1 files changed, 27 insertions, 35 deletions
diff --git a/sdk/sdk.go b/sdk/sdk.go
index 66a1b54ae..4d4a2a2c4 100644
--- a/sdk/sdk.go
+++ b/sdk/sdk.go
@@ -37,7 +37,6 @@ func init() {
func registerSdkBuildComponents(ctx android.RegistrationContext) {
ctx.RegisterModuleType("sdk", SdkModuleFactory)
ctx.RegisterModuleType("sdk_snapshot", SnapshotModuleFactory)
- ctx.PreDepsMutators(RegisterPreDepsMutators)
}
type sdk struct {
@@ -274,13 +273,6 @@ func (d *dependencyContext) RequiresTrait(name string, trait android.SdkMemberTr
var _ android.SdkDependencyContext = (*dependencyContext)(nil)
-// RegisterPreDepsMutators registers pre-deps mutators to support modules implementing SdkAware
-// interface and the sdk module type. This function has been made public to be called by tests
-// outside of the sdk package
-func RegisterPreDepsMutators(ctx android.RegisterMutatorsContext) {
- ctx.BottomUp("SdkMember", memberMutator).Parallel()
-}
-
type dependencyTag struct {
blueprint.BaseDependencyTag
}
@@ -290,35 +282,35 @@ func (t dependencyTag) ExcludeFromApexContents() {}
var _ android.ExcludeFromApexContentsTag = dependencyTag{}
-// Step 1: create dependencies from an SDK module to its members.
-func memberMutator(mctx android.BottomUpMutatorContext) {
- if s, ok := mctx.Module().(*sdk); ok {
- // Add dependencies from enabled and non CommonOS variants to the sdk member variants.
- if s.Enabled() && !s.IsCommonOSVariant() {
- ctx := s.newDependencyContext(mctx)
- for _, memberListProperty := range s.memberTypeListProperties() {
- if memberListProperty.getter == nil {
- continue
- }
- names := memberListProperty.getter(s.dynamicMemberTypeListProperties)
- if len(names) > 0 {
- memberType := memberListProperty.memberType
-
- // Verify that the member type supports the specified traits.
- supportedTraits := memberType.SupportedTraits()
- for _, name := range names {
- requiredTraits := ctx.RequiredTraits(name)
- unsupportedTraits := requiredTraits.Subtract(supportedTraits)
- if !unsupportedTraits.Empty() {
- ctx.ModuleErrorf("sdk member %q has traits %s that are unsupported by its member type %q", name, unsupportedTraits, memberType.SdkPropertyName())
- }
- }
-
- // Add dependencies using the appropriate tag.
- tag := memberListProperty.dependencyTag
- memberType.AddDependencies(ctx, tag, names)
+func (s *sdk) DepsMutator(mctx android.BottomUpMutatorContext) {
+ // Add dependencies from non CommonOS variants to the sdk member variants.
+ if s.IsCommonOSVariant() {
+ return
+ }
+
+ ctx := s.newDependencyContext(mctx)
+ for _, memberListProperty := range s.memberTypeListProperties() {
+ if memberListProperty.getter == nil {
+ continue
+ }
+ names := memberListProperty.getter(s.dynamicMemberTypeListProperties)
+ if len(names) > 0 {
+ memberType := memberListProperty.memberType
+
+ // Verify that the member type supports the specified traits.
+ supportedTraits := memberType.SupportedTraits()
+ for _, name := range names {
+ requiredTraits := ctx.RequiredTraits(name)
+ unsupportedTraits := requiredTraits.Subtract(supportedTraits)
+ if !unsupportedTraits.Empty() {
+ ctx.ModuleErrorf("sdk member %q has traits %s that are unsupported by its member type %q",
+ name, unsupportedTraits, memberType.SdkPropertyName())
}
}
+
+ // Add dependencies using the appropriate tag.
+ tag := memberListProperty.dependencyTag
+ memberType.AddDependencies(ctx, tag, names)
}
}
}