wiki:CMake

Version 2 (modified by achristensen@apple.com, 10 years ago) ( diff )

--

Discussion

https://code.google.com/p/gyp/wiki/GypVsCMake (April 2010)
http://trac.webkit.org/wiki/Unifying%20the%20build%20system (April 2011)
https://lists.webkit.org/pipermail/webkit-dev/2012-April/020279.html (April 2012)
https://lists.webkit.org/pipermail/webkit-dev/2013-April/024494.html (April 2013)
https://lists.webkit.org/pipermail/webkit-dev/2014-March/026343.html (April 2014)
http://trac.webkit.org/wiki/March%202015%20Meeting (March 2015)


Current State (August 2014)

jsc built and ran, no ftl
WebCore built on Mac (probably not completely - libWebCore.a)

mkdir WebKitBuild && cd WebKitBuild && cmake .. -DPORT=Mac && make -j8


Proposed Timeline on Windows

Get WinLauncher working
Verify equivalent output & testing
Update internal testing & infrastructure
Remove *.vcxproj


Proposed Timeline on Mac

Get MiniBrowser working on Mac
CMake build bot
Get Safari working on Mac (Start use by engineers)
Verify equivalent output & testing
Update internal testing & infrastructure (Don't hold your breath)
Remove *.xcodeproj (???)


Reviewing

https://bugs.webkit.org/show_bug.cgi?id=72816 AppleWin (November 2011 - April 2013)
https://bugs.webkit.org/show_bug.cgi?id=115944 WinCairo (April 2013)
https://bugs.webkit.org/show_bug.cgi?id=136003 Mac (August 2014)


Issues

Directories - MAKE PORT SPECIFIC

WebKitBuild/Release/jsc
WebKitBuild/Release/JavaScriptCore.framework/JavaScriptCore (frameworks)
WebKitBuild/bin/jsc
WebKitBuild/lib/libJavaScriptCore.dylib

Xcode field test (can still use Xcode)
Unsupported features? iOS?
Few Reviewers (none at Apple)

Gyuyoung Kim
Ossy
Martin Robinson
Rakuco
Zan? (cross compiling)

New Apple reviewers?

Brent?
Chris?
dbates?

Feature defines conditional on OS?


Benefits

Faster build (jsc 4 min -> 3 min)
Dependency tracking
Not breaking EFL/GTK+ as often
Not reviewing Xcode changes
Centralized feature define list


New possibilities

Distributed build
MinGW / Clang on Windows
New Ports

Note: See TracWiki for help on using the wiki.