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

Commit e37a4de7 authored by Chris Parsons's avatar Chris Parsons
Browse files

For mixed build bazel actions, remove old outputs

This should fix incrementality issues in cases where actions don't wipe
the old output. (Looking at you, llvm-ar)

Test: mixed_libc.sh
Change-Id: I4b6639e74c72921a5a703d73fd36f766f121c6ad
parent a06db33e
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -811,6 +811,15 @@ func (c *bazelSingleton) GenerateBuildActions(ctx SingletonContext) {
		// cd into Bazel's execution root, which is the action cwd.
		cmd.Text(fmt.Sprintf("cd %s/execroot/__main__ &&", ctx.Config().BazelContext.OutputBase()))

		// Remove old outputs, as some actions might not rerun if the outputs are detected.
		if len(buildStatement.OutputPaths) > 0 {
			cmd.Text("rm -f")
			for _, outputPath := range buildStatement.OutputPaths {
				cmd.Text(PathForBazelOut(ctx, outputPath).String())
			}
			cmd.Text("&&")
		}

		for _, pair := range buildStatement.Env {
			// Set per-action env variables, if any.
			cmd.Flag(pair.Key + "=" + pair.Value)