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

Unified Diff: tools/gn/analyzer.cc

Issue 2341683006: Fix various issues with `gn analyze`. (Closed)
Patch Set: update docs Created 4 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 | « no previous file | tools/gn/analyzer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/gn/analyzer.cc
diff --git a/tools/gn/analyzer.cc b/tools/gn/analyzer.cc
index 38acb6b84a1a76a50800cf18654a13c9aad6782d..8ee303ff0811614b6f50beccf56bc259a3b73797 100644
--- a/tools/gn/analyzer.cc
+++ b/tools/gn/analyzer.cc
@@ -157,7 +157,7 @@ Err JSONToInputs(const Label& default_toolchain,
inputs->source_vec.push_back(SourceFile(s));
}
- strings = GetStringVector(*dict, "compile_targets", &err);
+ strings = GetStringVector(*dict, "additional_compile_targets", &err);
if (err.has_error())
return err;
@@ -193,7 +193,7 @@ Err JSONToInputs(const Label& default_toolchain,
}
std::string OutputsToJSON(const Outputs& outputs,
- const Label& default_toolchain) {
+ const Label& default_toolchain, Err *err) {
std::string output;
auto value = base::MakeUnique<base::DictionaryValue>();
@@ -208,7 +208,8 @@ std::string OutputsToJSON(const Outputs& outputs,
WriteLabels(default_toolchain, *value, "test_targets", outputs.test_labels);
}
- base::JSONWriter::Write(*value.get(), &output);
+ if (!base::JSONWriter::Write(*value.get(), &output))
+ *err = Err(Location(), "Failed to marshal JSON value for output");
return output;
}
@@ -237,9 +238,7 @@ std::string Analyzer::Analyze(const std::string& input, Err* err) const {
Err local_err = JSONToInputs(default_toolchain_, input, &inputs);
if (local_err.has_error()) {
outputs.error = local_err.message();
- if (err)
- *err = Err();
- return "";
+ return OutputsToJSON(outputs, default_toolchain_, err);
}
LabelSet invalid_labels;
@@ -250,17 +249,13 @@ std::string Analyzer::Analyze(const std::string& input, Err* err) const {
if (!invalid_labels.empty()) {
outputs.error = "Invalid targets";
outputs.invalid_labels = invalid_labels;
- if (err)
- *err = Err();
- return OutputsToJSON(outputs, default_toolchain_);
+ return OutputsToJSON(outputs, default_toolchain_, err);
}
TargetSet affected_targets = AllAffectedTargets(inputs.source_files);
if (affected_targets.empty()) {
outputs.status = "No dependency";
- if (err)
- *err = Err();
- return OutputsToJSON(outputs, default_toolchain_);
+ return OutputsToJSON(outputs, default_toolchain_, err);
}
// TODO: We can do smarter things when we detect changes to build files.
@@ -272,9 +267,7 @@ std::string Analyzer::Analyze(const std::string& input, Err* err) const {
outputs.status = "Found dependency (all)";
outputs.compile_labels = inputs.compile_labels;
outputs.test_labels = inputs.test_labels;
- if (err)
- *err = Err();
- return OutputsToJSON(outputs, default_toolchain_);
+ return OutputsToJSON(outputs, default_toolchain_, err);
}
TargetSet compile_targets = TargetsFor(inputs.compile_labels);
@@ -293,8 +286,7 @@ std::string Analyzer::Analyze(const std::string& input, Err* err) const {
outputs.status = "No dependency";
else
outputs.status = "Found dependency";
- *err = Err();
- return OutputsToJSON(outputs, default_toolchain_);
+ return OutputsToJSON(outputs, default_toolchain_, err);
}
TargetSet Analyzer::AllAffectedTargets(
« no previous file with comments | « no previous file | tools/gn/analyzer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698