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:
Jihoon Kang
2024-07-31 18:37:49 +00:00
parent 0cdc351829
commit 5402bbd8d7
2 changed files with 30 additions and 18 deletions

View File

@@ -14,7 +14,7 @@
package android 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 { type ImageInterface interface {
// ImageMutatorBegin is called before any other method in the ImageInterface. // ImageMutatorBegin is called before any other method in the ImageInterface.
ImageMutatorBegin(ctx BaseModuleContext) ImageMutatorBegin(ctx BaseModuleContext)
@@ -81,18 +81,16 @@ const (
DebugRamdiskVariation string = "debug_ramdisk" 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.). // allow them to build differently for each partition (recovery, core, vendor, etc.).
func imageMutator(ctx BottomUpMutatorContext) { type imageTransitionMutator struct{}
if ctx.Os() != Android {
return
}
if m, ok := ctx.Module().(ImageInterface); ok {
m.ImageMutatorBegin(ctx)
func (imageTransitionMutator) Split(ctx BaseModuleContext) []string {
var variations []string var variations []string
if m, ok := ctx.Module().(ImageInterface); ctx.Os() == Android && ok {
m.ImageMutatorBegin(ctx)
if m.CoreVariantNeeded(ctx) { if m.CoreVariantNeeded(ctx) {
variations = append(variations, CoreVariation) variations = append(variations, CoreVariation)
} }
@@ -117,15 +115,29 @@ func imageMutator(ctx BottomUpMutatorContext) {
extraVariations := m.ExtraImageVariations(ctx) extraVariations := m.ExtraImageVariations(ctx)
variations = append(variations, extraVariations...) variations = append(variations, extraVariations...)
}
if len(variations) == 0 { if len(variations) == 0 {
return variations = append(variations, "")
} }
mod := ctx.CreateVariations(variations...) return variations
for i, v := range variations { }
mod[i].base().setImageVariation(v)
mod[i].(ImageInterface).SetImageVariation(ctx, v) 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)
} }
} }

View File

@@ -149,7 +149,7 @@ var preArch = []RegisterMutatorFunc{
func registerArchMutator(ctx RegisterMutatorsContext) { func registerArchMutator(ctx RegisterMutatorsContext) {
ctx.BottomUpBlueprint("os", osMutator).Parallel() ctx.BottomUpBlueprint("os", osMutator).Parallel()
ctx.BottomUp("image", imageMutator).Parallel() ctx.Transition("image", &imageTransitionMutator{})
ctx.BottomUpBlueprint("arch", archMutator).Parallel() ctx.BottomUpBlueprint("arch", archMutator).Parallel()
} }