Ninja
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
 CAnsiColorSequenceIterator
 CBuildConfigOptions (e.g. verbosity, parallelism) passed to a build
 CBuilderBuilder wraps the build process: starting commands, updating status
 CBuildLogStore a log of every command ran for every build
 CBuildLogUserCan answer questions about the manifest for the BuildLog
 CBuildTest
 CBuildWithDepsLogTestTests of builds involving deps logs necessarily must span multiple builds
 CBuildWithLogTest
 CBuildDryRun
 CBuildWithQueryDepsLogTest
 CNoDeadPaths
 CCleaner
 CJobserver::ClientA Jobserver::Client instance models a client of an external GNU jobserver pool, which can be implemented as a Unix FIFO, or a Windows named semaphore
 CCLParserVisual 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
 CCLWrapperWraps a synchronous execution of a CL subprocess
 CCommandCollectorCollects the transitive set of edges that lead into a given set of starting nodes
 CCommandRunnerCommandRunner is an interface that wraps running the build subcommands
 CFakeCommandRunnerFake implementation of CommandRunner, useful for tests
 CRealCommandRunner
 CCompareEdgesByOutput
 CJobserver::ConfigA Jobserver::Config models how to access or implement a GNU jobserver implementation
 CDependencyScanDependencyScan manages the process of scanning the files in a graph and updating the dirty/outputs_ready state of all the nodes and edges
 CDepfileParserParser for the dependency information emitted by gcc's -M flags
 CDepfileParserOptions
 CDepsLog::Deps
 CDepsLogAs build commands run they can output extra dependency information (e.g
 CDyndepLoaderDyndepLoader loads dynamically discovered dependencies, as referenced via the "dyndep" attribute in build files
 CDyndepsStore dynamically-discovered dependency information for one edge
 CEdgeAn edge in the dependency graph; links between Nodes using Rules
 CEdgeCmp
 CEdgePriorityGreater
 CEdgePriorityLess
 CVirtualFileSystem::EntryAn entry for a single in-memory file
 CEnvAn interface for a scope for variable (e.g. "$foo") lookups
 CBindingEnvAn Env which contains a mapping of variables to values as well as a pointer to a parent scope
 CEdgeEnvAn Env for an Edge, providing $in and $out
 CEvalStringA tokenized string that contains variable references
 CExplanationsA class used to record a list of explanation strings associated with a given 'item' pointer
 CExternalStringHashMap< V >A template for hash_maps keyed by a StringPiece whose string is owned externally (typically by the values)
 CExternalStringHashMap< Node * >
 CExternalStringHashMap< std::unique_ptr< LogEntry > >
 CFileReaderInterface for reading files from disk
 CDiskInterfaceInterface for accessing the disk
 CRealDiskInterfaceImplementation of DiskInterface that actually hits the disk
 CVirtualFileSystemAn implementation of DiskInterface that uses an in-memory representation of disk state
 CGETOPT_LONG_OPTION_T
 CGraphVizRuns the process of creating GraphViz .dot file output
 Cstd::hash< StringPiece >
 CImplicitDepLoaderImplicitDepLoader loads implicit dependencies, as referenced via the "depfile" attribute in build files
 CIncludesNormalizeUtility functions for normalizing include paths on Windows
 CInputsCollectorA class used to collect the transitive set of inputs from a given set of starting nodes
 CJobserverJobserver provides types related to managing a pool of "job slots" using the GNU Make jobserver ptocol described at:
 CLexer
 CLinePrinterPrints lines of text, possibly overprinting previously printed lines if the terminal supports it
 CLineReader
 CBuildLog::LogEntry
 CManifestParserOptions
 Cstd::map
 CDyndepFileStore data loaded from one dyndep file
 Cmatches
 CMetricThe Metrics module is used for the debug mode that dumps timing stats of various actions
 CMetricsThe singleton that stores metrics and prints the report
 CMissingDependencyScanner
 CMissingDependencyScannerDelegate
 CMissingDependencyPrinter
 CMissingDependencyTestDelegate
 CNodeInformation about a node in the dependency graph: the file, whether it's dirty, mtime, etc
 COptionalExplanationsConvenience wrapper for an Explanations pointer, which can be null if no explanations need to be recorded
 CParserBase class for parsers
 CDyndepParserParses dyndep files
 CManifestParserParses .ninja files
 CPlanPlan stores the state of a build plan: what we intend to build, which steps we're ready to execute
 CPoolA pool for delayed edges
 Cstd::priority_queue
 CEdgePriorityQueue
 CCommandRunner::ResultThe result of waiting for a command
 CRuleAn invocable build command and associated metadata (description, etc.)
 CScopedFilePathA class that records a file path and ensures that it is removed on destruction
 CScopedMetricA scoped object for recording a metric across the body of a function
 CScopedTempDir
 CStatusPrinter::SlidingRateInfo
 CJobserver::SlotA Jobserver::Slot models a single job slot that can be acquired from
 CStateGlobal state (file status) for a single run
 CStatusAbstract interface to object that tracks the status of a build: completion fraction, printing updates
 CStatusPrinterImplementation of the Status interface that prints the status as human-readable strings to stdout
 CStopwatchA simple stopwatch which returns the time in seconds since Restart() was called
 CStringPieceStringPiece represents a slice of a string whose memory is managed externally
 CSubprocessSubprocess wraps a single async subprocess
 CSubprocessSetSubprocessSet runs a ppoll/pselect() loop around a set of Subprocesses
 Ctesting::Test
 CDepfileParserTest
 CDyndepParserTest
 CMissingDependencyScannerTest
 CParserTest
 CStateTestWithBuiltinRulesA base test fixture that includes a State object with a builtin "cat" rule
 CBuildTest
 CGraphTest
 CPlanTestFixture for tests involving Plan
 CVisibleInputCharsIterator
 CPool::WeightedEdgeCmp