Support pre-build-action hook in blueprint
This allows for a bazel-invocation hook in mixed builds, which allows for mixed builds to take place in only a single pass, greatly improving its performance and complexity. Test: Conjunction with build/soong CL Change-Id: If89fb56830b4eb06d3263d6ca6da7b285e7ba315
This commit is contained in:
parent
c6d80893cb
commit
91f638f692
2 changed files with 13 additions and 0 deletions
|
@ -113,6 +113,13 @@ func RunBlueprint(args Args, stopBefore StopBefore, ctx *blueprint.Context, conf
|
|||
return ninjaDeps
|
||||
}
|
||||
|
||||
if ctx.BeforePrepareBuildActionsHook != nil {
|
||||
err := ctx.BeforePrepareBuildActionsHook()
|
||||
if err != nil {
|
||||
fatalErrors([]error{err})
|
||||
}
|
||||
}
|
||||
|
||||
extraDeps, errs = ctx.PrepareBuildActions(config)
|
||||
if len(errs) > 0 {
|
||||
fatalErrors(errs)
|
||||
|
|
|
@ -75,6 +75,8 @@ type Context struct {
|
|||
// Used for metrics-related event logging.
|
||||
EventHandler *metrics.EventHandler
|
||||
|
||||
BeforePrepareBuildActionsHook func() error
|
||||
|
||||
moduleFactories map[string]ModuleFactory
|
||||
nameInterface NameInterface
|
||||
moduleGroups []*moduleGroup
|
||||
|
@ -4095,6 +4097,10 @@ func (c *Context) EndEvent(name string) {
|
|||
c.EventHandler.End(name)
|
||||
}
|
||||
|
||||
func (c *Context) SetBeforePrepareBuildActionsHook(hookFn func() error) {
|
||||
c.BeforePrepareBuildActionsHook = hookFn
|
||||
}
|
||||
|
||||
func (c *Context) writeLocalBuildActions(nw *ninjaWriter,
|
||||
defs *localBuildActions) error {
|
||||
|
||||
|
|
Loading…
Reference in a new issue