Only update DebugMutator and DebugVariation for non-empty transition variations
Non-transition mutators that don't create a variant for a given module cause no change to DebugMutator and DebugVariation. TransitionMutators don't have a concept of skipping a module, so Mutate is called on every module. This causes extra entries in DebugMutator and DebugVariation, which will confuse error message around missing variations, and require updating variant strings in some tests. Skip updating DebugMutator and DebugVariation for empty transition mutator variations. This isn't entirely correct, but transition mutators don't currently have a concept of an unaffected module. Bug: 319288033 Test: all soong tests pass Flag: NONE Change-Id: Ia4e659b1e90ffe4320074c9b49528d00fa302c6a
This commit is contained in:
@@ -594,11 +594,16 @@ func (a *androidTransitionMutator) IncomingTransition(bpctx blueprint.IncomingTr
|
||||
|
||||
func (a *androidTransitionMutator) Mutate(ctx blueprint.BottomUpMutatorContext, variation string) {
|
||||
if am, ok := ctx.Module().(Module); ok {
|
||||
if variation != "" {
|
||||
// TODO: this should really be checking whether the TransitionMutator affected this module, not
|
||||
// the empty variant, but TransitionMutator has no concept of skipping a module.
|
||||
base := am.base()
|
||||
base.commonProperties.DebugMutators = append(base.commonProperties.DebugMutators, a.name)
|
||||
base.commonProperties.DebugVariations = append(base.commonProperties.DebugVariations, variation)
|
||||
}
|
||||
|
||||
mctx := bottomUpMutatorContextFactory(ctx, am, a.finalPhase)
|
||||
defer bottomUpMutatorContextPool.Put(mctx)
|
||||
base := am.base()
|
||||
base.commonProperties.DebugMutators = append(base.commonProperties.DebugMutators, a.name)
|
||||
base.commonProperties.DebugVariations = append(base.commonProperties.DebugVariations, variation)
|
||||
a.mutator.Mutate(mctx, variation)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user