2
0
mirror of https://gitlab.com/ita1024/waf.git synced 2024-11-25 11:19:52 +01:00
Go to file
James Harris 9599cc532f task: winres: allow tasks to disable @argsfile
Not all tools executed by tasks support the '@argsfile' syntax for
shunting commandline arguments to a file. This means that if such
commands are shunted to a file early, he command will not work. On
windows the rc.exe command is such an example, but some tools on linux
have similar limitations. In the posix case, we artifically limit our
commandline size because it is difficult/variable to caluclate what the
actual limit is (it is partially dependent on environment size). This
could artifically cause commands to fail due to commandline length when
they otherwise wouldn't.

This patch fixes this issue by adding the 'allow_argsfile' flag to the
task. This way certain task instances will be able to specify if they
are compatible with the '@argsfile' syntax or not.
2019-02-19 12:48:04 -06:00
.pipelines Add a pipelines file 2019-01-21 07:30:19 +01:00
build_system_kit Fix a few deprecation warnings 2019-01-16 06:51:14 +01:00
demos Use .pipelines/Jenkinsfile instead of demos/wscript 2019-01-22 08:08:55 +01:00
docs Update GitHub URLs for GitLab equivalents 2018-07-08 14:53:13 -04:00
playground added stubs/ to lib search paths 2019-02-13 23:40:47 +00:00
tests Remove the exception raised by tests/install/wscript 2018-09-27 19:25:36 +02:00
utils Fix all DeprecationWarning: invalid escape sequence 2019-01-05 12:02:42 +01:00
waflib task: winres: allow tasks to disable @argsfile 2019-02-19 12:48:04 -06:00
zip iso8859-1 -> latin-1 2017-01-21 13:28:06 +01:00
.gitignore Ignore temporary directories created when using Python 3 2018-07-08 14:58:47 -04:00
ChangeLog waf-2.0.14 2018-12-23 11:52:46 +01:00
configure Update use_config - Issue 1608 2015-08-29 10:31:02 +02:00
DEVEL Update GitHub URLs for GitLab equivalents 2018-07-08 14:53:13 -04:00
README.md Update GitHub URLs for GitLab equivalents 2018-07-08 14:53:13 -04:00
TODO docs 2018-08-16 23:30:05 +02:00
waf-light waf-2.0.14 2018-12-23 12:12:15 +01:00
wscript Fix a few deprecation warnings 2019-01-16 06:51:14 +01:00

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 RTEMS. 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 a 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 run:

$ ./waf-light configure build

Or, if several python versions are 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. An absolute path can be passed if the module does not exist under the 'extras' folder:

$ ./waf-light --tools=swig

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'

Although any kind of initialization is possible, using the build system kit may be easier (folder build_system_kit):

$ ./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".

HOW TO RUN THE EXAMPLES

Try this:

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