On Mon, Feb 11, 2013 at 3:26 PM, Kevin Ollivier <kev...@theolliviers.com> wrote:
>
> On Feb 11, 2013, at 2:01 PM, Martin Robinson wrote:
>
>> On Mon, Feb 11, 2013 at 1:41 PM, Kevin Ollivier <kev...@theolliviers.com> 
>> wrote:
>>
>>> 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 machi
 n
>  es it might be a couple seconds. For me, it's negligible given the benefit I 
> get from it.
>>
>> If I understand correctly, gyp is also capable of this kind of
>> wildcard inclusion and exclusion. This will be the tool that allows
>> the gyp build to be shared among many ports with the same source
>> lists.
>
> Yes, but that is not what I see when I check, say, 
> Source/WebCore/WebCore.gypi. Which, BTW, has had around 500 revisions in it 
> over the past 6 months in comparison to the ~10 lines of changes to source 
> files in my patch-in-progress. So while gyp itself might have that feature in 
> it, for whatever reason, the WebKit projects do not utilize that feature 
> right now, so in practice, a switch to gyp means a switch away from 
> rule-based compilation.
>

There's two different things going on here: ease of maintenance, and
reproducibility. Using wildcards in the (meta-)build file itself can
make things easier but make it harder to get reproducible builds since
you might accidentally include files in the tree you didn't want.

When you're on a minority port, having wildcards certainly makes your
life easier because you don't have to track every change we make
explicitly, and it's probably easier for you to ensure you're doing
things correctly in your own checkouts, so you don't have to worry
about reproducibility as much.

On the other hand, if you were to convert to using the same gypi files
we were using, then you wouldn't have to track every change we make,
either; you'd get them for free.

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

Reply via email to