Ninja
|
Tracks the status of a build: completion fraction, printing updates. More...
#include <build.h>
Classes | |
struct | RateInfo |
struct | SlidingRateInfo |
Public Member Functions | |
void | BuildEdgeFinished (Edge *edge, bool success, const string &output, int *start_time, int *end_time) |
void | BuildEdgeStarted (Edge *edge) |
void | BuildFinished () |
BuildStatus (const BuildConfig &config) | |
string | FormatProgressStatus (const char *progress_status_format) const |
Format the progress status string by replacing the placeholders. More... | |
void | PlanHasTotalEdges (int total) |
Private Types | |
typedef map< Edge *, int > | RunningEdgeMap |
Map of running edge to time the edge started running. More... | |
Private Member Functions | |
void | PrintStatus (Edge *edge) |
template<size_t S> | |
void | snprinfRate (double rate, char(&buf)[S], const char *format) const |
Private Attributes | |
const BuildConfig & | config_ |
SlidingRateInfo | current_rate_ |
int | finished_edges_ |
RateInfo | overall_rate_ |
LinePrinter | printer_ |
Prints progress output. More... | |
const char * | progress_status_format_ |
The custom progress status format to use. More... | |
RunningEdgeMap | running_edges_ |
int64_t | start_time_millis_ |
Time the build started. More... | |
int | started_edges_ |
int | total_edges_ |
Tracks the status of a build: completion fraction, printing updates.
|
private |
|
explicit |
Definition at line 73 of file build.cc.
References config_, BuildConfig::NORMAL, printer_, progress_status_format_, LinePrinter::set_smart_terminal(), and BuildConfig::verbosity.
void BuildStatus::BuildEdgeFinished | ( | Edge * | edge, |
bool | success, | ||
const string & | output, | ||
int * | start_time, | ||
int * | end_time | ||
) |
Definition at line 101 of file build.cc.
References config_, Edge::EvaluateCommand(), finished_edges_, GetTimeMillis(), LinePrinter::is_smart_terminal(), printer_, LinePrinter::PrintOnNewLine(), PrintStatus(), BuildConfig::QUIET, running_edges_, start_time_millis_, StripAnsiEscapeCodes(), and BuildConfig::verbosity.
Referenced by Builder::FinishCommand().
void BuildStatus::BuildEdgeStarted | ( | Edge * | edge | ) |
Definition at line 93 of file build.cc.
References GetTimeMillis(), PrintStatus(), running_edges_, start_time_millis_, and started_edges_.
Referenced by Builder::StartEdge().
void BuildStatus::BuildFinished | ( | ) |
Definition at line 146 of file build.cc.
References printer_, and LinePrinter::PrintOnNewLine().
Referenced by Builder::Build().
string BuildStatus::FormatProgressStatus | ( | const char * | progress_status_format | ) | const |
Format the progress status string by replacing the placeholders.
See the user manual for more information about the available placeholders.
progress_status_format | The format of the progress status. |
Definition at line 150 of file build.cc.
References current_rate_, BuildStatus::RateInfo::Elapsed(), Fatal(), finished_edges_, overall_rate_, BuildStatus::RateInfo::rate(), BuildStatus::SlidingRateInfo::rate(), snprinfRate(), started_edges_, total_edges_, BuildStatus::RateInfo::UpdateRate(), and BuildStatus::SlidingRateInfo::UpdateRate().
Referenced by PrintStatus().
void BuildStatus::PlanHasTotalEdges | ( | int | total | ) |
Definition at line 89 of file build.cc.
References total_edges_.
Referenced by Builder::Build(), and Builder::FinishCommand().
|
private |
Definition at line 233 of file build.cc.
References config_, current_rate_, LinePrinter::ELIDE, finished_edges_, FormatProgressStatus(), LinePrinter::FULL, Edge::GetBinding(), overall_rate_, LinePrinter::Print(), printer_, progress_status_format_, BuildConfig::QUIET, BuildStatus::RateInfo::Restart(), BuildStatus::SlidingRateInfo::Restart(), BuildConfig::VERBOSE, and BuildConfig::verbosity.
Referenced by BuildEdgeFinished(), and BuildEdgeStarted().
|
inlineprivate |
Definition at line 227 of file build.h.
Referenced by FormatProgressStatus().
|
private |
Definition at line 209 of file build.h.
Referenced by BuildEdgeFinished(), BuildStatus(), and PrintStatus().
|
mutableprivate |
Definition at line 276 of file build.h.
Referenced by FormatProgressStatus(), and PrintStatus().
|
private |
Definition at line 214 of file build.h.
Referenced by BuildEdgeFinished(), FormatProgressStatus(), and PrintStatus().
|
mutableprivate |
Definition at line 275 of file build.h.
Referenced by FormatProgressStatus(), and PrintStatus().
|
private |
Prints progress output.
Definition at line 221 of file build.h.
Referenced by BuildEdgeFinished(), BuildFinished(), BuildStatus(), and PrintStatus().
|
private |
The custom progress status format to use.
Definition at line 224 of file build.h.
Referenced by BuildStatus(), and PrintStatus().
|
private |
Definition at line 218 of file build.h.
Referenced by BuildEdgeFinished(), and BuildEdgeStarted().
|
private |
Time the build started.
Definition at line 212 of file build.h.
Referenced by BuildEdgeFinished(), and BuildEdgeStarted().
|
private |
Definition at line 214 of file build.h.
Referenced by BuildEdgeStarted(), and FormatProgressStatus().
|
private |
Definition at line 214 of file build.h.
Referenced by FormatProgressStatus(), and PlanHasTotalEdges().