| BindingEnv | An Env which contains a mapping of variables to values as well as a pointer to a parent scope |
| BuildConfig | Options (e.g. verbosity, parallelism) passed to a build |
| BuildDryRun | |
| Builder | Builder wraps the build process: starting commands, updating status |
| BuildLog | Store a log of every command ran for every build |
| BuildStatus | Tracks the status of a build: completion fraction, printing updates |
| BuildTest | |
| BuildWithDepsLogTest | Tests of builds involving deps logs necessarily must span multiple builds |
| BuildWithLogTest | |
| Cleaner | |
| CleanTest | |
| CLParser | Visual Studio's cl.exe requires some massaging to work with Ninja; for example, it emits include information on stderr in a funny format when building with /showIncludes |
| CLWrapper | Wraps a synchronous execution of a CL subprocess |
| CommandRunner | CommandRunner is an interface that wraps running the build subcommands |
| DependencyScan | DependencyScan manages the process of scanning the files in a graph and updating the dirty/outputs_ready state of all the nodes and edges |
| DepfileParser | Parser for the dependency information emitted by gcc's -M flags |
| DepfileParserTest | |
| DepsLog::Deps | |
| DepsLog | As build commands run they can output extra dependency information (e.g |
| DiskInterface | Interface for accessing the disk |
| Edge | An edge in the dependency graph; links between Nodes using Rules |
| EdgeEnv | An Env for an Edge, providing $in and $out |
| VirtualFileSystem::Entry | An entry for a single in-memory file |
| Env | An interface for a scope for variable (e.g. "$foo") lookups |
| EvalString | A tokenized string that contains variable references |
| ExternalStringHashMap< V > | A template for hash_maps keyed by a StringPiece whose string is owned externally (typically by the values) |
| FakeCommandRunner | Fake implementation of CommandRunner, useful for tests |
| ManifestParser::FileReader | |
| GETOPT_LONG_OPTION_T | |
| GraphTest | |
| GraphViz | Runs the process of creating GraphViz .dot file output |
| __gnu_cxx::hash< std::string > | |
| __gnu_cxx::hash< StringPiece > | |
| ImplicitDepLoader | ImplicitDepLoader loads implicit dependencies, as referenced via the "depfile" attribute in build files |
| IncludesNormalize | Utility functions for normalizing include paths on Windows |
| LaconicPrinter | A test result printer that's less wordy than gtest's default |
| Lexer | |
| LinePrinter | Prints lines of text, possibly overprinting previously printed lines if the terminal supports it |
| LineReader | |
| BuildLog::LogEntry | |
| ManifestParser | Parses .ninja files |
| Metric | The Metrics module is used for the debug mode that dumps timing stats of various actions |
| Metrics | The singleton that stores metrics and prints the report |
| Node | Information about a node in the dependency graph: the file, whether it's dirty, mtime, etc |
| ParserTest | |
| Plan | Plan stores the state of a build plan: what we intend to build, which steps we're ready to execute |
| PlanTest | Fixture for tests involving Plan |
| Pool | A pool for delayed edges |
| BuildStatus::RateInfo | |
| RealCommandRunner | |
| RealDiskInterface | Implementation of DiskInterface that actually hits the disk |
| CommandRunner::Result | The result of waiting for a command |
| Rule | An invokable build command and associated metadata (description, etc.) |
| ScopedMetric | A scoped object for recording a metric across the body of a function |
| ScopedTempDir | |
| BuildStatus::SlidingRateInfo | |
| State | Global state (file status, loaded rules) for a single run |
| StateTestWithBuiltinRules | A base test fixture that includes a State object with a builtin "cat" rule |
| Stopwatch | A simple stopwatch which returns the time in seconds since Restart() was called |
| StringPiece | StringPiece represents a slice of a string whose memory is managed externally |
| Subprocess | Subprocess wraps a single async subprocess |
| SubprocessSet | SubprocessSet runs a ppoll/pselect() loop around a set of Subprocesses |
| VirtualFileSystem | An implementation of DiskInterface that uses an in-memory representation of disk state |