Merge "Separate the collation of mutators from registration" am: 5a5eeace54

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1622500

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I340ff3cd1527b557fd32b0e5a424fe5f41f3517a
This commit is contained in:
Paul Duffin
2021-03-08 22:20:18 +00:00
committed by Automerger Merge Worker
3 changed files with 13 additions and 4 deletions

View File

@@ -69,7 +69,14 @@ func RegisterMutatorsForBazelConversion(ctx *Context, preArchMutators, depsMutat
mctx.mutators.registerAll(ctx)
}
func registerMutators(ctx *Context, preArch, preDeps, postDeps, finalDeps []RegisterMutatorFunc) {
// collateGloballyRegisteredMutators constructs the list of mutators that have been registered
// with the InitRegistrationContext and will be used at runtime.
func collateGloballyRegisteredMutators() sortableComponents {
return collateRegisteredMutators(preArch, preDeps, postDeps, finalDeps)
}
// collateRegisteredMutators constructs a single list of mutators from the separate lists.
func collateRegisteredMutators(preArch, preDeps, postDeps, finalDeps []RegisterMutatorFunc) sortableComponents {
mctx := &registerMutatorsContext{}
register := func(funcs []RegisterMutatorFunc) {
@@ -89,7 +96,7 @@ func registerMutators(ctx *Context, preArch, preDeps, postDeps, finalDeps []Regi
mctx.finalPhase = true
register(finalDeps)
mctx.mutators.registerAll(ctx)
return mctx.mutators
}
type registerMutatorsContext struct {

View File

@@ -188,7 +188,8 @@ func (ctx *Context) Register() {
singletons.registerAll(ctx)
registerMutators(ctx, preArch, preDeps, postDeps, finalDeps)
mutators := collateGloballyRegisteredMutators()
mutators.registerAll(ctx)
ctx.RegisterSingletonType("bazeldeps", SingletonFactoryAdaptor(ctx, BazelSingleton))

View File

@@ -141,7 +141,8 @@ func (ctx *TestContext) DepsBp2BuildMutators(f RegisterMutatorFunc) {
}
func (ctx *TestContext) Register() {
registerMutators(ctx.Context, ctx.preArch, ctx.preDeps, ctx.postDeps, ctx.finalDeps)
mutators := collateRegisteredMutators(ctx.preArch, ctx.preDeps, ctx.postDeps, ctx.finalDeps)
mutators.registerAll(ctx.Context)
ctx.RegisterSingletonType("env", EnvSingleton)
}