Fork of waf with some random patches. (old repo, will be removed shortly)
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
 
 
 
Go to file
Thomas Nagy 6574fd7e40
waf 1.9.0 p3
10 years ago
build_system_kit Tuples in startswith/endswith (Python 2.5 feature) 10 years ago
demos docs 10 years ago
docs Remove print_all_msvc_detected 10 years ago
playground Add a Qt5 example 10 years ago
tests Add a build function to the 'install' tests for consistency 10 years ago
utils Update use_config - Issue 1608 10 years ago
waflib waf 1.9.0 p3 10 years ago
zip waf-zip: zip-packed waf 12 years ago
.gitignore Initial impl. for Xcode 6 - basic tests 10 years ago
ChangeLog waf 1.9.0 p3 10 years ago
DEVEL docs 10 years ago
README.md Rewrite ConfigSet._get_list_value_for_modification 10 years ago
TODO Cleanup 10 years ago
configure Update use_config - Issue 1608 10 years ago
waf-light waf 1.9.0 p3 10 years ago
wscript cleanup 10 years ago

README.md

ABOUT 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 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)
  • 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
  • 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 and in the API docs
  • Python compatibility: cPython 2.5 to 3.4, Jython 2.5, IronPython, and Pypy

Waf is used in particular by innovative companies such as Avalanche Studios and by open-source projects such as the Samba project. Learn more about Waf by reading The Waf Book.

For researchers and build system writers, Waf also provides a framework for creating custom build systems and package distribution systems.

Download the project from our page on waf.io or from the mirror on freehackers.org, consult the manual, the API documentation and the showcases and experiments.

HOW TO CREATE THE WAF SCRIPT

Python >= 2.6 is required to generate the waf script, and the resulting file can then run on Python 2.5. Just execute:

$ ./waf-light configure build

Or, if you have several python versions installed:

$ python3 ./waf-light configure build

The Waf tools in waflib/extras are not added to the waf script. To add some of them, use the --tools switch:

$ ./waf-light --tools=compat15,swig

To add a tool that does not exist in the folder extras, pass an absolute path, and to customize the initialization, pass the parameter 'prelude'. Here is for example how to create a waf file using the compat15 module:

$ ./waf-light --tools=compat15 --prelude=$'\tfrom waflib.extras import compat15\n'

Any kind of initialization is possible, though one may prefer the build system kit (folder build_system_kit):

$ ./waf-light --make-waf --tools=compat15,/comp/waf/aba.py --prelude=$'\tfrom waflib.extras import compat15\n\tprint("ok")'

Or, to avoid regenerating the waf file all the time, just set the WAFDIR environment variable to the directory containing "waflib".

HOW TO TRY THE EXAMPLES

Try this:

cp waf demos/c/
cd demos/c/
./waf configure build