vs2017 编译最新chromium
1、准备
ssr,模式为系统全局,这样可以让python走代理。go和git的需要单独设置,后面说。
vs 2017 ,我使用的是community版本,即社区版。其他版本亦可。
win10 sdk, https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive, 我下的Windows 10 SDK 版本 1809 iso
depot tools, https://storage.googleapis.com/chrome-infra/depot_tools.zip
2、配置
打开ssr的本机代理
解压depot tools 并设置环境变量PATH
为避免depot tools更新失败,直接在环境变量里设置DEPOT_TOOLS_UPDATE
为0,并
设置DEPOT_TOOLS_WIN_TOOLCHAIN
为0
为go设置代理也是写环境变量
HTTP_PROXY http://127.0.0.1:1080
HTTPS_PROXY http://127.0.0.1:1080
最后是这样
GYP的几个变量不知道是否有用,你可以删除试试
3、下载代码
新建一个chromium目录,开cmd, cd chromium,
设置git代理
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy http://127.0.0.1:1080
下载源码 fetch --nohooks --no-history chromium, --no-history不下载变更历史,因此下载量较小,--nohooks加不加不所谓吧 反正最后都要执行hook
同步代码 gclient sync
下载有两个阶段,一是源码,一是引用的三方库的代码。
如果源码没下完断了建议删了重新fetch,否则sync会重新下载带有历史变更记录的代码,非常大,如果三方引用断了,gclient sync 会仅同步三方引用的。
4、编译配置
cd src
执行gn gen out/Default --ide=vs2017生成vs解决方案,即使使用vs,项目的编译工具仍然是ninja。
5、开始编译
使用vs打开 out/Default/all.sln 或者 ninja -C out/Default chrome 开始编译。编译需要很久,半天到一天吧。
直接ninja -C out/Default,不指定chrome的话,编译的文件更多。
6、编译参数
查看编译的参数 gn args out/Default --list >> gnargs.txt,然在src/gnargs.txt查看。如果不输出到文件,cmd界面显示不完整。
配置编译的参数 gn args out/Default,将打开一个txt,将上面能见的你又需要自定义的参数写到里面即可。
常用的参数
下面说明一些常见的参数:
target_cpu="x86":指明生成的针对X86架构的CPU。
is_debug=false:指明生成的是Release版本可执行程序。
is_official_build=true:指明使用Chrome官方的编译优化建议。
proprietary_codecs:指明支持H264编码,编译时,自动H264相关组件,打包PE文件中。
enable_nacl=false:指明关闭支持NACL,这是一种Chrome插件,因为安全性,稳定性存在问题,已经很少使用了。
remove_webcore_debug_symbols=true:指明删除内核层支持调试的符号文件,这样,有助于减少文件体积,提高运行速度。
更多关于gn
https://www.chromium.org/developers/gn-build-configuration