Fix RuleBuilder remoteable actions running in the local pool.
This CL fixes a bug with RuleBuilder's handling of remoteable actions. It adds a new type of pool to identify remoteable rules by the android module context. The pool is then set to nil to actually run actions at NINJA_REMOTE_NUM_JOBS parallelism. Test: built aosp crosshatch userdebug Change-Id: I29452f6fc7a161b94189731e3e3cc1f34907b80c
This commit is contained in:
@@ -908,7 +908,7 @@ func (m *ModuleBase) PartitionTag(config DeviceConfig) string {
|
||||
// partition at "system/vendor/odm".
|
||||
if config.OdmPath() == "odm" {
|
||||
partition = "odm"
|
||||
} else if strings.HasPrefix(config.OdmPath (), "vendor/") {
|
||||
} else if strings.HasPrefix(config.OdmPath(), "vendor/") {
|
||||
partition = "vendor"
|
||||
}
|
||||
} else if m.ProductSpecific() {
|
||||
@@ -1506,10 +1506,17 @@ func (m *moduleContext) Variable(pctx PackageContext, name, value string) {
|
||||
func (m *moduleContext) Rule(pctx PackageContext, name string, params blueprint.RuleParams,
|
||||
argNames ...string) blueprint.Rule {
|
||||
|
||||
if m.config.UseRemoteBuild() && params.Pool == nil {
|
||||
// When USE_GOMA=true or USE_RBE=true are set and the rule is not supported by goma/RBE, restrict
|
||||
// jobs to the local parallelism value
|
||||
params.Pool = localPool
|
||||
if m.config.UseRemoteBuild() {
|
||||
if params.Pool == nil {
|
||||
// When USE_GOMA=true or USE_RBE=true are set and the rule is not supported by goma/RBE, restrict
|
||||
// jobs to the local parallelism value
|
||||
params.Pool = localPool
|
||||
} else if params.Pool == remotePool {
|
||||
// remotePool is a fake pool used to identify rule that are supported for remoting. If the rule's
|
||||
// pool is the remotePool, replace with nil so that ninja runs it at NINJA_REMOTE_NUM_JOBS
|
||||
// parallelism.
|
||||
params.Pool = nil
|
||||
}
|
||||
}
|
||||
|
||||
rule := m.bp.Rule(pctx.PackageContext, name, params, argNames...)
|
||||
|
Reference in New Issue
Block a user