二、安裝cygwin
下載地址:http://download.csdn.net/detail/dc11223344/8851923,默認(rèn)安裝在系統(tǒng)目錄,因為編譯webkit時會從系統(tǒng)目錄查找cygwin,如果沒有安裝在操作系統(tǒng)目錄,則需要將cygwin\lib加入環(huán)境變量path中,然后將項目中的%SystemDrive%\cygwin\bin刪如果你在安裝cygwin之前獨立安裝了python、請先將python卸載,由于最新版本的webkit使用python一些比較新的庫,所以對python的版本也會有要求,建議2.7.0以上版本;打開cygwin\lib\ruby\2.2.0目錄,新建空白文件rubygems.rb,否則運行ruby,會提示找不到文件,在cygwin命令提示符窗口下運行以下命令,可以測試安裝情況
三、安裝webkit依賴庫
1. DirectX SDK下載,并安裝2. 下載Safari,并安裝3. 下載WebKitAuxiliaryLibrary.zip和WebKitSupportLibrary.zip,將win目錄解壓到“D:/webkit-master/WebKitLibraries/win"目錄四、設(shè)置環(huán)境變量
1. WEBKIT_DIR D:/webkit-master2. WEBKITLIBRARIESDIR %WEBKIT_DIR%/WebkitLibraries/win3. WEBKITOUTPUTDIR %WEBKIT_DIR%/build4. Path D:\cygwin\bin;設(shè)置完畢后,最好重啟系統(tǒng)(有可能我們設(shè)置的環(huán)境變量沒有及時生效)。五、更新文件更新時間
更新create_regex_tables、Keywords.table文件更新時間,打開create_regex_tables和更新create_regex_tables、Keywords.table文件,刪除一個字符后再添加該字符,然后保存即可修改更新時間,在WebKit項目中,部分.h、.cpp和.idl文件是由.in、.table、.json、.css等文件生成的,如果這些文件的更新時間早于這些.h、.cpp文件,可能不會重新生成文件,會出現(xiàn)一些變量定義沒有找到的錯誤(例如maxTokenLength等等)。六、編譯webkit
1. 編譯"WTF Projects"項目
1. 編譯"WTFGenerated"工程
由于我的cygwin不是安裝在系統(tǒng)目錄下,所有要做一些修改,如果你將cygwin安裝在系統(tǒng)目錄則不需刪除"%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
#ifndef U_DISABLE_RENAMING
#define U_DISABLE_RENAMING 0
2. 編譯“JavaScriptCore Projects”項目
1、編譯"LLIntOffsetsExtractor"工程-> LLIntOffsetsExtractor.exe
2、編譯"LLIntAssembly"工程->LLIntAssembly.h
打開“屬性“\"NMAKE",將%SystemDrive%\cygwin\bin\which.exe修改為which.exe,理由上面以說明3、編譯"LLIntDesiredOffsets"工程->LLIntDesiredOffsets.h
4、編譯"JavaScriptCoreGenerated"工程
5、編譯"JavaScriptCore"工程
3、編譯”WebCore Projects“項目
1、編譯"WebCoreGenerated"工程
打開“屬性“\"NMAKE",將%SystemDrive%\cygwin\bin\which.exe修改為which.exe,理由上面以說明2、編譯”WebCore“工程
錯誤:..\platform\LocalizedStrings.cpp(250): error C2001: 常量中有換行符,將"Look Up “%@”"替換為"Look Up \"%@\""4、編譯"WebKit Projects"項目
1、編譯"Interfaces"工程
打開"InterfacesPreBuild.cmd"和"InterfacesPostBuild.cmd"文件,刪除"%SystemDrive%\cygwin\bin\",刪除WebKitBuild\Debug\buildfailed文件2、編譯"WebKit"工程
5、編譯”WinLauncher Projects“項目
1、編譯”WinLauncherLib“工程
打開”WinLauncherLibPreBuild.cmd“文件,刪除"%SystemDrive%\cygwin\bin\"2、編譯"WinLauncher"工程
打開”WinLauncherPreBuild.cmd“文件,刪除"%SystemDrive%\cygwin\bin\";打開"DLLLauncherMain.cpp"文件,修改appleApplicationSupportDirectory函數(shù)為static wstring appleApplicationSupportDirectory()
// 表示從當(dāng)前可執(zhí)行文件目錄查找依賴的Safari的dll
七、調(diào)試webkit
將Safari\Apple Application Support下的一些dll拷貝到WinLauncher.exe目錄下,運行WinLauncher.exe。
最后說一下編譯webkit的體會,第一次編譯是wke庫,在今年3月份,每天晚上擠出時間,斷斷續(xù)續(xù)用了3個星期才成功;第二次編譯webkit,是在端午節(jié)的時候,用了三天,終于在虛擬機(jī)下編譯成功,最后結(jié)合虛擬機(jī)下的經(jīng)驗,于是又在本機(jī)編譯了一遍,才有了此文。