Re: A Gtk's build system ?



Waf is actually pretty good at building stuff for non-Linux platforms (for example, it transparently supports MSVC without the need of VS project files). I'd bet that it may have some issues building for Linux on non popular architectures or weird/old UNIX flavors as it doesn't do the sort of comprehensive checks that autoconf does by default.

Beyond that, the fact that is python based does make the build system more portable across systems, it is certainly more portable than the mashup of bash and unix command line tools that autotools sipts out.

Waf is being used by Samba last time I checked and I am pretty sure they have a wide range of platform and OSes to target so it surely isn't that bad.

However, building Gtk+ is not trivial and I am sure waf is going to require some fixing before it can support a full build, if people want to take on the task of setting up a branch and checking what it would look like, I would be happy to help upstreaming any extensions needed (I have commit rights in the waf repository). On the other hand I wouldn't keep my hopes too high that the Gtk+ maintainers are going to happily move over unless someone shows what major improvements the port would bring.


2014-08-06 22:35 GMT+02:00 Christian Hergert <christian hergert me>:
Sounds like we have some people willing to port the build system to waf!

But seriously, without seeing what it would look like on another system,
this thread can't go much further. Autotools is what it is, and Gtk+ is
one of the most portable pieces of software in our ecosystem.

Making sure that waf runs properly on all of the target systems is going
to take some upfront work. Just because it uses Python doesn't mean it's
portable. Plenty of Python API's return different values based on the
host operating system.

-- Christian


On 08/06/2014 01:01 PM, Krzysztof Kosiński wrote:
> 2014-08-06 21:43 GMT+02:00 Colomban Wendling <lists ban herbesfolles org>:
>> Le 06/08/2014 21:30, Krzysztof Kosiński a écrit :
>>> [Waf] does not require silly lists of files to work
>>
>> If that refers to using globs in the build system files, don't.  Glob
>> showed on many a situation to be the source of various build problems,
>> including, but not limited to, a file to be missing from the source tree
>> (which would not be easily noticeable and would work on the author's
>> setup), or unexpected files to be included in a build.
>
> I am not really convinced by this.
>
> 1. If there are any uncommitted files, version control will tell you about this.
> 2. If you have 'unexpected files' in the source tree, you are doing
> something wrong.
> 3. Another common argument in favor of file lists is determining what
> to include in the tarball. This is only an issue because by default
> Autotools create a giant mess by putting generated files in the same
> directories as the sources (CMake does this as well). Waf always puts
> all generated files in a separate directory, so everything that's not
> in the build directory should be distributed.
>
>> Also, FWIW patterns can generally be used just fine in Autotools -- but
>> again, please, don't use them.
>
> Autotools can't correctly use patterns / wildcards, because it
> requires manually re-running automake whenever a file is added or
> deleted.
> http://www.gnu.org/software/automake/manual/html_node/Wildcards.html
> Waf stores a database of files seen on last build and therefore
> doesn't suffer from this problem.
>
> Regards, Krzysztof
> _______________________________________________
> gtk-devel-list mailing list
> gtk-devel-list gnome org
> https://mail.gnome.org/mailman/listinfo/gtk-devel-list
>
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list gnome org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list



--
Cheers,
Alberto Ruiz


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