ubuntu下編譯qt版webkit

1.設定依賴庫於頭文件

   sudo apt-get install libqt4-dev libxslt-dev gperf bison libsqlite3-dev flex build-essential subversion libphonon-dev

   2.下載webkit源碼

   svn checkout http://svn.webkit.org/repository/webkit/trunk WebKit

   3.編譯webkit

   ./WebKit/WebKitTools/Scripts/build-webkit --qt

   4.運行webkit

   $ cd WebKit/WebKitBuild/Release/bin;

   $./QtLauncher

WebKit 結構分析(來自網絡)

簡要的說,WebKit由三個模塊組成:JavaScriptCore、WebCore 和 WebKit。WebKit作爲了整個項目的名稱。

JavaScriptCore:是JavaScript解釋器;

WebCore:是整個項目的核心,用來實現render引擎:解析Web頁面,生成一個DOM樹和一個render樹,並最終render it with a backend(後端?),當前已經有很多移植的Backend,如WebKit/GTK,WebKitQT等。在上圖中,backend從WebCore中分離出來了,但實際上它是WebCore的一部分。

WebKit:它隱藏並選擇WebCore到當前平臺。在WebKit/Gtk中,WebCore以Gtk objects的形式出現,並且它們的signals和API類似其他的Gtk objects.

WebKit工程組織與管理平臺與工具

當前WebKit支持四種平臺:GTK、QT、Mac OS X、和Cygwin。

GTK和QT使用qmake

Mac OS X使用xcodebuild

Cygwin則使用Visual Studio

下面主要針對Qt版的WebKit作分析介紹:

首先,執行WebKitTools/Scripts下的build-webkit Perl 腳本,可以使用一些參數配置需要的功能模塊,主要有SVG的一些功能配置,以及XPATH、XSLT、VIDEO等。腳本執行過程中會對相應的參數進行解析,確定編譯選項、功能模塊、平臺信息以及相應的工具、輸出路徑等等參數,最後根據不同的參數,使用qmake工具由webkit.pro生成整個工程的makefile。在make的過程中會進一步調用qmake由各個子模塊的.pro項目文件生成各模塊的makefile。最後make各個子模塊的makefile就可以得到需要的目標文件。

工程結構

這個project可以分成JavaScriptCore、WebCore、WebKit三個子模塊,對應到三個子目錄,具體的如上面WebKit結構介紹的。

       更進一步,整個project又分成了六個可構建出來的子project,對應到相應的.pro文件。

WebKit\WebCore\WebCore.pro:生成libQtWebKit.so或libQtWebKit.a,是整個WebKit引擎庫,WebKit應用都是基於這個庫。

WebKit\JavaScriptCore\kjs\testkjs.pro:生成testkjs可執行文件,它是一個JavaScript的測試工具,測試JavaScriptCore模塊的功能實現。

WebKit\JavaScriptCore\pcre\dftables.pro:生成dftables可執行文件,也是一個工具。

WebKit\WebKit\qt\QtLauncher\QtLauncher.pro:生成QtLauncher可執行文件,它是基於WebKit的一個簡單瀏覽器的應用。

WebKit\WebKit\qt\Plugins\plugins.pro:生成了libqtwebico.so,install後會放到/usr/lib/qt4/plugins/imageformats/下,這個庫的作用還不明瞭,因爲目前運行的QtLauncher應用沒有用到它,有待研究。

WebKit\WebKitTools\DumpRenderTree\qt\DumpRenderTree.pro:生成DumpRenderTree工具,也是基於WebKit的一個應用工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章