|
1 ======== |
|
2 mozbuild |
|
3 ======== |
|
4 |
|
5 mozbuild is a Python package providing functionality used by Mozilla's |
|
6 build system. |
|
7 |
|
8 Modules Overview |
|
9 ================ |
|
10 |
|
11 * mozbuild.backend -- Functionality for producing and interacting with build |
|
12 backends. A build backend is an entity that consumes build system metadata |
|
13 (from mozbuild.frontend) and does something useful with it (typically writing |
|
14 out files that can be used by a build tool to build the tree). |
|
15 * mozbuild.compilation -- Functionality related to compiling. This |
|
16 includes managing compiler warnings. |
|
17 * mozbuild.frontend -- Functionality for reading build frontend files |
|
18 (what defines the build system) and converting them to data structures |
|
19 which are fed into build backends to produce backend configurations. |
|
20 * mozpack -- Functionality related to packaging builds. |
|
21 |
|
22 Overview |
|
23 ======== |
|
24 |
|
25 The build system consists of frontend files that define what to do. They |
|
26 say things like "compile X" "copy Y." |
|
27 |
|
28 The mozbuild.frontend package contains code for reading these frontend |
|
29 files and converting them to static data structures. The set of produced |
|
30 static data structures for the tree constitute the current build |
|
31 configuration. |
|
32 |
|
33 There exist entities called build backends. From a high level, build |
|
34 backends consume the build configuration and do something with it. They |
|
35 typically produce tool-specific files such as make files which can be used |
|
36 to build the tree. |
|
37 |
|
38 Piecing it all together, we have frontend files that are parsed into data |
|
39 structures. These data structures are fed into a build backend. The output |
|
40 from build backends is used by builders to build the tree. |
|
41 |