Linux下编译WebKit和JSC

Safari和Chrome的内核都是webkit,无论是打算自己开发个浏览器还是在程序里集成完整的HTML解析功能,webkit都是为数不多的选择。特别是webkit分支中的jsc,可以命令行下解释执行javascript,真是想想就让人亢奋的玩物。编译环境选择的是Ubuntu 15.04 x86_64,由于玩心太重,所以首先考虑把jsc编译出来。

下载代码

有大概三种途径弄到代码,git,svn和直接下载tar.xz,我只试了后面两种

svn checkout https://svn.webkit.org/repository/webkit/trunk webkit

或者从webkitgtk直接下载tar.xz

准备编译环境

执行webkit/Tools/gtk/install-dependencies可以安装大部分缺失的库代码,另外再手动补下刀

sudo apt-get install libgstreamer*

其余的库要是还缺,apt-cache search+apt-get install 缺啥补啥吧

编译

如果下载的tar.xz的话,参考linuxfromscratch进入webkit目录执行以下代码,编译好的jsc位于./build/bin/jsc

sed -e 's/“/"/' -e 's/”/"/' 
    -i Source/WebCore/xml/XMLViewer.{css,js} &&

mkdir -vp build &&
cd        build &&

cmake -DCMAKE_BUILD_TYPE=Release 
 -DCMAKE_INSTALL_PREFIX=/usr 
 -DCMAKE_SKIP_RPATH=ON 
 -DENABLE_GEOLOCATION=OFF 
 -DPORT=GTK 
 -DLIB_INSTALL_DIR=/usr/lib 
 -DUSE_LIBHYPHEN=OFF 
 -DSHARED_CORE=OFF 
 -DCMAKE_C_COMPILER=/home/jack/afl/afl-gcc 
 -DCMAKE_CXX_COMPILER=/home/jack/afl/afl-g++ 
 -DBUILD_SHARED_LIBS=OFF 
 -DENABLE_MINIBROWSER=ON 
 -Wno-dev .. &&
make -j10

如果是svn得到的代码,进入webkit目录后执行编译脚本得到./WebKitBuild/Release/bin/jsc

./Tools/Scripts/build-jsc --gtk --makeargs="-j10"