Remove duplicated -Ldependency arguments to rustc. For more complex projects, these arguments can be repeated dozens of times. Change-Id: I511b09c7fb06fe3c199fa01fd3e3fff6ba86a635 Reviewed-on: https://gn-review.googlesource.com/c/gn/+/8160 Reviewed-by: Petr Hosek <phosek@google.com> Commit-Queue: Petr Hosek <phosek@google.com>
diff --git a/src/gn/ninja_rust_binary_target_writer.cc b/src/gn/ninja_rust_binary_target_writer.cc index 5ca0750..c8f8e43 100644 --- a/src/gn/ninja_rust_binary_target_writer.cc +++ b/src/gn/ninja_rust_binary_target_writer.cc
@@ -249,12 +249,15 @@ out_ << " rustdeps ="; // Rust dependencies. + UniqueVector<SourceDir> transitive_rustdep_dirs; for (const auto& rustdep : transitive_rustdeps) { // TODO switch to using --extern priv: after stabilization + transitive_rustdep_dirs.push_back( + rustdep.AsSourceFile(settings_->build_settings()).GetDir()); + } + for (const auto& rustdepdir : transitive_rustdep_dirs) { out_ << " -Ldependency="; - path_output_.WriteDir( - out_, rustdep.AsSourceFile(settings_->build_settings()).GetDir(), - PathOutput::DIR_NO_LAST_SLASH); + path_output_.WriteDir(out_, rustdepdir, PathOutput::DIR_NO_LAST_SLASH); } EscapeOptions lib_escape_opts;
diff --git a/src/gn/ninja_rust_binary_target_writer_unittest.cc b/src/gn/ninja_rust_binary_target_writer_unittest.cc index b9c2215..4d7d114 100644 --- a/src/gn/ninja_rust_binary_target_writer_unittest.cc +++ b/src/gn/ninja_rust_binary_target_writer_unittest.cc
@@ -307,7 +307,7 @@ "build ./foo_bar: rust_bin ../../foo/main.rs | " "../../foo/source.rs ../../foo/main.rs obj/bar/libmylib.rlib\n" " externs = --extern mylib=obj/bar/libmylib.rlib\n" - " rustdeps = -Ldependency=obj/bar -Ldependency=obj/bar\n"; + " rustdeps = -Ldependency=obj/bar\n"; std::string out_str = out.str(); EXPECT_EQ(expected, out_str) << expected << "\n" << out_str; }