Ninja
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
BindingEnvAn Env which contains a mapping of variables to values as well as a pointer to a parent scope
BuildConfigOptions (e.g. verbosity, parallelism) passed to a build
BuildDryRun
BuilderBuilder wraps the build process: starting commands, updating status
BuildLogStore a log of every command ran for every build
BuildStatusTracks the status of a build: completion fraction, printing updates
BuildTest
BuildWithDepsLogTestTests of builds involving deps logs necessarily must span multiple builds
BuildWithLogTest
Cleaner
CleanTest
CLParserVisual 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
CLWrapperWraps a synchronous execution of a CL subprocess
CommandRunnerCommandRunner is an interface that wraps running the build subcommands
DependencyScanDependencyScan manages the process of scanning the files in a graph and updating the dirty/outputs_ready state of all the nodes and edges
DepfileParserParser for the dependency information emitted by gcc's -M flags
DepfileParserTest
DepsLog::Deps
DepsLogAs build commands run they can output extra dependency information (e.g
DiskInterfaceInterface for accessing the disk
EdgeAn edge in the dependency graph; links between Nodes using Rules
EdgeEnvAn Env for an Edge, providing $in and $out
VirtualFileSystem::EntryAn entry for a single in-memory file
EnvAn interface for a scope for variable (e.g. "$foo") lookups
EvalStringA 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)
FakeCommandRunnerFake implementation of CommandRunner, useful for tests
ManifestParser::FileReader
GETOPT_LONG_OPTION_T
GraphTest
GraphVizRuns the process of creating GraphViz .dot file output
__gnu_cxx::hash< std::string >
__gnu_cxx::hash< StringPiece >
ImplicitDepLoaderImplicitDepLoader loads implicit dependencies, as referenced via the "depfile" attribute in build files
IncludesNormalizeUtility functions for normalizing include paths on Windows
LaconicPrinterA test result printer that's less wordy than gtest's default
Lexer
LinePrinterPrints lines of text, possibly overprinting previously printed lines if the terminal supports it
LineReader
BuildLog::LogEntry
ManifestParserParses .ninja files
MetricThe Metrics module is used for the debug mode that dumps timing stats of various actions
MetricsThe singleton that stores metrics and prints the report
NodeInformation about a node in the dependency graph: the file, whether it's dirty, mtime, etc
ParserTest
PlanPlan stores the state of a build plan: what we intend to build, which steps we're ready to execute
PlanTestFixture for tests involving Plan
PoolA pool for delayed edges
BuildStatus::RateInfo
RealCommandRunner
RealDiskInterfaceImplementation of DiskInterface that actually hits the disk
CommandRunner::ResultThe result of waiting for a command
RuleAn invokable build command and associated metadata (description, etc.)
ScopedMetricA scoped object for recording a metric across the body of a function
ScopedTempDir
BuildStatus::SlidingRateInfo
StateGlobal state (file status, loaded rules) for a single run
StateTestWithBuiltinRulesA base test fixture that includes a State object with a builtin "cat" rule
StopwatchA simple stopwatch which returns the time in seconds since Restart() was called
StringPieceStringPiece represents a slice of a string whose memory is managed externally
SubprocessSubprocess wraps a single async subprocess
SubprocessSetSubprocessSet runs a ppoll/pselect() loop around a set of Subprocesses
VirtualFileSystemAn implementation of DiskInterface that uses an in-memory representation of disk state