GSoC/GCI Archive
Google Code-in 2014 Copyleft Games

Waf: Executable wscript files

completed by: edudev

mentors: Arc Riley

Waf projects use wscript files that describe how the builds should be performed. Those wscript files are actually python files, but they cannot be executed directly. The goal here is to support the direct execution of wscript files to avoid to change the current directory to the project. Instead of

cd /tmp/foo && ./waf
the build should run using
/tmp/foo/wscript
.

Create a testcase in a new folder in the Waf project, for example in playground/wscript_execution, and add a test wscript file containing

#! /usr/bin/env waf
in its header. Locate where the entry point in the Waf script is located, and modify it so that the very first parameter on the command-line (sys.argv[0]) is processed in a particular manner if it ends in 'wscript' and contains separators such as "/". This testcase must be tested on Windows (msys, cygwin) and Linux, and on Python 2 and 3. It will assume that the Waf file is present in the system path.

When done, create a patch by using git-format and submit an enhancement request to the Waf bug tracker on googlecode and post the resulting URL to this task.

While working on this task you should join and remain in #CopyleftGames and #Waf on Freenode to get help, feedback, and guidance from mentors and other developers.

When you've done, post the resulting tool this task.