[webkit-dev] Build system update

Maciej Stachowiak mjs at apple.com
Thu Mar 24 01:30:41 PDT 2011

On Mar 24, 2011, at 12:28 AM, Adam Barth wrote:

> On Wed, Mar 23, 2011 at 8:46 PM, Maciej Stachowiak <mjs at apple.com> wrote:
>> On Mar 23, 2011, at 3:33 AM, Adam Barth wrote:
>>> From my perspective, approach (2) is more desirable than checking in
>>> generated project files because approach (2) encapsulates
>>> Apple-internal build process to Apple folks, more specifically to the
>>> Apple folks who interact with the Apple-internal build system.
>>> Checking in generated project files, on the other hand, imposes a
>>> maintenance burden on all WebKit contributors.
>> I believe Apple submissions generally happen with greater frequency than the rate at which new files are added to the project. Furthermore: When files are added to the project, the patch submitted must already run the tool to regenerate projects, and is already going to submit a patch, so the maintenance burden of the Xcode projects being checked in is low. But having to regenerate project files and then check them in on a branch adds extra steps, doing things that are not done in the normal course of development, and therefore may have bitrotted.
> Thanks, that's helpful information.  Looking at
> <http://trac.webkit.org/log/trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj>,
> it looks like files are added to the project on the order of once a
> day.

I slightly underestimated how often files are added to the project (no wonder our build has gotten so slow!), but the rate is similar.

(Side note: it looks like 382 files have been added to the WebCore build over the past year, a ~25% growth rate - if this rate continues, we are in big trouble.)

>> I don't think you are going to get Apple folks enthusiastic about switching to a build system that creates significantly more work for us, on the basis that it saves everyone else a small amount of work. For that matter, slowing down the pace of Apple engineers' development would be a bad thing for the project overall, not just for Apple.
> I certainly have no desire to slow down the pace of development for
> anyone.  My overarching goal here is to increase developer
> productivity for everyone by removing the need to learn and correctly
> modify N build systems just to add, remove, or move a file.
> From this discussion, it sounds like folks are generally comfortable
> with replacing the existing xcodeproj files with ones generated by
> GYP.  Before taking that step, I'm going to spend some more time
> polishing the GYP-generated xcodeproj files, hopefully addressing some
> of Mark's concerns.  (I'm also told there are some scheduling issues,
> which I'm happy to accomodate.)
> I'm slightly skeptical that checking in generated files will scale as
> we unify more of the build systems, but we can cross that bridge when
> we come to it.

Other ports probably do not have so many strange requirements driven by an external build system, so I'm not sure it will be as necessary. That being said the average WebKit developer updates or builds much more often than he or she changes a project file, so it may be the right tradeoff to save people the most total time.


More information about the webkit-dev mailing list