[webkit-dev] Using ninja (was Re:Common build system (was Re: WebKit Wishes))

Hajime Morrita morrita at chromium.org
Mon Feb 4 16:13:39 PST 2013


Editing seems OK if we use GYP or CMake.
You can generate both Xcode and Ninja files against same source tree.
Debugging won't work though, at least for GYP-generated projects.
Its Ninja and Xcode builds have different directly structure.

If Xcode can attach gdb/llldb to an out-of-project executable for
debugging, it might work.
The dwarf debug metadata points the same source code after all.
But I have no idea whether it is possible.

--
morrita


On Tue, Feb 5, 2013 at 5:25 AM, Dirk Pranke <dpranke at chromium.org> wrote:

> The short answer is, you can't.
>
> The fastest path is probably to get a working set of gyp files for the
> apple mac wk2. I'm going to start working on this just to see how far
> of we are (Adam's work from a year or two ago had JSC and WebCore
> building, but wasn't too functional beyond that; even so, it's
> probably a good starting point).
>
> -- Dirk
>
> On Sun, Feb 3, 2013 at 1:22 PM, Dean Jackson <dino at apple.com> wrote:
> > OK, this sounds fantastic. And I've noticed how much faster Chromium
> > incrementally builds using ninja when I've done that.
> >
> > So, ignoring the discussion of a single build system for a moment, how
> > can I, as a developer using the OS X + WK2 port, living mostly
> > in Xcode for editing and debugging, use ninja? I need the idiot's
> > guide :)
> >
> > (Note: I am an idiot, but not so much an idiot to realise that the
> > answer involves lots of work and probably updating some old GYP
> > files that you and Adam were testing with, etc etc. I'm just selfishly
> > thinking that cutting even 30s off each incremental rebuild would make
> > me so much happier that I'd be willing to put up with other
> > inconveniences.)
> >
> > Dean
> >
> > On 03/02/2013, at 4:54 PM, Eric Seidel <eric at webkit.org> wrote:
> >
> >> +1
> >>
> >> Ninja is beyond-words amazing.  http://martine.github.com/ninja/  For
> >> better or worse, it is not designed to use human-editable build files,
> >> but rather to be used by a meta build system, like GYP or CMake.  So
> >> using ninja is really an orthogonal discussion to the "single build
> >> system" discussion for WebKit. :)
> >>
> >> Were the WebKit project to convert to using a single meta-build
> >> system, ninja would become an option many users might choose.  I'm
> >> told most Chromium hackers have GYP set to output ninja files these
> >> days, with the exception of some folks who still want the MSVC build
> >> environment. For WebKit ports already using CMake, they should
> >> definitely try ninja today!
> >>
> >>
> >> Anyway, my wish was not about arguing for a specific build solution.
> >> I'm instead noting that for the project to continue to move quickly,
> >> we need to stop needing to edit 8 build systems for every file
> >> move/addition.  Whether that's GYP or CMake or something else, I don't
> >> really care.  Adam and I tried GYP-for-WebKIt a while back.  But any
> >> of these solutions will require buy-in from Apple, as they will have
> >> to do the largest amount of work converting to use something other
> >> than XCode.
> >>
> >>
> >> On Sat, Feb 2, 2013 at 8:20 PM, Nico Weber <thakis at chromium.org> wrote:
> >>> On Sat, Feb 2, 2013 at 4:58 PM, Adam Barth <abarth at webkit.org> wrote:
> >>>> Ninja has extremely fast incremental builds and can be generated by
> >>>> GYP.  Here are some stats from a year ago:
> >>>>
> >>>> https://plus.google.com/101038813433650812235/posts/irc26fhRtPC
> >>>>
> >>>> Ninja has gotten even faster since then.  If you're interested in
> >>>> trying it out, you can play around with incremental builds of the
> >>>> Chromium port on Mac or Linux.
> >>>
> >>> You can also look at the build output from the chromium bots.
> >>>
> >>> Empty build in 1s:
> >>>
> http://build.webkit.org/builders/Chromium%20Linux%20Release/builds/66807/steps/compile-webkit/logs/stdio
> >>> Build with a few files changed in 15s:
> >>>
> http://build.webkit.org/builders/Chromium%20Linux%20Release/builds/66800/steps/compile-webkit/logs/stdio
> >>>
> >>> …and this is on fairly slow bots. On my SSD-equipped laptop, I can do
> >>> incremental rebuilds of all of chrome after touching one (cpp or mm)
> >>> file in 2-6s.
> >>>
> >
> > _______________________________________________
> > webkit-dev mailing list
> > webkit-dev at lists.webkit.org
> > https://lists.webkit.org/mailman/listinfo/webkit-dev
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20130205/6adc1506/attachment.html>


More information about the webkit-dev mailing list