summaryrefslogtreecommitdiff
path: root/sdk/update.go
diff options
context:
space:
mode:
Diffstat (limited to 'sdk/update.go')
-rw-r--r--sdk/update.go17
1 files changed, 16 insertions, 1 deletions
diff --git a/sdk/update.go b/sdk/update.go
index 89a5c9269..e889f3a36 100644
--- a/sdk/update.go
+++ b/sdk/update.go
@@ -393,10 +393,18 @@ be unnecessary as every module in the sdk already has its own licenses property.
members := s.groupMemberVariantsByMemberThenType(ctx, memberVariantDeps)
// Create the prebuilt modules for each of the member modules.
+ traits := s.gatherTraits()
for _, member := range members {
memberType := member.memberType
- memberCtx := &memberContext{ctx, builder, memberType, member.name}
+ name := member.name
+ requiredTraits := traits[name]
+ if requiredTraits == nil {
+ requiredTraits = android.EmptySdkMemberTraitSet()
+ }
+
+ // Create the snapshot for the member.
+ memberCtx := &memberContext{ctx, builder, memberType, name, requiredTraits}
prebuiltModule := memberType.AddPrebuiltModule(memberCtx, member)
s.createMemberSnapshot(memberCtx, member, prebuiltModule.(*bpModule))
@@ -1651,6 +1659,9 @@ type memberContext struct {
builder *snapshotBuilder
memberType android.SdkMemberType
name string
+
+ // The set of traits required of this member.
+ requiredTraits android.SdkMemberTraitSet
}
func (m *memberContext) SdkModuleContext() android.ModuleContext {
@@ -1669,6 +1680,10 @@ func (m *memberContext) Name() string {
return m.name
}
+func (m *memberContext) RequiresTrait(trait android.SdkMemberTrait) bool {
+ return m.requiredTraits.Contains(trait)
+}
+
func (s *sdk) createMemberSnapshot(ctx *memberContext, member *sdkMember, bpModule *bpModule) {
memberType := member.memberType