Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(194)

Unified Diff: tools/gn/ninja_writer.cc

Issue 455193003: GN: Generate error if multiple rules generate same file (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/gn/ninja_writer.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/gn/ninja_writer.cc
diff --git a/tools/gn/ninja_writer.cc b/tools/gn/ninja_writer.cc
index f99336bdba8ad0a3698b428162965b14c6072907..37c982f688e88a42acc899f6807bfed3f7fa1dd8 100644
--- a/tools/gn/ninja_writer.cc
+++ b/tools/gn/ninja_writer.cc
@@ -22,28 +22,31 @@ NinjaWriter::~NinjaWriter() {
// static
bool NinjaWriter::RunAndWriteFiles(const BuildSettings* build_settings,
- Builder* builder) {
+ Builder* builder,
+ Err* err) {
NinjaWriter writer(build_settings, builder);
std::vector<const Settings*> all_settings;
std::vector<const Target*> default_targets;
- if (!writer.WriteToolchains(&all_settings, &default_targets))
+ if (!writer.WriteToolchains(&all_settings, &default_targets, err))
return false;
- return writer.WriteRootBuildfiles(all_settings, default_targets);
+ return writer.WriteRootBuildfiles(all_settings, default_targets, err);
}
// static
bool NinjaWriter::RunAndWriteToolchainFiles(
const BuildSettings* build_settings,
Builder* builder,
- std::vector<const Settings*>* all_settings) {
+ std::vector<const Settings*>* all_settings,
+ Err* err) {
NinjaWriter writer(build_settings, builder);
std::vector<const Target*> default_targets;
- return writer.WriteToolchains(all_settings, &default_targets);
+ return writer.WriteToolchains(all_settings, &default_targets, err);
}
bool NinjaWriter::WriteToolchains(std::vector<const Settings*>* all_settings,
- std::vector<const Target*>* default_targets) {
+ std::vector<const Target*>* default_targets,
+ Err* err) {
// Categorize all targets by toolchain.
typedef std::map<Label, std::vector<const Target*> > CategorizedMap;
CategorizedMap categorized;
@@ -88,7 +91,8 @@ bool NinjaWriter::WriteToolchains(std::vector<const Settings*>* all_settings,
bool NinjaWriter::WriteRootBuildfiles(
const std::vector<const Settings*>& all_settings,
- const std::vector<const Target*>& default_targets) {
+ const std::vector<const Target*>& default_targets,
+ Err* err) {
// All Settings objects should have the same default toolchain, and there
// should always be at least one settings object in the build.
CHECK(!all_settings.empty());
@@ -96,11 +100,7 @@ bool NinjaWriter::WriteRootBuildfiles(
builder_->GetToolchain(all_settings[0]->default_toolchain_label());
// Write the root buildfile.
- if (!NinjaBuildWriter::RunAndWriteFile(build_settings_, all_settings,
- default_toolchain, default_targets)) {
- Err(Location(),
- "Couldn't open toolchain buildfile(s) for writing").PrintToStdout();
- return false;
- }
- return true;
+ return NinjaBuildWriter::RunAndWriteFile(build_settings_, all_settings,
+ default_toolchain, default_targets,
+ err);
}
« no previous file with comments | « tools/gn/ninja_writer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698