diff options
author | Qingning Huo <qingninghuo@gmail.com> | 2012-03-14 21:11:31 (GMT) |
---|---|---|
committer | Qingning Huo <qingninghuo@gmail.com> | 2012-03-14 21:11:31 (GMT) |
commit | ef505e4573b14c802b1e5c2891694fa3c4e677e1 (patch) | |
tree | 530991bf5c6422082e35b9ff3a16b011febe0e02 /src/clean.cc | |
parent | fdec96f54e92d2990ebf1ba5434b317d3d8ad49d (diff) | |
download | Ninja-ef505e4573b14c802b1e5c2891694fa3c4e677e1.zip Ninja-ef505e4573b14c802b1e5c2891694fa3c4e677e1.tar.gz Ninja-ef505e4573b14c802b1e5c2891694fa3c4e677e1.tar.bz2 |
Remove depfiles when running when running "ninja -t clean <target>"
or "ninja -t clean -r <rule>"
Diffstat (limited to 'src/clean.cc')
-rw-r--r-- | src/clean.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/clean.cc b/src/clean.cc index e09ab4e..c6a294f 100644 --- a/src/clean.cc +++ b/src/clean.cc @@ -125,6 +125,8 @@ int Cleaner::CleanAll(bool generator) { void Cleaner::DoCleanTarget(Node* target) { if (target->in_edge()) { Remove(target->path()); + if (!target->in_edge()->rule().depfile().empty()) + Remove(target->in_edge()->EvaluateDepFile()); if (target->in_edge()->HasRspFile()) Remove(target->in_edge()->GetRspFile()); for (vector<Node*>::iterator n = target->in_edge()->inputs_.begin(); @@ -187,6 +189,8 @@ void Cleaner::DoCleanRule(const Rule* rule) { for (vector<Node*>::iterator out_node = (*e)->outputs_.begin(); out_node != (*e)->outputs_.end(); ++out_node) { Remove((*out_node)->path()); + if (!(*e)->rule().depfile().empty()) + Remove((*e)->EvaluateDepFile()); if ((*e)->HasRspFile()) Remove((*e)->GetRspFile()); } |