diff options
author | Paul Duffin <paulduffin@google.com> | 2023-01-07 17:13:27 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2023-01-07 17:13:27 +0000 |
commit | 939673bf6b81ae1af7f1e6985a72e24b06aa46ab (patch) | |
tree | ece997dcc4b6083f527629abc7eed6720a3a6a39 | |
parent | 351ca9aa8178b229e95aec888ad67a287278c379 (diff) | |
parent | 2156abe2528118c6fbebcf5b4bb40df00fcc11e7 (diff) | |
download | soong-939673bf6b81ae1af7f1e6985a72e24b06aa46ab.tar.gz |
Merge "Remove memberMutator and use DepsMutator instead"
-rw-r--r-- | sdk/sdk.go | 62 |
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) } } } |