2-3年前在做客户端开发时,看过CHROME的一部分代码,主要是BASE库相关的。其项目之大,编译时间之长给我留下了深刻的印象。
3年后的最近,想着再读一下其他部分的代码,所以就对其纠结的下载和编译过程做下总结。
网上的一些文章都是比较过时的,按照那些文章的做法基本没啥戏。其实,仔细阅读chromium中关于Get Source Code页面的说明就能开耍了。现在的整个流程要比之前的流程感觉清晰多了。
我的环境是WIN7 SP1 + VS2013 UPDATE4。最新的chrome代码引入了一些C++11的特性,所以用13是必须的。
具体流程
- VPN一枚。天朝的特殊需求,大家懂的。
- 下载depot_tools,具体流程可以参考这个页面。下载好后,在系统变量PATH中添加depot_tools的路径。
- 然后设置系统变量set DEPOT_TOOLS_WIN_TOOLCHAIN=0 这个系统变量可以提前设置。
- 打开cmd,输入fetch --nohooks chromium 开始进入漫长的下载过程,会下载很多必备的工具,比如python,git之类的
- 执行gclient,会检查一些环境,继续更新一些东西
- 执行gclient sync,同步最新的代码,同步其他模块之类的
- set GYP_MSVS_VERSION=2013
- set GYP_GENERATORS=msvs-ninja,ninja
- set GYP_DEFINES=component=shared_library, 以DLL方式编译,你如果不想就不用设置这个变量
- 执行gclient runhooks,开始生成项目之类的
- cd src,切换到src目录下
- ninja -C out\debug chrome,开始编译
遇到的问题
编译过程中提示一些编码问题,放狗搜了下,我把系统的“非Unicode程序的语言”设置为英语(美国)后重启再编译就好了。
我用的机器是E5的CPU,SSD盘,96G内存,编译一共用了差不多1个半小时。留图纪念下: