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_UPDATE0,并设置DEPOT_TOOLS_WIN_TOOLCHAIN0

为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

原文地址:https://www.cnblogs.com/mrtiny/p/10079046.html