在 Windows Server 2008 R2 下用 Visual Studio 2010 编译 Chrome 与 WebKit Chromium Port
Ref: http://www.chromium.org/developers/how-tos/build-instructions-windows
Ref:http://trac.webkit.org/wiki/Chromium
环境搭建:
1、安装 VS2010 SP1,下载地址:http://go.microsoft.com/fwlink/?LinkId=210710
2、安装 Windows 7.1 SDK(x64),下载地址:http://download.microsoft.com/download/F/1/0/F10113F5-B750-4969-A255-274341AC6BCE/GRMSDKX_EN_DVD.iso
3、安装 DirectX SDK(DXSDK_Jun10),下载地址:http://www.microsoft.com/downloads/info.aspx?na=41&srcfamilyid=3021d52b-514e-41d3-ad02-438a3ba730ba&srcdisplaylang=en&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2fA%2fE%2f7%2fAE743F1F-632B-4809-87A9-AA1BB3458E31%2fDXSDK_Jun10.exe
4、下载 depot tools:https://src.chromium.org/svn/trunk/tools/depot_tools.zip
5、下载后,将 depot tools 设置到环境变量中,注意:加到最后,不是开始。
6、安装 Perl,编译 WebKit Chromium Port 时需要用。
编译 Chrome:
1、下载源代码包:http://chromium-browser-source.commondatastorage.googleapis.com/chromium_tarball.html
2、将源代码包解压缩到没有空格的路径中,最好用 GnuWin32 工具,也可以用 7-Zip。解压后,将 src 目录剪切出来。
3、在 src 下执行两个命令:set GYP_MSVS_VERSION=2010;gclient sync,来更新下本地代码,同时自动更新 depot tools。
4、打开 src/chrome/chrome.sln 编译。这时有个工程会出现错误,原因是 DirectX SDK 目录设置的问题,好像是 glue,将相关的头文件与库目录添加到该工程中。
5、视情况选择需要编译的工程,可以全部编译,也可以只编译 chrome。只编译 chrome 会节省很多时间。
编译 WebKit Chromium Port:
1、下载源码包:http://nightly.webkit.org/files/WebKit-SVN-source.tar.bz2
2、解压到不含空格的目录,解压时不要使用 WinRAR,最好使用 tar vfxz filename 来解压。
3、在源码目录执行:svn update,更新本地代码。
4、产生 VS2010 工程,在源码目录执行:set GYP_MSVS_VERSION=2010;perl ./Tools/Scripts/update-webkit-chromium --force。该命令会下载 chromium webkit 依赖的程序,并产生工程与解决方案。
5、打开 Source/WebKit/chromium/WebKit.sln,并编译。
备注:
C:\Users\mengchao\AppData\Local\Microsoft\MSBuild\v4.0
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ExecutablePath>$(ExecutablePath)</ExecutablePath>
<IncludePath>$(DXSDK_DIR)\include;D:\wtl\Include;$(IncludePath)</IncludePath>
<ReferencePath>$(ReferencePath)</ReferencePath>
<LibraryPath>$(DXSDK_DIR)\lib\x86;$(LibraryPath)</LibraryPath>
<SourcePath>$(SourcePath)</SourcePath>
<ExcludePath>$(ExcludePath)</ExcludePath>
</PropertyGroup>
</Project>