教你如何编译Chrome
Chromium是Google为发展浏览器Google Chrome而开启的免费开源软件项目,以BSD许可协议等数种许可发行并开放源代码。Chromium与Google Chrome共享大部分代码和功能,但功能和商标之间有一些细微差别。
Google使用该代码来制作其Chrome浏览器,该浏览器比Chromium具有更多功能。许多其他浏览器也基于Chromium的代码,例如Microsoft Edge,Opera和Amazon Silk。Chromium 的更新速度很快,每隔数小时即有新的开发版本发布。[8]由于新功能会先在Chromium上测试,等待认证后才会应用在Google Chrome上,所以Chromium相当于Google Chrome的先行版。
Chromium的用户界面极简。Google期望使浏览器“在认知和物理上都让人感觉轻巧,快速”。(英语:feel lightweight (cognitively and physically) and fast.)[9]
官方文档
**需要翻墙:**chromium.googlesource.com/chromium/sr…
**不需要翻墙:**github.com/chromium/ch…
环境部署
python
按官网文档设置,后面下载的chromiun源代码中也有。
depot_tools
下载depot_tools,按官方文档设置。
windows
Visual Studio 按官网文档设置
Windows 10 SDK 按官网文档设置
获取代码
按官网文档方式获取。
配置和编译
Chromium使用Ninja作为主要构建工具,用GN来生成.ninja文件。
构建参数请参见GN构建配置(需要翻墙),默认将是与当前主机操作系统和CPU相匹配的调试组件。
有关GN的更多信息,请gn help在命令行上运行或阅读《快速入门指南》。
编译时的设置参数
target_os="win":构建系统是win、android、linux、chromeos等
target_cpu=“x86”:x86构建比x64构建快一点,并且支持增量链接以实现更多目标。请注意,如果您设置了此设置但未设置enable_nacl = false,则构建时间可能会更糟。
is_debug=false:指明生成的是Release版本可执行程序。
is_component_build = true:这会使用更多,更小的DLL和增量链接,与is_official_build不能同时为true。
is_official_build=true:指明使用Chrome官方的编译优化建议。
google_api_key=false:谷歌api
google_default_client_id=flase:谷歌client
google_default_client_secret=false:谷歌clinet_secret
proprietary_codecs:指明支持H264编码,编译时,自动H264相关组件,打包PE文件中。
enable_nacl=false:指明关闭支持NACL,这是一种Chrome插件,因为安全性,稳定性存在问题,已经很少使用了。
remove_webcore_debug_symbols=true:指明删除内核层支持调试的符号文件,这样,有助于减少文件体积,提高运行速度。
blink_symbol_level = 0:关闭源级调试以减少闪烁,以减少构建时间,如果您不打算调试闪烁,则可以使用此选项。