Check all targets before generating shortnames Bug: 421951995 Change-Id: I1ccd6cd9e8df1f1d80b88338ce3ce65cf8004f80 Reviewed-on: https://gn-review.googlesource.com/c/gn/+/18820 Reviewed-by: Takuto Ikuta <tikuta@google.com> Commit-Queue: Takuto Ikuta <tikuta@google.com>
diff --git a/src/gn/ninja_build_writer.cc b/src/gn/ninja_build_writer.cc index 5349948..ca8ff17 100644 --- a/src/gn/ninja_build_writer.cc +++ b/src/gn/ninja_build_writer.cc
@@ -578,13 +578,15 @@ dir_string.compare(2, label.name().size(), label.name()) == 0) { toplevel_dir_targets.push_back(target); } + } - // Add the output files from each target to the written rules so that - // we don't write phony rules that collide with anything generated by the - // build. - // - // If at this point there is a collision (no phony rules have been - // generated yet), two targets make the same output so throw an error. + // Add the output files from each target to the written rules so that + // we don't write phony rules that collide with anything generated by the + // build. + // + // If at this point there is a collision (no phony rules have been + // generated yet), two targets make the same output so throw an error. + for (const Target* target : all_targets_) { for (const auto& output : target->computed_outputs()) { // Need to normalize because many toolchain outputs will be preceded // with "./".