Name Description Size
__init__.py 0
context.py This module contains the data structure (context) holding the configuration from a moz.build. The data emitted by the frontend derives from those contexts. It also defines the set of variables and functions available in moz.build. If you are looking for the absolute authority on what moz.build files can contain, you've come to the right place. 108991
data.py Data structures representing Mozilla's source tree. The frontend files are parsed into static data structures. These data structures are defined in this module. All data structures of interest are children of the TreeMetadata class. Logic for populating these data structures is not defined in this class. Instead, what we have here are dumb container classes. The emitter module contains the code for converting executed mozbuild files into these data structures. 42290
emitter.py Converts the executed mozbuild files into data structures. This is a bridge between reader.py and data.py. It takes what was read by reader.BuildReader and converts it into the classes defined in the data module. 79169
gyp_reader.py Specialized Context for use with data extracted from Gyp. config is the ConfigEnvironment for this context. relobjdir is the object directory that will be used for this context, relative to the topobjdir defined in the ConfigEnvironment. 20630
mach_commands.py Represents an error due to an invalid path. 10766
reader.py Read build frontend files into data structures. In terms of code architecture, the main interface is BuildReader. BuildReader starts with a root mozbuild file. It creates a new execution environment for this file, which is represented by the Sandbox class. The Sandbox class is used to fill a Context, representing the output of an individual mozbuild file. The The BuildReader contains basic logic for traversing a tree of mozbuild files. It does this by examining specific variables populated during execution. 53033
sandbox.py Python sandbox implementation for build files. This module contains classes for Python sandboxes that execute in a highly-controlled environment. The main class is `Sandbox`. This provides an execution environment for Python code and is used to fill a Context instance for the takeaway information from the execution. Code in this module takes a different approach to exception handling compared to what you'd see elsewhere in Python. Arguments to built-in exceptions like KeyError are machine parseable. This machine-friendly data is used to present user-friendly error messages in the case of errors. 11321