Bug 147228

Summary: Use Ninja on Windows
Product: WebKit Reporter: Alex Christensen <achristensen>
Component: WebKit Misc.Assignee: Alex Christensen <achristensen>
Status: RESOLVED FIXED    
Severity: Normal CC: dbates, gyuyoung.kim, sam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
Patch mrobinson: review+

Description Alex Christensen 2015-07-23 10:47:09 PDT
Ninja is faster than Visual Studio, especially when generating the WebCore bindings.
Comment 1 Alex Christensen 2015-07-23 10:57:34 PDT
Created attachment 257358 [details]
Patch
Comment 2 Sam Weinig 2015-07-23 12:39:25 PDT
(In reply to comment #0)
> Ninja is faster than Visual Studio, especially when generating the WebCore
> bindings.

Do you have clean / incremental numbers?
Comment 3 Alex Christensen 2015-07-23 15:10:51 PDT
Created attachment 257391 [details]
Patch
Comment 4 Alex Christensen 2015-07-23 15:12:22 PDT
(In reply to comment #2)
> (In reply to comment #0)
> > Ninja is faster than Visual Studio, especially when generating the WebCore
> > bindings.
> 
> Do you have clean / incremental numbers?
I don't yet, but ninja is probably about twice as fast as sequentially generating all the bindings for WebCore, which is what the CMake build does without this.  I would estimate this brings the CMake build time on Windows from about an hour to about a half hour.
Comment 5 Alex Christensen 2015-07-23 16:04:13 PDT
Comment on attachment 257391 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=257391&action=review

> Source/cmake/OptionsWindows.cmake:30
> +    endif

endif ()
Comment 6 Alex Christensen 2015-07-27 17:17:15 PDT
Created attachment 257618 [details]
Patch
Comment 7 Alex Christensen 2015-07-27 17:23:48 PDT
Created attachment 257619 [details]
Patch
Comment 8 Martin Robinson 2015-07-27 17:30:59 PDT
Comment on attachment 257619 [details]
Patch

Seems like a safe bet.
Comment 9 Alex Christensen 2015-07-27 17:39:50 PDT
http://trac.webkit.org/changeset/187470
Comment 10 Alex Christensen 2015-07-27 18:21:19 PDT
(In reply to comment #2)
> (In reply to comment #0)
> > Ninja is faster than Visual Studio, especially when generating the WebCore
> > bindings.
> 
> Do you have clean / incremental numbers?

Today, a clean build with CMake and MSBuild took 66.7 minutes. 
A clean build with CMake and Ninja took 27.7 minutes.  That's just over 2x as fast, mostly because it parallelizes the WebCore generating phase.

MSBuild: https://build.webkit.org/builders/WinCairo%2064-Bit%20Release/builds/47680/steps/compile-webkit/logs/stdio
Ninja: https://build.webkit.org/builders/WinCairo%2064-Bit%20Release/builds/47698/steps/compile-webkit/logs/stdio