Table of Contents
Waf is based on 12 modules which constitute the core library. They are located in the directory wafadmin/. The modules located under wafadmin/Tools add support for programming languages and more tools, but are not essential for the Waf core.
Table 12.1. The core library
| Module | Role |
|---|---|
| Build | Defines the build context class, which holds the data for one build (paths, configuration data) |
| Configure | Contains the configuration context class, which is used for launching configuration tests, and the extension system |
| Constants | Provides the constants used in the project |
| Environment | Contains a dictionary class which supports a lightweight copy scheme and provides persistence services |
| Logs | Provide a logging system |
| Node | Contains the file system representation class |
| Options | Provides a custom command-line option processing system based on optparse |
| Runner | Contains the task execution system (threaded producer-consumer) |
| Scripting | Constitutes the entry point of the Waf application, use the command-line for launching the configuration, the build, etc |
| TaskGen | Provide the task generator system, and its extension system based on method addition |
| Task | Contains the task classes, and the task containers. |
| Utils | Contains the support functions and classes re-used in other Waf modules |
The essential classes and methods from the core library are represented on the following diagram:
