Convert imageMutator to TransitionMutator
Replace android.imageMutator with a TransitionMutator Test: diff out/soong/Android-<product>.mk Bug: 319288033 Change-Id: Id6a50a2aacb32ecfadf7e45ada4956e85b55fef2
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
|
||||
package android
|
||||
|
||||
// ImageInterface is implemented by modules that need to be split by the imageMutator.
|
||||
// ImageInterface is implemented by modules that need to be split by the imageTransitionMutator.
|
||||
type ImageInterface interface {
|
||||
// ImageMutatorBegin is called before any other method in the ImageInterface.
|
||||
ImageMutatorBegin(ctx BaseModuleContext)
|
||||
@@ -81,18 +81,16 @@ const (
|
||||
DebugRamdiskVariation string = "debug_ramdisk"
|
||||
)
|
||||
|
||||
// imageMutator creates variants for modules that implement the ImageInterface that
|
||||
// imageTransitionMutator creates variants for modules that implement the ImageInterface that
|
||||
// allow them to build differently for each partition (recovery, core, vendor, etc.).
|
||||
func imageMutator(ctx BottomUpMutatorContext) {
|
||||
if ctx.Os() != Android {
|
||||
return
|
||||
}
|
||||
|
||||
if m, ok := ctx.Module().(ImageInterface); ok {
|
||||
m.ImageMutatorBegin(ctx)
|
||||
type imageTransitionMutator struct{}
|
||||
|
||||
func (imageTransitionMutator) Split(ctx BaseModuleContext) []string {
|
||||
var variations []string
|
||||
|
||||
if m, ok := ctx.Module().(ImageInterface); ctx.Os() == Android && ok {
|
||||
m.ImageMutatorBegin(ctx)
|
||||
|
||||
if m.CoreVariantNeeded(ctx) {
|
||||
variations = append(variations, CoreVariation)
|
||||
}
|
||||
@@ -117,15 +115,29 @@ func imageMutator(ctx BottomUpMutatorContext) {
|
||||
|
||||
extraVariations := m.ExtraImageVariations(ctx)
|
||||
variations = append(variations, extraVariations...)
|
||||
}
|
||||
|
||||
if len(variations) == 0 {
|
||||
return
|
||||
variations = append(variations, "")
|
||||
}
|
||||
|
||||
mod := ctx.CreateVariations(variations...)
|
||||
for i, v := range variations {
|
||||
mod[i].base().setImageVariation(v)
|
||||
mod[i].(ImageInterface).SetImageVariation(ctx, v)
|
||||
}
|
||||
return variations
|
||||
}
|
||||
|
||||
func (imageTransitionMutator) OutgoingTransition(ctx OutgoingTransitionContext, sourceVariation string) string {
|
||||
return sourceVariation
|
||||
}
|
||||
|
||||
func (imageTransitionMutator) IncomingTransition(ctx IncomingTransitionContext, incomingVariation string) string {
|
||||
if _, ok := ctx.Module().(ImageInterface); ctx.Os() != Android || !ok {
|
||||
return CoreVariation
|
||||
}
|
||||
return incomingVariation
|
||||
}
|
||||
|
||||
func (imageTransitionMutator) Mutate(ctx BottomUpMutatorContext, variation string) {
|
||||
ctx.Module().base().setImageVariation(variation)
|
||||
if m, ok := ctx.Module().(ImageInterface); ok {
|
||||
m.SetImageVariation(ctx, variation)
|
||||
}
|
||||
}
|
||||
|
@@ -149,7 +149,7 @@ var preArch = []RegisterMutatorFunc{
|
||||
|
||||
func registerArchMutator(ctx RegisterMutatorsContext) {
|
||||
ctx.BottomUpBlueprint("os", osMutator).Parallel()
|
||||
ctx.BottomUp("image", imageMutator).Parallel()
|
||||
ctx.Transition("image", &imageTransitionMutator{})
|
||||
ctx.BottomUpBlueprint("arch", archMutator).Parallel()
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user