環境:
win7_x6四、VS2013
開始:
1、下載webkit
從網站"https://github.com/WebKit/webkit"下載webkit,我下載的版本最後的修改記錄時間爲2015-6-17,解壓到目錄,例如"D:/webkit-master"
2、安裝cygwin
下載地址:http://download.csdn.net/detail/dc11223344/8851923,默認安裝在系統目錄,由於編譯webkit時會從系統目錄查找cygwin,若是沒有安裝在操做系統目錄,則須要將cygwin\lib加入環境變量path中,而後將項目中的%SystemDrive%\cygwin\bin刪若是你在安裝cygwin以前獨立安裝了python、請先將python卸載,因爲最新版本的webkit使用python一些比較新的庫,因此對python的版本也會有要求,建議2.7.0以上版本;打開cygwin\lib\ruby\2.2.0目錄,新建空白文件rubygems.rb,不然運行ruby,會提示找不到文件,在cygwin命令提示符窗口下運行如下命令,能夠測試安裝狀況
which perl
which python
which ruby
3、安裝webkit依賴庫
1. DirectX SDK下載,並安裝
2. 下載Safari,並安裝
3. 下載WebKitAuxiliaryLibrary.zip和WebKitSupportLibrary.zip,將win目錄解壓到「D:/webkit-master/WebKitLibraries/win"目錄
4、設置環境變量
1. WEBKIT_DIR D:/webkit-master
2. WEBKITLIBRARIESDIR %WEBKIT_DIR%/WebkitLibraries/win
3. WEBKITOUTPUTDIR %WEBKIT_DIR%/build
4. Path D:\cygwin\bin;
設置完畢後,最好重啓系統(有可能咱們設置的環境變量沒有及時生效)。
5、更新文件更新時間
更新create_regex_tables、Keywords.table文件更新時間,打開create_regex_tables和更新create_regex_tables、Keywords.table文件,刪除一個字符後再添加該字符,而後保存便可修改更新時間,在WebKit項目中,部分.h、.cpp和.idl文件是由.in、.table、.json、.css等文件生成的,若是這些文件的更新時間早於這些.h、.cpp文件,可能不會從新生成文件,會出現一些變量定義沒有找到的錯誤(例如maxTokenLength等等)。
6、編譯webkit
1. 編譯"WTF Projects"項目
1. 編譯"WTFGenerated"工程
因爲個人cygwin不是安裝在系統目錄下,全部要作一些修改,若是你將cygwin安裝在系統目錄則不需刪除"%SystemDrive%\cygwin\bin\",打開」屬性「\"NMAKE",將%SystemDrive%\cygwin\bin\which.exe修改成which.exe(我在前面將cygwin\bin目錄添加到了path中,能夠which.exe直接訪問),開始編譯。
2. 編譯工程WTF工程:
在編譯工程前,咱們須要修改
#ifndef U_DISABLE_RENAMING
#define U_DISABLE_RENAMING 1
#endif
修改成
#ifndef U_DISABLE_RENAMING
#define U_DISABLE_RENAMING 0
#endif
2. 編譯「JavaScriptCore Projects」項目
一、編譯"LLIntOffsetsExtractor"工程-> LLIntOffsetsExtractor.exe
二、編譯"LLIntAssembly"工程->LLIntAssembly.h
打開「屬性「\"NMAKE",將%SystemDrive%\cygwin\bin\which.exe修改成which.exe,理由上面以說明
三、編譯"LLIntDesiredOffsets"工程->LLIntDesiredOffsets.h
四、編譯"JavaScriptCoreGenerated"工程
五、編譯"JavaScriptCore"工程
三、編譯」WebCore Projects「項目
一、編譯"WebCoreGenerated"工程
打開「屬性「\"NMAKE",將%SystemDrive%\cygwin\bin\which.exe修改成which.exe,理由上面以說明
二、編譯」WebCore「工程
錯誤:..\platform\LocalizedStrings.cpp(250): error C2001: 常量中有換行符,將"Look Up 「%@」"替換爲"Look Up \"%@\""
四、編譯"WebKit Projects"項目
一、編譯"Interfaces"工程
打開"InterfacesPreBuild.cmd"和"InterfacesPostBuild.cmd"文件,刪除"%SystemDrive%\cygwin\bin\",
刪除WebKitBuild\Debug\buildfailed文件
二、編譯"WebKit"工程
五、編譯」WinLauncher Projects「項目
一、編譯」WinLauncherLib「工程
打開」WinLauncherLibPreBuild.cmd「文件,刪除"%SystemDrive%\cygwin\bin\"
二、編譯"WinLauncher"工程
打開」WinLauncherPreBuild.cmd「文件,刪除"%SystemDrive%\cygwin\bin\";打開"DLLLauncherMain.cpp"文件,修改appleApplicationSupportDirectory函數爲
static wstring appleApplicationSupportDirectory()
{
// 表示從當前可執行文件目錄查找依賴的Safari的dll
return L"./";
}
7、調試webkit
將Safari\Apple Application Support下的一些dll拷貝到WinLauncher.exe目錄下,運行WinLauncher.exe。css
最後說一下編譯webkit的體會,第一次編譯是wke庫,在今年3月份,天天晚上擠出時間,斷斷續續用了3個星期才成功;第二次編譯webkit,是在端午節的時候,用了三天,終於在虛擬機下編譯成功,最後結合虛擬機下的經驗,因而又在本機編譯了一遍,纔有了此文。