Fix SOONG_DUMP_JSON_MODULE_GRAPH on a fresh checkout.
This CL adds generateJsonModuleGraph bazelBuildMode and ensures that it returns Soong early, before Kati and Soong metrics collection begin (which causes errors, since they're looking for files that Soong in json dump mode did not write). Test: TH Test: rm -rf out && SOONG_DUMP_JSON_MODULE_GRAPH=/tmp/soong.json m nothing Change-Id: I264eadb3b3b0cd6b6e7a65adc7b39bb1c01ca136
This commit is contained in:
parent
a8de9fb2ae
commit
dd9725c177
3 changed files with 13 additions and 2 deletions
|
@ -274,6 +274,11 @@ func Build(ctx Context, config Config) {
|
|||
// Return early, if we're using Soong as solely the generator of BUILD files.
|
||||
return
|
||||
}
|
||||
|
||||
if config.bazelBuildMode() == generateJsonModuleGraph {
|
||||
// Return early, if we're using Soong as solely the generator of the JSON module graph
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if what&RunKati != 0 {
|
||||
|
|
|
@ -108,6 +108,9 @@ const (
|
|||
// Only generate build files (in a subdirectory of the out directory) and exit.
|
||||
generateBuildFiles
|
||||
|
||||
// Only generate the Soong json module graph for use with jq, and exit.
|
||||
generateJsonModuleGraph
|
||||
|
||||
// Generate synthetic build files and incorporate these files into a build which
|
||||
// partially uses Bazel. Build metadata may come from Android.bp or BUILD files.
|
||||
mixedBuild
|
||||
|
@ -936,6 +939,8 @@ func (c *configImpl) bazelBuildMode() bazelBuildMode {
|
|||
return mixedBuild
|
||||
} else if c.Environment().IsEnvTrue("GENERATE_BAZEL_FILES") {
|
||||
return generateBuildFiles
|
||||
} else if v, ok := c.Environment().Get("SOONG_DUMP_JSON_MODULE_GRAPH"); ok && v != "" {
|
||||
return generateJsonModuleGraph
|
||||
} else {
|
||||
return noBazel
|
||||
}
|
||||
|
|
|
@ -333,8 +333,9 @@ func runSoong(ctx Context, config Config) {
|
|||
}
|
||||
|
||||
func shouldCollectBuildSoongMetrics(config Config) bool {
|
||||
// Do not collect metrics protobuf if the soong_build binary ran as the bp2build converter.
|
||||
return config.bazelBuildMode() != generateBuildFiles
|
||||
// Do not collect metrics protobuf if the soong_build binary ran as the
|
||||
// bp2build converter or the JSON graph dump.
|
||||
return config.bazelBuildMode() != generateBuildFiles && config.bazelBuildMode() != generateJsonModuleGraph
|
||||
}
|
||||
|
||||
func loadSoongBuildMetrics(ctx Context, config Config) *soong_metrics_proto.SoongBuildMetrics {
|
||||
|
|
Loading…
Reference in a new issue