Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f7c4e468 authored by Colin Cross's avatar Colin Cross Committed by Automerger Merge Worker
Browse files

[DO NOT MERGE] Use localPool consistently for UseGoma() == true am: 80059e69

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

Change-Id: I8f5af621dab337f6dcf10fd2822c3202f514845b
parents 2445d7c4 80059e69
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1001,6 +1001,12 @@ func (a *androidModuleContext) Variable(pctx PackageContext, name, value string)
func (a *androidModuleContext) Rule(pctx PackageContext, name string, params blueprint.RuleParams,
	argNames ...string) blueprint.Rule {

	if a.config.UseGoma() && params.Pool == nil {
		// When USE_GOMA=true is set and the rule is not supported by goma, restrict jobs to the
		// local parallelism value
		params.Pool = localPool
	}

	rule := a.ModuleContext.Rule(pctx.PackageContext, name, params, argNames...)

	if a.config.captureBuild {
+17 −17
Original line number Diff line number Diff line
@@ -104,7 +104,8 @@ func (p PackageContext) PoolFunc(name string,
}

// RuleFunc wraps blueprint.PackageContext.RuleFunc, converting the interface{} config
// argument to a Context that supports Config().
// argument to a Context that supports Config(), and provides a default Pool if none is
// specified.
func (p PackageContext) RuleFunc(name string,
	f func(PackageRuleContext) blueprint.RuleParams, argNames ...string) blueprint.Rule {

@@ -114,6 +115,11 @@ func (p PackageContext) RuleFunc(name string,
		if len(ctx.errors) > 0 {
			return params, ctx.errors[0]
		}
		if ctx.Config().UseGoma() && params.Pool == nil {
			// When USE_GOMA=true is set and the rule is not supported by goma, restrict jobs to the
			// local parallelism value
			params.Pool = localPool
		}
		return params, nil
	}, argNames...)
}
@@ -234,10 +240,16 @@ func (p PackageContext) PrefixedExistentPathsForSourcesVariable(
	})
}

// AndroidStaticRule wraps blueprint.StaticRule and provides a default Pool if none is specified
// AndroidStaticRule is an alias for StaticRule.
func (p PackageContext) AndroidStaticRule(name string, params blueprint.RuleParams,
	argNames ...string) blueprint.Rule {
	return p.AndroidRuleFunc(name, func(PackageRuleContext) blueprint.RuleParams {
	return p.StaticRule(name, params, argNames...)
}

// StaticRule wraps blueprint.StaticRule and provides a default Pool if none is specified.
func (p PackageContext) StaticRule(name string, params blueprint.RuleParams,
	argNames ...string) blueprint.Rule {
	return p.RuleFunc(name, func(PackageRuleContext) blueprint.RuleParams {
		return params
	}, argNames...)
}
@@ -245,18 +257,6 @@ func (p PackageContext) AndroidStaticRule(name string, params blueprint.RulePara
// AndroidGomaStaticRule wraps blueprint.StaticRule but uses goma's parallelism if goma is enabled
func (p PackageContext) AndroidGomaStaticRule(name string, params blueprint.RuleParams,
	argNames ...string) blueprint.Rule {
	return p.StaticRule(name, params, argNames...)
}

func (p PackageContext) AndroidRuleFunc(name string,
	f func(PackageRuleContext) blueprint.RuleParams, argNames ...string) blueprint.Rule {
	return p.RuleFunc(name, func(ctx PackageRuleContext) blueprint.RuleParams {
		params := f(ctx)
		if ctx.Config().UseGoma() && params.Pool == nil {
			// When USE_GOMA=true is set and the rule is not supported by goma, restrict jobs to the
			// local parallelism value
			params.Pool = localPool
		}
		return params
	}, argNames...)
	// bypass android.PackageContext.StaticRule so that Pool does not get set to local_pool.
	return p.PackageContext.StaticRule(name, params, argNames...)
}
+5 −0
Original line number Diff line number Diff line
@@ -127,6 +127,11 @@ func (s *singletonContextAdaptor) Variable(pctx PackageContext, name, value stri
}

func (s *singletonContextAdaptor) Rule(pctx PackageContext, name string, params blueprint.RuleParams, argNames ...string) blueprint.Rule {
	if s.Config().UseGoma() && params.Pool == nil {
		// When USE_GOMA=true is set and the rule is not supported by goma, restrict jobs to the
		// local parallelism value
		params.Pool = localPool
	}
	rule := s.SingletonContext.Rule(pctx.PackageContext, name, params, argNames...)
	if s.Config().captureBuild {
		s.ruleParams[rule] = params
+1 −1
Original line number Diff line number Diff line
@@ -209,7 +209,7 @@ var (

	_ = pctx.SourcePathVariable("sAbiDiffer", "prebuilts/clang-tools/${config.HostPrebuiltTag}/bin/header-abi-diff")

	sAbiDiff = pctx.AndroidRuleFunc("sAbiDiff",
	sAbiDiff = pctx.RuleFunc("sAbiDiff",
		func(ctx android.PackageRuleContext) blueprint.RuleParams {
			// TODO(b/78139997): Add -check-all-apis back
			commandStr := "($sAbiDiffer ${allowFlags} -lib ${libName} -arch ${arch} -o ${out} -new ${in} -old ${referenceDump})"