2
0
mirror of https://gitlab.com/ita1024/waf.git synced 2024-11-21 17:35:55 +01:00

Minor docs improvement

This commit is contained in:
swaldhoer 2024-03-29 10:44:14 +00:00 committed by Waf Project
parent 39413bedfd
commit 974d0589fd
2 changed files with 17 additions and 15 deletions

1
DEVEL
View File

@ -38,4 +38,3 @@ or in playground/ for modules under waflib/extras.
The files under waflib/Tools/ are kept API-compatible for the duration The files under waflib/Tools/ are kept API-compatible for the duration
of a middle version (currently 2.0). of a middle version (currently 2.0).

View File

@ -1,15 +1,15 @@
## ABOUT WAF # ABOUT WAF
Waf is a Python-based framework for configuring, compiling and installing applications. Here are perhaps the most important features of Waf: Waf is a Python-based framework for configuring, compiling and installing applications. Here are perhaps the most important features of Waf:
* *Automatic build order*: the build order is computed from input and output files, among others * *Automatic build order*: the build order is computed from input and output files, among others
* *Automatic dependencies*: tasks to execute are detected by hashing files and commands * *Automatic dependencies*: tasks to execute are detected by hashing files and commands
* *Performance*: tasks are executed in parallel automatically, the startup time is meant to be fast (separation between configuration and build) * *Performance*: tasks are executed in parallel automatically, the startup time is meant to be fast (separation between configuration and build)
* *Flexibility*: new commands and tasks can be added very easily through subclassing, bottlenecks for specific builds can be eliminated through dynamic method replacement * *Flexibility*: new commands and tasks can be added very easily through subclassing, bottlenecks for specific builds can be eliminated through dynamic method replacement
* *Extensibility*: though many programming languages and compilers are already supported by default, many others are available as extensions * *Extensibility*: though many programming languages and compilers are already supported by default, many others are available as extensions
* *IDE support*: Eclipse, Visual Studio and Xcode project generators (`waflib/extras/`) * *IDE support*: Eclipse, Visual Studio and Xcode project generators (`waflib/extras/`)
* *Documentation*: the application is based on a robust model documented in [The Waf Book](https://waf.io/book/) and in the [API docs](https://waf.io/apidocs/) * *Documentation*: the application is based on a robust model documented in [The Waf Book](https://waf.io/book/) and in the [API docs](https://waf.io/apidocs/)
* *Python compatibility*: cPython 2.5 to 3.x, Jython 2.5, IronPython, and Pypy * *Python compatibility*: cPython 2.5 to 3.x, Jython 2.5, IronPython, and PyPy
Learn more about Waf by reading [The Waf Book](https://waf.io/book/). For researchers and build system writers, Waf also provides a framework and examples for creating [custom build systems](https://gitlab.com/ita1024/waf/tree/master/build_system_kit) and [package distribution systems](https://gitlab.com/ita1024/waf/blob/master/playground/distnet/README.rst). Learn more about Waf by reading [The Waf Book](https://waf.io/book/). For researchers and build system writers, Waf also provides a framework and examples for creating [custom build systems](https://gitlab.com/ita1024/waf/tree/master/build_system_kit) and [package distribution systems](https://gitlab.com/ita1024/waf/blob/master/playground/distnet/README.rst).
@ -20,7 +20,7 @@ Download the project from our page on [waf.io](https://waf.io/), consult the [ma
Python >= 2.7 is required to generate the waf script: Python >= 2.7 is required to generate the waf script:
```sh ```sh
$ python ./waf-light configure build python ./waf-light configure build
``` ```
## CUSTOMIZATION ## CUSTOMIZATION
@ -28,20 +28,23 @@ $ python ./waf-light configure build
The Waf tools in waflib/extras are not added to the waf script. To add The Waf tools in waflib/extras are not added to the waf script. To add
some of them, use the --tools switch. An absolute path can be passed some of them, use the --tools switch. An absolute path can be passed
if the module does not exist under the 'extras' folder: if the module does not exist under the 'extras' folder:
```sh ```sh
$ ./waf-light --tools=swig ./waf-light --tools=swig
``` ```
To customize the initialization, pass the parameter 'prelude'. Here is for example To customize the initialization, pass the parameter 'prelude'. Here is for example
how to create a waf file using the compat15 module: how to create a waf file using the compat15 module:
```sh ```sh
$ ./waf-light --tools=compat15 --prelude=$'\tfrom waflib.extras import compat15\n' ./waf-light --tools=compat15 --prelude=$'\tfrom waflib.extras import compat15\n'
``` ```
Although any kind of initialization is possible, using the build system kit Although any kind of initialization is possible, using the build system kit
may be easier (folder build\_system\_kit): may be easier (folder build\_system\_kit):
```sh ```sh
$ ./waf-light --make-waf --tools=compat15,/comp/waf/aba.py --prelude=$'\tfrom waflib.extras import compat15\n\tprint("ok")' ./waf-light --make-waf --tools=compat15,/comp/waf/aba.py --prelude=$'\tfrom waflib.extras import compat15\n\tprint("ok")'
``` ```
To avoid regenerating the waf file all the time, just set the `WAFDIR` environment variable to the directory containing "waflib". To avoid regenerating the waf file all the time, just set the `WAFDIR` environment variable to the directory containing "waflib".
@ -49,9 +52,9 @@ To avoid regenerating the waf file all the time, just set the `WAFDIR` environme
## HOW TO RUN THE EXAMPLES ## HOW TO RUN THE EXAMPLES
Try this: Try this:
```sh ```sh
cp waf demos/c/ cp waf demos/c/
cd demos/c/ cd demos/c/
./waf configure build ./waf configure build
``` ```