一. 编译环境
Mac OS X 10.9(Mavericks)
Xcode5.0.1 :
https://developer.apple.com/downloads/index.action, 不要使用xcode5.1, 因为其不支持garbage collection, 会导致编译错误;
二. 编译
1. 下载代码:有两种方式
1)通过subversion或者git 下载最新代码到本地(不一定能编译通过):http://www.webkit.org/building/checkout.html
2) 直接从Souce Nightly Build Archive下载代码:http://nightly.webkit.org/builds/trunk/src/1, 这里选择r164553(之所以选择这个版本,是因为刚好可以编译通过)
2. 在xcode中打开根目录下下的WebKit.xcworkspace文件;
3. 设置workspace编译的中间目录:File -> Workspace Settings... -> Build ->Derived Data Location, 选择Workspace-relative, 后面的格填上"WebKitBuild", Done;
4. 点击编译按钮开始编译;
5. 解决编译错误
(1) 'WebKitSystemInterface.h' file not found
解决办法:
将<webkit_root>/WebKitLibraries/WebKitSystemInterface.h拷贝到<webkit_root>/WebKitBuild/<Configuration>/usr/local/include/WebKitSystemInterface.h; 默认情况下,Configuration为Debug;
如果编译还有问题,直接将该文件拷贝到编译出错的文件相同的目录, 这里一般是<webkit_root>/Source/WebKit/mac/Plugins/Hosted目录下的文件出现编译错误,直接拷贝到该目录即可;
(2) ld: library not found for -lWebKitSystemInterfaceMavericks
这是因为在WebKitBuild目录下找不到libWebKitSystemInterfaceMavericks.a的库,最新在代码在工程设置中没有进行自动拷贝;
解决办法:
将<webkit_root>WebKitLibraries/libWebKitSystemInterfaceMavericks拷贝到WebKitBuild/<Configuration>/目录下;
6. 继续编译即可完成;
三. 调试
1. 选择启动程序:工具栏 -> All Source -> Debug -> info -> Executable, 可以选择safari或者MiniBrowser.app作为启动程序;
2. attach到指定的进程(这个版本的webkit会自动attach到SafariForWebKitDevelopment对应的进程,尽情的调试吧); 在HTMLAnchorElement::handleClickEvent加个断点,打开页面后,点击链接如果可以进入断点,说明可以调试;