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: