Re: WAF (Was: build tools)
- From: "Daniel Svensson" <dsvensson gmail com>
- To: desktop-devel-list gnome org
- Subject: Re: WAF (Was: build tools)
- Date: Mon, 3 Dec 2007 15:37:31 +0100
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
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
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
Here is the waf BTS:
> 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>
] [Thread Prev