author Kyle Machulis <>
Fri, 29 Mar 2013 15:12:58 -0700
changeset 137136 0db3022ca2e6bec95897850f797f078464a7f529
parent 130137 7c73b5af624735e5042a40086b45602f3357c0ed
permissions -rw-r--r--
Backout for changeset 03452b187c14 (Bug 855465) due to bustage on a CLOSED TREE; r=qdot


mozbuild is a Python package providing functionality used by Mozilla's
build system.

Modules Overview

* mozbuild.backend -- Functionality for producing and interacting with build
  backends. A build backend is an entity that consumes build system metadata
  (from mozbuild.frontend) and does something useful with it (typically writing
  out files that can be used by a build tool to build the tree).
* mozbuild.compilation -- Functionality related to compiling. This
  includes managing compiler warnings.
* mozbuild.frontend -- Functionality for reading build frontend files
  (what defines the build system) and converting them to data structures
  which are fed into build backends to produce backend configurations.
* mozpack -- Functionality related to packaging builds.


The build system consists of frontend files that define what to do. They
say things like "compile X" "copy Y."

The mozbuild.frontend package contains code for reading these frontend
files and converting them to static data structures. The set of produced
static data structures for the tree constitute the current build

There exist entities called build backends. From a high level, build
backends consume the build configuration and do something with it. They
typically produce tool-specific files such as make files which can be used
to build the tree.

Piecing it all together, we have frontend files that are parsed into data
structures. These data structures are fed into a build backend. The output
from build backends is used by builders to build the tree.