[webkit-dev] Towards a unified build system

Adam Barth abarth at webkit.org
Tue Mar 1 15:19:41 PST 2011

On Tue, Mar 1, 2011 at 3:09 PM, Mark Rowe <mrowe at apple.com> wrote:
> On 2011-03-01, at 15:04, Adam Barth wrote:
>> On Tue, Mar 1, 2011 at 2:46 PM, Mark Rowe <mrowe at apple.com> wrote:
>>> On 2011-03-01, at 14:29, Adam Barth wrote:
>>>> On Tue, Mar 1, 2011 at 2:18 PM, Mark Rowe <mrowe at apple.com> wrote:
>>>>> On 2011-03-01, at 14:06, Adam Barth wrote:
>>>>>> On Tue, Mar 1, 2011 at 1:57 PM, Maciej Stachowiak <mjs at apple.com> wrote:
>>>>>>> On Mar 1, 2011, at 11:07 AM, Adam Barth wrote:
>>>>>>>> On Tue, Mar 1, 2011 at 9:33 AM, Maciej Stachowiak <mjs at apple.com> wrote:
>>>>>>>>> Another consequence of step 3 is it would break submissions to Apple's central build system, since those pull from the repository with vanilla SVN and do not run special scripts afterwards.
>>>>>>>> I don't fully understand the constraints of Apple's central build
>>>>>>>> system.  It might be worthwhile talking over the constraints with
>>>>>>>> someone who's an expert.
>>>>>>>> If the requirements are that the entry point to the build system is an
>>>>>>>> xcodeproj, we can create an xcodeproj with an action that creates the
>>>>>>>> other xcodeproj files and then defers to the generated projects as
>>>>>>>> dependencies.  I haven't tested this approach, but I suspect we'll
>>>>>>>> find something that satisfies the Apple-internal constraints.
>>>>>>> It needs to be either an xcodeproj or a Makefile. Also, all tools required for building have to be either be part of the OS, or part of what is submitted for the given project. So if gyp scripts need to execute at build time, they'd either have to be checked in to the WebKit repository, or get added to Mac OS X.
>>>>>> We can certainly use a Makefile to kick off the build.  The GYP system
>>>>>> itself is just a handful of BSD-licensed Python scripts, so I wouldn't
>>>>>> expect any trouble with checking them into svn.webkit.org.
>>>>> I don't think driving the build via a Makefile is a desirable option.  XBS (what Maciej has been referring to as Apple's central build system) knows how to override Xcode configuration settings for projects that build using Xcode. This ability is useful and sometimes necessary.  It's also not possible to use if a project builds using Make as Makefiles vary so much from project to project.
>>>> This issue relates only to the "how and when to generate the projects"
>>>> phase.  It seems we have at least two feasible solutions (using
>>>> Makefiles and checking in generated projects), so it's mostly a matter
>>>> of thinking of more clever solutions and making desirability
>>>> trade-offs.
>>> Given that you've listed the Makefile as a feasible solution after what I've said above I can only assume that I misunderstand how you intend for it to be used.  Can you expand on how you see that working?
>> Oh, you wrote that it might not be desirable, not that it was
>> infeasible.  I'd classify the status quo as undesirable as well.  At
>> some point, we should have a higher bandwidth discussion about how to
>> make this work.
> It was something of an understatement when I said it was not a desirable option.  It's clearly not ok to make it impossible to use sometimes necessary features of the build system.  I'll try and be clearer in the future.

It's difficult for me to distinguish between feasible in infeasible
options because the XBS is entirely mysterious to me.  However, I'm
sure we'll be able to figure something out if we approach the problem
with a positive frame of mind.


More information about the webkit-dev mailing list