Add EXTERNAL_FILE option for ninja weight list
Test: m --ninja_weight_source=file,<file path>
Bug: 271527305
Change-Id: Ibeae4c757dff281be69486a9758dbee3584d9dec
diff --git a/ui/build/ninja.go b/ui/build/ninja.go
index 4734494..cd528ba 100644
--- a/ui/build/ninja.go
+++ b/ui/build/ninja.go
@@ -30,8 +30,9 @@
const (
// File containing the environment state when ninja is executed
- ninjaEnvFileName = "ninja.environment"
- ninjaLogFileName = ".ninja_log"
+ ninjaEnvFileName = "ninja.environment"
+ ninjaLogFileName = ".ninja_log"
+ ninjaWeightListFileName = ".ninja_weight_list"
)
func useNinjaBuildLog(ctx Context, config Config, cmd *Cmd) {
@@ -66,7 +67,7 @@
ctx.Verbosef("There is an error during reading ninja log, so ninja will use empty weight list: %s", err)
}
- weightListFile := filepath.Join(config.OutDir(), ".ninja_weight_list")
+ weightListFile := filepath.Join(config.OutDir(), ninjaWeightListFileName)
err = os.WriteFile(weightListFile, []byte(outputBuilder.String()), 0644)
if err == nil {
@@ -134,6 +135,10 @@
case EVENLY_DISTRIBUTED:
// pass empty weight list means ninja considers every tasks's weight as 1(default value).
cmd.Args = append(cmd.Args, "-o", "usesweightlist=/dev/null")
+ case EXTERNAL_FILE:
+ // The weight list is already copied.
+ ninjaWeightListPath := filepath.Join(config.OutDir(), ninjaWeightListFileName)
+ cmd.Args = append(cmd.Args, "-o", "usesweightlist="+ninjaWeightListPath)
}
// Allow both NINJA_ARGS and NINJA_EXTRA_ARGS, since both have been