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

Commit aa4f1c20 authored by Devin Moore's avatar Devin Moore Committed by Gerrit Code Review
Browse files

Merge "Support phony_output as a BuildParam Arg in RuleBuilder" into main

parents a0258d8b b6cc64ff
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ type RuleBuilder struct {
	sboxInputs       bool
	sboxManifestPath WritablePath
	missingDeps      []string
	args             map[string]string
}

// NewRuleBuilder returns a newly created RuleBuilder.
@@ -78,6 +79,17 @@ func (rb *RuleBuilder) SetSboxOutDirDirAsEmpty() *RuleBuilder {
	return rb
}

// Set the phony_output argument.
// This causes the output files to be ignored.
// If the output isn't created, it's not treated as an error.
// The build rule is run every time whether or not the output is created.
func (rb *RuleBuilder) SetPhonyOutput() {
	if rb.args == nil {
		rb.args = make(map[string]string)
	}
	rb.args["phony_output"] = "true"
}

// RuleBuilderInstall is a tuple of install from and to locations.
type RuleBuilderInstall struct {
	From Path
@@ -726,6 +738,12 @@ func (r *RuleBuilder) build(name string, desc string, ninjaEscapeCommandString b
		commandString = proptools.NinjaEscape(commandString)
	}

	args_vars := make([]string, len(r.args))
	i := 0
	for k, _ := range r.args {
		args_vars[i] = k
		i++
	}
	r.ctx.Build(r.pctx, BuildParams{
		Rule: r.ctx.Rule(r.pctx, name, blueprint.RuleParams{
			Command:        commandString,
@@ -734,7 +752,7 @@ func (r *RuleBuilder) build(name string, desc string, ninjaEscapeCommandString b
			Rspfile:        proptools.NinjaEscape(rspFile),
			RspfileContent: rspFileContent,
			Pool:           pool,
		}),
		}, args_vars...),
		Inputs:          rspFileInputs,
		Implicits:       inputs,
		OrderOnly:       r.OrderOnlys(),
@@ -744,6 +762,7 @@ func (r *RuleBuilder) build(name string, desc string, ninjaEscapeCommandString b
		Depfile:         depFile,
		Deps:            depFormat,
		Description:     desc,
		Args:            r.args,
	})
}