Ninja
|
#include <clean.h>
Public Member Functions | |
int | CleanAll (bool generator=false) |
Clean all built files, except for files created by generator rules. More... | |
int | cleaned_files_count () const |
Cleaner (State *state, const BuildConfig &config) | |
Build a cleaner object with a real disk interface. More... | |
Cleaner (State *state, const BuildConfig &config, DiskInterface *disk_interface) | |
Build a cleaner object with the given disk_interface (Useful for testing). More... | |
int | CleanRule (const Rule *rule) |
Clean all the file built with the given rule rule. More... | |
int | CleanRule (const char *rule) |
Clean the file produced by the given rule. More... | |
int | CleanRules (int rule_count, char *rules[]) |
Clean the file produced by the given rules. More... | |
int | CleanTarget (Node *target) |
Clean the given target and all the file built for it. More... | |
int | CleanTarget (const char *target) |
Clean the given target target. More... | |
int | CleanTargets (int target_count, char *targets[]) |
Clean the given target targets. More... | |
bool | IsVerbose () const |
Private Member Functions | |
void | DoCleanRule (const Rule *rule) |
void | DoCleanTarget (Node *target) |
Helper recursive method for CleanTarget(). More... | |
bool | FileExists (const string &path) |
bool | IsAlreadyRemoved (const string &path) |
void | PrintFooter () |
void | PrintHeader () |
void | Remove (const string &path) |
Remove the given path file only if it has not been already removed. More... | |
void | RemoveEdgeFiles (Edge *edge) |
Remove the depfile and rspfile for an Edge. More... | |
int | RemoveFile (const string &path) |
Remove the file path. More... | |
void | Report (const string &path) |
void | Reset () |
Private Attributes | |
set< Node * > | cleaned_ |
int | cleaned_files_count_ |
const BuildConfig & | config_ |
DiskInterface * | disk_interface_ |
set< string > | removed_ |
State * | state_ |
int | status_ |
Cleaner::Cleaner | ( | State * | state, |
const BuildConfig & | config | ||
) |
Cleaner::Cleaner | ( | State * | state, |
const BuildConfig & | config, | ||
DiskInterface * | disk_interface | ||
) |
int Cleaner::CleanAll | ( | bool | generator = false | ) |
Clean all built files, except for files created by generator rules.
generator | If set, also clean files created by generator rules. |
Definition at line 108 of file clean.cc.
References State::edges_, PrintFooter(), PrintHeader(), Remove(), RemoveEdgeFiles(), Reset(), state_, and status_.
Referenced by TEST_F().
|
inline |
int Cleaner::CleanRule | ( | const Rule * | rule | ) |
Clean all the file built with the given rule rule.
Definition at line 209 of file clean.cc.
References DoCleanRule(), PrintFooter(), PrintHeader(), Reset(), and status_.
Referenced by CleanRule(), and TEST_F().
int Cleaner::CleanRule | ( | const char * | rule | ) |
Clean the file produced by the given rule.
Definition at line 219 of file clean.cc.
References CleanRule(), Error(), State::LookupRule(), Reset(), state_, and status_.
int Cleaner::CleanRules | ( | int | rule_count, |
char * | rules[] | ||
) |
Clean the file produced by the given rules.
Definition at line 233 of file clean.cc.
References DoCleanRule(), Error(), IsVerbose(), State::LookupRule(), PrintFooter(), PrintHeader(), Reset(), state_, and status_.
int Cleaner::CleanTarget | ( | Node * | target | ) |
Clean the given target and all the file built for it.
Definition at line 151 of file clean.cc.
References DoCleanTarget(), PrintFooter(), PrintHeader(), Reset(), and status_.
Referenced by CleanTarget(), and TEST_F().
int Cleaner::CleanTarget | ( | const char * | target | ) |
Clean the given target target.
Definition at line 161 of file clean.cc.
References CleanTarget(), Error(), State::LookupNode(), Reset(), state_, and status_.
int Cleaner::CleanTargets | ( | int | target_count, |
char * | targets[] | ||
) |
Clean the given target targets.
Definition at line 175 of file clean.cc.
References DoCleanTarget(), Error(), IsVerbose(), State::LookupNode(), PrintFooter(), PrintHeader(), Reset(), state_, and status_.
|
private |
Definition at line 194 of file clean.cc.
References State::edges_, Rule::name(), Remove(), RemoveEdgeFiles(), and state_.
Referenced by CleanRule(), and CleanRules().
|
private |
Helper recursive method for CleanTarget().
Definition at line 130 of file clean.cc.
References cleaned_, Node::in_edge(), Node::path(), Remove(), and RemoveEdgeFiles().
Referenced by CleanTarget(), and CleanTargets().
|
private |
Definition at line 51 of file clean.cc.
References disk_interface_, and DiskInterface::Stat().
Referenced by Remove().
|
private |
|
inline |
Definition at line 71 of file clean.h.
References BuildConfig::QUIET, and BuildConfig::VERBOSE.
Referenced by CleanRules(), CleanTargets(), PrintHeader(), and Report().
|
private |
Definition at line 102 of file clean.cc.
References cleaned_files_count_, config_, BuildConfig::QUIET, and BuildConfig::verbosity.
Referenced by CleanAll(), CleanRule(), CleanRules(), CleanTarget(), and CleanTargets().
|
private |
Definition at line 92 of file clean.cc.
References config_, IsVerbose(), BuildConfig::QUIET, and BuildConfig::verbosity.
Referenced by CleanAll(), CleanRule(), CleanRules(), CleanTarget(), and CleanTargets().
|
private |
Remove the given path file only if it has not been already removed.
Definition at line 61 of file clean.cc.
References config_, BuildConfig::dry_run, FileExists(), IsAlreadyRemoved(), removed_, RemoveFile(), Report(), and status_.
Referenced by CleanAll(), DoCleanRule(), DoCleanTarget(), and RemoveEdgeFiles().
|
private |
Remove the depfile and rspfile for an Edge.
Definition at line 82 of file clean.cc.
References Edge::GetBinding(), and Remove().
Referenced by CleanAll(), DoCleanRule(), and DoCleanTarget().
|
private |
Remove the file path.
Definition at line 47 of file clean.cc.
References disk_interface_, and DiskInterface::RemoveFile().
Referenced by Remove().
|
private |
Definition at line 55 of file clean.cc.
References cleaned_files_count_, and IsVerbose().
Referenced by Remove().
|
private |
Definition at line 254 of file clean.cc.
References cleaned_, cleaned_files_count_, removed_, and status_.
Referenced by CleanAll(), CleanRule(), CleanRules(), CleanTarget(), and CleanTargets().
|
private |
Definition at line 101 of file clean.h.
Referenced by DoCleanTarget(), and Reset().
|
private |
Definition at line 102 of file clean.h.
Referenced by PrintFooter(), Report(), and Reset().
|
private |
Definition at line 99 of file clean.h.
Referenced by PrintFooter(), PrintHeader(), and Remove().
|
private |
Definition at line 103 of file clean.h.
Referenced by FileExists(), and RemoveFile().
|
private |
Definition at line 100 of file clean.h.
Referenced by IsAlreadyRemoved(), Remove(), and Reset().
|
private |
Definition at line 98 of file clean.h.
Referenced by CleanAll(), CleanRule(), CleanRules(), CleanTarget(), CleanTargets(), and DoCleanRule().
|
private |
Definition at line 104 of file clean.h.
Referenced by CleanAll(), CleanRule(), CleanRules(), CleanTarget(), CleanTargets(), Remove(), and Reset().