Name Description Size
__init__.py 1116
base.py Abstract base class for build backends. A build backend is merely a consumer of the build configuration (the output of the frontend processing). It does something with said data. What exactly is the discretion of the specific implementation. 14001
cargo_build_defs.py 3803
clangd.py Configuration that generates the backend for clangd, it is used with `clangd` extension for vscode 1944
common.py Helps manage XPCOM IDLs in the context of the build system. 22810
configenvironment.py Error loading config.status 13135
cpp_eclipse.py Backend that generates Cpp Eclipse project files. 47935
fastermake.py 12387
mach_commands.py 12713
make.py Class encapsulating logic for backends that use Make. 5582
recursivemake.py Represents a generated backend.mk file. This is both a wrapper around a file handle as well as a container that holds accumulated state. It's worth taking a moment to explain the make dependencies. The generated backend.mk as well as the Makefile.in (if it exists) are in the GLOBAL_DEPS list. This means that if one of them changes, all targets in that Makefile are invalidated. backend.mk also depends on all of its input files. It's worth considering the effect of file mtimes on build behavior. Since we perform an "all or none" traversal of moz.build files (the whole tree is scanned as opposed to individual files), if we were to blindly write backend.mk files, the net effect of updating a single mozbuild file in the tree is all backend.mk files have new mtimes. This would in turn invalidate all make targets across the whole tree! This would effectively undermine incremental builds as any mozbuild change would cause the entire tree to rebuild! The solution is to not update the mtimes of backend.mk files unless they actually change. We use FileAvoidWrite to accomplish this. 79959
static_analysis.py 1995
test_manifest.py Partial backend that generates test metadata files. 4099
visualstudio.py Generate Visual Studio project files. This backend is used to produce Visual Studio projects and a solution to foster developing Firefox with Visual Studio. This backend is currently considered experimental. There are many things not optimal about how it works. 25973