From 30afe1d6895c4dd597634869732a35aeaae47af1 Mon Sep 17 00:00:00 2001 From: Evan Martin Date: Sat, 4 Dec 2010 15:06:27 -0800 Subject: [PATCH] show referencing node in 'file missing' message --- build.cc | 5 ++++- build_test.cc | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/build.cc b/build.cc index 919e4ac..6282b5f 100644 --- a/build.cc +++ b/build.cc @@ -14,7 +14,10 @@ bool Plan::AddSubTarget(Node* node, vector* stack, string* err) { Edge* edge = node->in_edge_; if (!edge) { // Leaf node. if (node->dirty_) { - *err = "'" + node->file_->path_ + "' missing " + string referenced; + if (!stack->empty()) + referenced = ", needed by '" + stack->back()->file_->path_ + "',"; + *err = "'" + node->file_->path_ + "'" + referenced + " missing " "and no known rule to make it"; } return false; diff --git a/build_test.cc b/build_test.cc index 26d1080..81f2fbe 100644 --- a/build_test.cc +++ b/build_test.cc @@ -350,7 +350,8 @@ TEST_F(BuildTest, MissingInput) { string err; Dirty("in1"); EXPECT_FALSE(builder_.AddTarget("cat1", &err)); - EXPECT_EQ("'in1' missing and no known rule to make it", err); + EXPECT_EQ("'in1', needed by 'cat1', missing and no known rule to make it", + err); } TEST_F(BuildTest, MissingTarget) { -- 2.7.4