Remove the concept of "early mutator". am: 83a5a308b1
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2067144 Change-Id: Idef83a405d9f5be0fdeb198a72440aa15c0c42b8 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
85011ed22a
2 changed files with 1 additions and 66 deletions
40
context.go
40
context.go
|
@ -83,7 +83,6 @@ type Context struct {
|
||||||
preSingletonInfo []*singletonInfo
|
preSingletonInfo []*singletonInfo
|
||||||
singletonInfo []*singletonInfo
|
singletonInfo []*singletonInfo
|
||||||
mutatorInfo []*mutatorInfo
|
mutatorInfo []*mutatorInfo
|
||||||
earlyMutatorInfo []*mutatorInfo
|
|
||||||
variantMutatorNames []string
|
variantMutatorNames []string
|
||||||
|
|
||||||
depsModified uint32 // positive if a mutator modified the dependencies
|
depsModified uint32 // positive if a mutator modified the dependencies
|
||||||
|
@ -630,38 +629,6 @@ func (mutator *mutatorInfo) Parallel() MutatorHandle {
|
||||||
return mutator
|
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
|
// SetIgnoreUnknownModuleTypes sets the behavior of the context in the case
|
||||||
// where it encounters an unknown module type while parsing Blueprints files. By
|
// 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
|
// 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) {
|
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) {
|
pprof.Do(ctx, pprof.Labels("blueprint", "runMutators"), func(ctx context.Context) {
|
||||||
mutators = append(mutators, c.earlyMutatorInfo...)
|
for _, mutator := range c.mutatorInfo {
|
||||||
mutators = append(mutators, c.mutatorInfo...)
|
|
||||||
|
|
||||||
for _, mutator := range mutators {
|
|
||||||
pprof.Do(ctx, pprof.Labels("mutator", mutator.name), func(context.Context) {
|
pprof.Do(ctx, pprof.Labels("mutator", mutator.name), func(context.Context) {
|
||||||
var newDeps []string
|
var newDeps []string
|
||||||
if mutator.topDownMutator != nil {
|
if mutator.topDownMutator != nil {
|
||||||
|
|
|
@ -831,32 +831,6 @@ type BaseMutatorContext interface {
|
||||||
MutatorName() string
|
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 {
|
type TopDownMutatorContext interface {
|
||||||
BaseMutatorContext
|
BaseMutatorContext
|
||||||
|
|
||||||
|
@ -995,7 +969,6 @@ type BottomUpMutatorContext interface {
|
||||||
// if a second Mutator chooses to split the module a second time.
|
// if a second Mutator chooses to split the module a second time.
|
||||||
type TopDownMutator func(mctx TopDownMutatorContext)
|
type TopDownMutator func(mctx TopDownMutatorContext)
|
||||||
type BottomUpMutator func(mctx BottomUpMutatorContext)
|
type BottomUpMutator func(mctx BottomUpMutatorContext)
|
||||||
type EarlyMutator func(mctx EarlyMutatorContext)
|
|
||||||
|
|
||||||
// DependencyTag is an interface to an arbitrary object that embeds BaseDependencyTag. It can be
|
// 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
|
// used to transfer information on a dependency between the mutator that called AddDependency
|
||||||
|
|
Loading…
Reference in a new issue