1.1 Windows下webkit的編譯[1]
建議硬件配置:3G以上內存, CPU 2.4GHz以上
1. 安裝VS 2005 team suite, 強烈建議使用英文版, 中文版有2個package安裝不上。
英文試用版下載地址: http://download.microsoft.com/download/6/f/5/6f5f7a01-50bb-422d-8742-c099c8896969/En_vs_2005_vsts_180_Trial.img; 中文試用版下載地址: http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=zh-cn&SrcCategoryId=&SrcFamilyId=5677ddc4-5035-401f-95c3-cc6f46f6d8f7&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2fb%2fa%2f6%2fba691c56-8833-446c-82fe-cf94b588a622%2fchs_vs_2005_VSTS_180_Trial.img
2. 安裝 Microsoft Visual Studio 2005 TeamSuite Service Pack 1. 注意:
英文版VS2005安裝VS80sp1-KB926601-X86-ENU.exe
中文版安裝 VS80sp1-KB926604-X86-CHS.exe
(http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=BB4A75AB-E2D4-4C96-B39D-37BAF6B5B1DC)
3. 如果是Vista 或者Window 7 還需要安裝 SP1update for vista。Visual C++ 2005 Express 也是可以編譯WebKit的,但是需要單獨安裝Platform SDK。
4. 安裝 vs2005的4個升級包: KB918559/KB935225/KB943969/KB947315,注意: 1)安裝順序 2)升級包的語言須與自己的VS2005版本向匹配。
KB918559(http://archive.msdn.microsoft.com/KB918559/Release/ProjectReleases.aspx?ReleaseId=758)
KB935225(http://archive.msdn.microsoft.com/KB935225/Release/ProjectReleases.aspx?ReleaseId=909)
KB943969(http://archive.msdn.microsoft.com/KB943969/Release/ProjectReleases.aspx?ReleaseId=750)
KB947315(http://archive.msdn.microsoft.com/KB947315/Release/ProjectReleases.aspx?ReleaseId=872)
5. 下載並安裝DirectX SDK, 下載地址:
6. 下載quicktime SDK並安裝, url: http://developer.apple.com/quicktime/download/,注意: 需要註冊一個開發者賬號後才能下載,可以註冊成最基本的免費賬號。
7. 安裝cgwin
如果是在公司內網環境,有可能需要設置cgwin的代理: export http_proxy=http://10035629:[email protected]:80
同理,可以設置ftp的代理, ftp_proxy
8. 下載WebKitSupportLibrary.zip, 無需解壓縮,直接放到WebKit根目錄下,URL: http://developer.apple.com/opensource/internet/webkit_sptlib_agree.html
9. 設置windows環境變量WEBKITLIBRARIESDIR和WEBKITOUTPUTDIR
將WEBKITLIBRARIESDIR設定爲 WebKit 源代碼目錄\WebKitLibraries\win路徑; 將WEBKITOUTPUTDIR 設爲你打算要存放obj和dll 的輸出文件夾,當然這個文件夾所在的分區至少要有4G的剩餘空間。
說明: WEBKITOUTPUTDIR可以隨便設,如果要保持和其他Build方式的一致性,那麼就設置成爲%WEBKIT_DIR%\output,這裏%WEBKIT_DIR%是Webkit文件夾的絕對路徑。WEBKITLIBRARIESDIR必須設置爲%WEBKIT_DIR%\WebKitLibraries\win文件夾。
10. 執行更新腳本, 運行WebKit/Tools/Scripts/目錄下的update-webkit和update-webkit-support-libs 兩個腳本
11. 編譯整個解決方案,可以採用以下兩種方式中的任意一種即可,建議在VS2005中進行編譯。編譯之前,還可以通過set-webkit-configuration腳本來設置build-webkit等腳本的默認編譯配置項。
a. 運行WebKit/Tools/Scripts/目錄下的 ./build-webkit[-debug]腳本
b. 在VS 2005中打開\WebKit-r82856\Source\WebKit\win\WebKit.vcproj\WebKit.sln工程文件,編譯整個解決方案。
1) 選擇正確的Configuration,也就是Debug和Release。
這個sln默認帶有六個編譯配置Debug、Debug_all、Debug_Cairo、Release、Debug_Internal、Release_Cairo。用 Release 編譯出來的就是用蘋果自己的渲染引擎的版本,和Safari 的一致。 用Release_Cairo 編譯出來的是支持Cairo渲染引擎的版本,這個版本可以脫離蘋果的環境單獨跑,但同時也無法放到蘋果的Safari 環境中運行。
2) 設置DumpRenderTree, QTMovieWin,WebCore, WebKit, WinLauncher, TestWebKitAPIInjectedBundle, TestWebKitAPI等的項目屬性,左側選擇“C/C++”,將右側的”TreatWarnings As Errors”設置爲”No”。
12. 要想監測編譯是否成功,可使用WinLauncher.exe 這個應用程序加載WebKit進行測試。
編譯成功後,生成的核心文件有:
WebKit.dll, JavaScriptCore.dll, QTMovieWin.dll,InjectedBundle.dll, WebKit.exe, MiniBrowser.exe(D:\webkit\WebKit-r87175\output\Debug\bin)。
注意:
1. 如果您機器上安裝過Qt,那麼檢查一下環境變量裏面是不是有QTDIR,如有,刪了先;如果有這個環境變量,Webkit的build腳本會認爲要編譯Qt的port。
2. 編譯時將在WEBKITOUTPUTDIR目錄下生成config.log和previous-autogen-arguments.txt文件,這兩個文件分別保存了配置信息和編譯參數。
3. cyngwin的build-webkit腳本會爲每個參與編譯的工程,生成一箇中間的bat文件,然後調用cmd.exe,運行這個bat文件,其中調用的vs2005編譯器。從工程的buildlog中,可以看到這些行爲。
4. 編譯時候如果提示:
link: missing operand after `?t/'
Project : error PRJ0002 : Error result1 returned from 'C:\cygwin\bin\link.exe'.
則有可能編譯時調用的連接器是cygwin而不是VC的, 此時需要將VC++的目錄放在cygwin目錄之前。在爲每個項目生成的*PreBuild.cmd文件中有以下語句對PATH進行設置, 如: set PATH=%SystemDrive%\cygwin\bin;%PATH%。