准备工作: 1、的梯子(必须,因为需要访问国外服务器进行数据下载和同步)
2、安装VS2019,且请务必把安装路径设置为C盘(最好默认安装),这样可以省掉很多不必要的环境变量配置。(一开始我VS安装在D盘,走了很多弯路也没成功,win10sdk可以放D 盘)
3、安装git
4、安装win10sdk的版本10.0.20348 .0(具体需要哪个版本主要由后面的../src/bulid/toolchain/win/setup_toolchain.py中的版本要求决定)
正式开始:
1、创建一个文件夹并进到文件夹下:D:\work
2、下载depot-tools.zip包(下载chromium源码的一个工具, 里面自带有python工具, 如果已经安装了python,建议先卸载掉,否则会出现一些报错,改起来麻烦)。下载地址:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
成功后,进入D:\work\depot_tools如下图
3、添加D:\work\depot_tools 到系统环境变量,且一定要将其放在path的最前面(避免踩坑),为后期做准备。如图
4、其他需要设置的系统环境变量:
DEPOT_TOOLS_WIN_TOOLCHAIN 0
GYP_GENERATORS msvs-ninja, ninja
GYP_MSVS_VERSION 2019
vs2019_install C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\ (具体请看安装VS2019的位置)
WindowsSdkDir D:\Windows Kits\10 (这里具体看你VS2019的SDK在什么地方,主要看对应目录下是不是有这些文件),如下图
5、打开cmd 进入D:\work\depot_tools下,
输入命令:gclient //更新depot_tools到最新版本
特别注意:如果梯子是需要设置代理IP和端口的,请先通过命令去设置好代理(网上有告诉怎么设置的,这里由于我的梯子并不需要设置代理,所以就不设置了)
depot_tools更新完后将出现如下截图:
6、在D:\work\下创建一个新的chromium,然后 cd D:\work\chromium,
然后执行 fetch --no-history chromium //下载chromium源码
如下图,说明已经开始了,这里需要漫长的等待,我用2M/s的梯子,同步chromium源码差不多耗时120分钟,文件总大小在25.5G左右
7、下载中如果发生了中断,想继续执行要使用
gclient sync --with_branch_heads
8、随后cmd进入D:\work\chromium\src 目录中
gclient runhooks //这一步有时可以省略,担心的话也可以执行一下
9、然后生成项目编译文件,只是产生需要的目录(所以这个可以不用重复执行)
gn gen out\debug (大概耗时20秒)
10、最后一步,使用ninja工具编译
ninja -C out/debug chrome
执行时出现一个错误:FAILED: v8_context_snapshot.bin,如下图
解决办法是找到D:\work\chromium\src\base\win\com_init_check_hook.h,注释掉下面红色框中的定义就可以了。
编译成功后,将会在D:\work\chromium\src\out\debug\下出现一个all.sln的文件,用vs2019打开就可以看到源码了。同时在D:\work\chromium\src\out\debug\下也会生成一个chrome.exe的浏览器,到这里就算debug版本的编译成功了
注意:这里生成的将是开发版模式的浏览器,有些电脑运行可能会是黑屏的(原因是GPU不支持硬件加速,解决办法是生成正式版);如果要生成正式版的,需要修改.gclient和args.gn文件,我在这简单将下release正式版的生成吧
1、找到D:\work\chromium\.gclient ,打开后添加配置 "checkout_pgo_profiles": True,
2、打开梯子,进入D:\work\FFBrowser\chromium后,用cmd执行
gclient sync --with_branch_heads
3、进入src下,执行gn gen out\release --ide=vs --args=""
4、执行设置参数命令:gn args out\release
5、弹出来的文件窗口内添加下面的配置
is_debug = false
target_cpu = "x86"
is_official_build = true
symbol_level = 0
blink_symbol_level=0
v8_symbol_level = 0
enable_nacl = false
ffmpeg_branding = "Chrome"
proprietary_codecs = true
添加好后关闭文件窗口,cmd将自动往后执行
6、执行编译命令:ninja -C out/release mini_installer
成功后将会在src/out/release下得到一个mini_installer.exe的安装包,安装打开后,查看浏览器的about就可以看到显示的是正式版浏览器了