Remove the concept of "early mutator". am: 83a5a308b1
am: 85011ed22a
am: 24a8eb0e51
am: c25454a0d5
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2067144 Change-Id: Ib7b7b66d6c5078093d559ade739689bb1d4bcb92 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
67cd98578a
2 changed files with 1 additions and 66 deletions
40
context.go
40
context.go
|
@ -83,7 +83,6 @@ type Context struct {
|
|||
preSingletonInfo []*singletonInfo
|
||||
singletonInfo []*singletonInfo
|
||||
mutatorInfo []*mutatorInfo
|
||||
earlyMutatorInfo []*mutatorInfo
|
||||
variantMutatorNames []string
|
||||
|
||||
depsModified uint32 // positive if a mutator modified the dependencies
|
||||
|
@ -630,38 +629,6 @@ func (mutator *mutatorInfo) Parallel() MutatorHandle {
|
|||
return mutator
|
||||
}
|
||||
|
||||
// RegisterEarlyMutator registers a mutator that will be invoked to split
|
||||
// Modules into multiple variant Modules before any dependencies have been
|
||||
// created. Each registered mutator is invoked in registration order once
|
||||
// per Module (including each variant from previous early mutators). Module
|
||||
// order is unpredictable.
|
||||
//
|
||||
// In order for dependencies to be satisifed in a later pass, all dependencies
|
||||
// of a module either must have an identical variant or must have no variations.
|
||||
//
|
||||
// The mutator type names given here must be unique to all bottom up or early
|
||||
// mutators in the Context.
|
||||
//
|
||||
// Deprecated, use a BottomUpMutator instead. The only difference between
|
||||
// EarlyMutator and BottomUpMutator is that EarlyMutator runs before the
|
||||
// deprecated DynamicDependencies.
|
||||
func (c *Context) RegisterEarlyMutator(name string, mutator EarlyMutator) {
|
||||
for _, m := range c.variantMutatorNames {
|
||||
if m == name {
|
||||
panic(fmt.Errorf("mutator name %s is already registered", name))
|
||||
}
|
||||
}
|
||||
|
||||
c.earlyMutatorInfo = append(c.earlyMutatorInfo, &mutatorInfo{
|
||||
bottomUpMutator: func(mctx BottomUpMutatorContext) {
|
||||
mutator(mctx)
|
||||
},
|
||||
name: name,
|
||||
})
|
||||
|
||||
c.variantMutatorNames = append(c.variantMutatorNames, name)
|
||||
}
|
||||
|
||||
// SetIgnoreUnknownModuleTypes sets the behavior of the context in the case
|
||||
// where it encounters an unknown module type while parsing Blueprints files. By
|
||||
// default, the context will report unknown module types as an error. If this
|
||||
|
@ -2483,13 +2450,8 @@ func (c *Context) PrepareBuildActions(config interface{}) (deps []string, errs [
|
|||
}
|
||||
|
||||
func (c *Context) runMutators(ctx context.Context, config interface{}) (deps []string, errs []error) {
|
||||
var mutators []*mutatorInfo
|
||||
|
||||
pprof.Do(ctx, pprof.Labels("blueprint", "runMutators"), func(ctx context.Context) {
|
||||
mutators = append(mutators, c.earlyMutatorInfo...)
|
||||
mutators = append(mutators, c.mutatorInfo...)
|
||||
|
||||
for _, mutator := range mutators {
|
||||
for _, mutator := range c.mutatorInfo {
|
||||
pprof.Do(ctx, pprof.Labels("mutator", mutator.name), func(context.Context) {
|
||||
var newDeps []string
|
||||
if mutator.topDownMutator != nil {
|
||||
|
|
|
@ -831,32 +831,6 @@ type BaseMutatorContext interface {
|
|||
MutatorName() string
|
||||
}
|
||||
|
||||
type EarlyMutatorContext interface {
|
||||
BaseMutatorContext
|
||||
|
||||
// CreateVariations splits a module into multiple variants, one for each name in the variationNames
|
||||
// parameter. It returns a list of new modules in the same order as the variationNames
|
||||
// list.
|
||||
//
|
||||
// If any of the dependencies of the module being operated on were already split
|
||||
// by calling CreateVariations with the same name, the dependency will automatically
|
||||
// be updated to point the matching variant.
|
||||
//
|
||||
// If a module is split, and then a module depending on the first module is not split
|
||||
// when the Mutator is later called on it, the dependency of the depending module will
|
||||
// automatically be updated to point to the first variant.
|
||||
CreateVariations(...string) []Module
|
||||
|
||||
// CreateLocalVariations splits a module into multiple variants, one for each name in the variantNames
|
||||
// parameter. It returns a list of new modules in the same order as the variantNames
|
||||
// list.
|
||||
//
|
||||
// Local variations do not affect automatic dependency resolution - dependencies added
|
||||
// to the split module via deps or DynamicDependerModule must exactly match a variant
|
||||
// that contains all the non-local variations.
|
||||
CreateLocalVariations(...string) []Module
|
||||
}
|
||||
|
||||
type TopDownMutatorContext interface {
|
||||
BaseMutatorContext
|
||||
|
||||
|
@ -995,7 +969,6 @@ type BottomUpMutatorContext interface {
|
|||
// if a second Mutator chooses to split the module a second time.
|
||||
type TopDownMutator func(mctx TopDownMutatorContext)
|
||||
type BottomUpMutator func(mctx BottomUpMutatorContext)
|
||||
type EarlyMutator func(mctx EarlyMutatorContext)
|
||||
|
||||
// DependencyTag is an interface to an arbitrary object that embeds BaseDependencyTag. It can be
|
||||
// used to transfer information on a dependency between the mutator that called AddDependency
|
||||
|
|
Loading…
Reference in a new issue