Re: WAF (Was: build tools)



On Dec 3, 2007 2:21 PM, Nicolas Trangez <eikke eikke com> wrote:
> Need to write up on this, no time now though, sorry. One of the primary
> reasons is the lack of crosscompiling support.

I'm not sure what you mean by lack of crosscompiling support.

Crosscompiling needs very little.

1. A compiler that runs on your host OS, and produces output for some
target OS/arch.
2. A set of dependencies (if any) built for that target OS/arch.
3. A non hardcoded build process that handles the above two steps
without puking.

In XMMS2 we crosscompile to both Linux/ARM and Windows from for
example a Linux host. This is just a matter of telling waf what
compiler to use, pointing to a set of dependencies, and if the
target-OS differs from the host-OS, we have a --target-platform=win32
for example. Based on this the configure checks determine what
.c-files should be included, and what defines should be used, and then
everything builds correctly. It's as simple as that.

> Overall I think waf could
> be used for pretty basic high-level applications and even relatively
> small libraries which do not have lots of configure-time variables (ie
> projects which got a pretty straight-forward autotools setup nowadays
> too), but is not suited (yet?) for more low-level libraries,

Not sure what you mean here. In the XMMS2 project we have a highly
configurable setup. We have 50isch plugins depending on half the
planet, a couple libraries, c/cpp/py/rb/pl/lisp language bindings,
some code generation. Everything depending on anything other than glib
is optional (almost 100% true), so we do have a lot of configure time
variables, with support for building on Linux/BSD/OSX/Windows/Solaris.
All in all a fairly complex setup, without a complex build system.
Compared to building something big like GLib this is a very small
project ofc, but isn't it just more source files, and more options? I
don't see where the complexity arises, but then again, I haven't been
hacking on the GLib (perhaps a stupid example) build system. If a
build system becomes complex to use just because it happens to be a
big project, then bugs should probably be filed that describes those
limitations.

Here is the waf BTS:
http://code.google.com/p/waf/issues/list

> next to the
> fact I'm afraid the lack of documentation of both the internal code and
> end-user docs are killers.

That's why I asked you to add an example that demonstrates typical use
of the feature you added with the above mentioned patch a while back
when you wrote it. It would still be a nice addition.

But yeah, waf really needs more documentation.

-- 
Daniel Svensson, <dsvensson gmail com>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]