1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/build/docs/mozbuild/index.rst Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,41 @@ 1.4 +======== 1.5 +mozbuild 1.6 +======== 1.7 + 1.8 +mozbuild is a Python package providing functionality used by Mozilla's 1.9 +build system. 1.10 + 1.11 +Modules Overview 1.12 +================ 1.13 + 1.14 +* mozbuild.backend -- Functionality for producing and interacting with build 1.15 + backends. A build backend is an entity that consumes build system metadata 1.16 + (from mozbuild.frontend) and does something useful with it (typically writing 1.17 + out files that can be used by a build tool to build the tree). 1.18 +* mozbuild.compilation -- Functionality related to compiling. This 1.19 + includes managing compiler warnings. 1.20 +* mozbuild.frontend -- Functionality for reading build frontend files 1.21 + (what defines the build system) and converting them to data structures 1.22 + which are fed into build backends to produce backend configurations. 1.23 +* mozpack -- Functionality related to packaging builds. 1.24 + 1.25 +Overview 1.26 +======== 1.27 + 1.28 +The build system consists of frontend files that define what to do. They 1.29 +say things like "compile X" "copy Y." 1.30 + 1.31 +The mozbuild.frontend package contains code for reading these frontend 1.32 +files and converting them to static data structures. The set of produced 1.33 +static data structures for the tree constitute the current build 1.34 +configuration. 1.35 + 1.36 +There exist entities called build backends. From a high level, build 1.37 +backends consume the build configuration and do something with it. They 1.38 +typically produce tool-specific files such as make files which can be used 1.39 +to build the tree. 1.40 + 1.41 +Piecing it all together, we have frontend files that are parsed into data 1.42 +structures. These data structures are fed into a build backend. The output 1.43 +from build backends is used by builders to build the tree. 1.44 +