michael@0: ======== michael@0: mozbuild michael@0: ======== michael@0: michael@0: mozbuild is a Python package providing functionality used by Mozilla's michael@0: build system. michael@0: michael@0: Modules Overview michael@0: ================ michael@0: michael@0: * mozbuild.backend -- Functionality for producing and interacting with build michael@0: backends. A build backend is an entity that consumes build system metadata michael@0: (from mozbuild.frontend) and does something useful with it (typically writing michael@0: out files that can be used by a build tool to build the tree). michael@0: * mozbuild.compilation -- Functionality related to compiling. This michael@0: includes managing compiler warnings. michael@0: * mozbuild.frontend -- Functionality for reading build frontend files michael@0: (what defines the build system) and converting them to data structures michael@0: which are fed into build backends to produce backend configurations. michael@0: * mozpack -- Functionality related to packaging builds. michael@0: michael@0: Overview michael@0: ======== michael@0: michael@0: The build system consists of frontend files that define what to do. They michael@0: say things like "compile X" "copy Y." michael@0: michael@0: The mozbuild.frontend package contains code for reading these frontend michael@0: files and converting them to static data structures. The set of produced michael@0: static data structures for the tree constitute the current build michael@0: configuration. michael@0: michael@0: There exist entities called build backends. From a high level, build michael@0: backends consume the build configuration and do something with it. They michael@0: typically produce tool-specific files such as make files which can be used michael@0: to build the tree. michael@0: michael@0: Piecing it all together, we have frontend files that are parsed into data michael@0: structures. These data structures are fed into a build backend. The output michael@0: from build backends is used by builders to build the tree. michael@0: