Write ninja file in parallel.
Bug: 335718784
Test: CI
Change-Id: Ie36d78478a60359b704767689846e76b1c2ba76d
diff --git a/ui/build/soong.go b/ui/build/soong.go
index 79584c6..9955b1f 100644
--- a/ui/build/soong.go
+++ b/ui/build/soong.go
@@ -15,7 +15,6 @@
package build
import (
- "android/soong/ui/tracer"
"fmt"
"io/fs"
"os"
@@ -26,6 +25,8 @@
"sync/atomic"
"time"
+ "android/soong/ui/tracer"
+
"android/soong/bazel"
"android/soong/ui/metrics"
"android/soong/ui/metrics/metrics_proto"
@@ -270,7 +271,13 @@
} else if !exists {
// The tree is out of date for the current epoch, delete files used by bootstrap
// and force the primary builder to rerun.
- os.Remove(config.SoongNinjaFile())
+ soongNinjaFile := config.SoongNinjaFile()
+ os.Remove(soongNinjaFile)
+ for _, file := range blueprint.GetNinjaShardFiles(soongNinjaFile) {
+ if ok, _ := fileExists(file); ok {
+ os.Remove(file)
+ }
+ }
for _, globFile := range bootstrapGlobFileList(config) {
os.Remove(globFile)
}
@@ -680,7 +687,13 @@
loadSoongBuildMetrics(ctx, config, beforeSoongTimestamp)
- distGzipFile(ctx, config, config.SoongNinjaFile(), "soong")
+ soongNinjaFile := config.SoongNinjaFile()
+ distGzipFile(ctx, config, soongNinjaFile, "soong")
+ for _, file := range blueprint.GetNinjaShardFiles(soongNinjaFile) {
+ if ok, _ := fileExists(file); ok {
+ distGzipFile(ctx, config, file, "soong")
+ }
+ }
distFile(ctx, config, config.SoongVarsFile(), "soong")
if !config.SkipKati() {