Hi Martin,

On Feb 11, 2013, at 12:47 PM, Martin Robinson wrote:

> On Mon, Feb 11, 2013 at 11:27 AM, Kevin Ollivier
> <kev...@theolliviers.com> wrote:
> 
>> The project is not dead per-se, but it's true that it's not very active
>> these days. Recently, I haven't had a lot of time to devote to the port. The
>> other big factor has been that I've been the only active contributor to the
>> port pretty much since its inception, which has made patch submission pretty
>> difficult due to the challenge of finding a reviewer with knowledge of the
>> wx code. As a result, the wx activity on trunk will look pretty sparse since
>> I'm making most of my changes on the wx port's git repo on gitorious.org
>> rather than submitting patches for trunk. When it comes to trunk, I
>> basically just periodically submit build fixes for any build breakages in
>> order to merge and update my git mirror.
> 
> Regardless of whether the Wx port stays in the tree, I think you
> should consider changing your build system. I believe the only port
> that uses waf is Wx, so using cmake or gyp will make your work a lot
> easier.

Actually, it will, if anything, increase the workload. Because I use waf, I am 
able to use Python to auto-generate the list of sources to build. In other 
words, I tell it to build all sources in a defined list of base source 
directories, along with all sources in baseDirectory/portName subdirs (where in 
this case I set portName to wx) and FileName<portName>.cpp (e.g. FileNameWX.cpp 
if the port is wx), along with some additional similar rules for USE defines, 
like CF. Then if there are exceptions to these rules, I just filter them out of 
the results or explicitly add files when I need to, say if I need to compile a 
single Mac port source file. Since the WebKit tree is well-structured, this 
approach works quite well, with me having to define exceptions fairly rarely. 
The main issue I run into seems to be derived sources files that are no longer 
built / used but are still being generated. The performance hit of this is 
about 1 added second to my build, though on slower machines 
 it might be a couple seconds. For me, it's negligible given the benefit I get 
from it.

As an example, I'm still at the linking phase right now on Mac (dealing with 
the removal of the libWebKitLibrarySnowLeopard.a and a couple other things), 
but my patch so far to catch up with 6 months of changes in trunk is right now 
at 19KB, and about 30 lines or so of that is actually the build system changes. 
The number of exceptions I needed to add to the build over that time is 4, and 
I added about as many build directories to the list as well. I suspect if we 
were to accumulate the changes to cmake and gyp files over those 6 months, it 
will probably be well above 30-40 lines. Sure, I wouldn't have written all 
those lines myself, but sharing work with other developers is still more work 
for any individual developer than having the computer do the work for you. :)

Everyone tells me how great cmake and gyp is, but I'm not sure any of them have 
taken any time out to actually investigate whether or not waf is as good as or 
better than their preferred tool. (It's not as good as auto-generating project 
files, but it's also in Python so integrating it with gyp would probably be a 
simple task.) I've often wanted to take some time out to get other ports 
building with it, as it probably would take a day or two at most, but I lack 
both the time and expertise in other ports to spend much time on that. Much of 
the code in there already is port-agnostic, with most wx-specific bits in a 
port_name == "wx" check, but of course there's the issue of the various 
port-specific build configurations and such for each port.

Regards,

Kevin

> --Martin

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to