Windows 下载编译chromium源码

前言

本文介绍如何下载并编译chromium源码。相关前置条件可参考官方文档。

环境 :

  • Windows 11
  • VS 2022

环境设置

打开cmd,设置代理

set http_proxy=http://127.0.0.1:7890 & set https_proxy=http://127.0.0.1:7890

注意:使用cmd命令行,不要使用powershell。

image.png

下载depot_tools

下载 depot_tools bundle 文件并解压 (eg: C:\src\depot_tools).

这里我放在D:\Code\chromium\depot_tools路径下。

然后设置环境变量

set path=D:\Code\chromium\depot_tools;%path%

下载chromium代码

设置一个名为 vs2022_install 的环境变量,用于指定vs2022 的安装路径

set vs2022_install=D:\Program Files\Microsoft Visual Studio\2022\Community

设置使用本地 VS 编译

set DEPOT_TOOLS_WIN_TOOLCHAIN=0

然后运行:

gclient

在第一次运行时,gclient 将安装使用代码所需的所有 Windows 特定位,包括 msysgit 和 python。

然后再执行fetch --no-history chromium下载chromium代码

fetch --no-history chromium

由于使用了--no-history通常很快就下载完成。

Updating depot_tools...
Downloading CIPD client for windows-amd64 from https://chrome-infra-packages.appspot.com/client?platform=windows-amd64&version=git_revision:6e9be28a4c4e3a804f400dc6c2ed08b866f0a38b...
Running: 'C:\Users\LMR\.vpython-root\store\python_venv-57g7dfur34kej3luifcgqdfurg\contents\Scripts\python3.exe' 'D:\Code\chromium\depot_tools\gclient.py' root
WARNING: Your metrics.cfg file was invalid or nonexistent. A new one will be created.
Running: 'C:\Users\LMR\.vpython-root\store\python_venv-57g7dfur34kej3luifcgqdfurg\contents\Scripts\python3.exe' 'D:\Code\chromium\depot_tools\gclient.py' config --spec 'solutions = [
  {
    "name": "src",
    "url": "https://chromium.googlesource.com/chromium/src.git",
    "managed": False,
    "custom_deps": {},
    "custom_vars": {},
  },
]

但还需要执行gclient sync下载完整代码:

gclient sync

image.png

等待…然后就可以看到下载完成的提示了。

image.png

编译

下载完成后,进入src目录,设置构建目录

cd src
gn gen out/Default

image.png

开始编译

autoninja -C out\Default chrome

image.png

然后等待编译完成即可,这期间CPU占用会很高,不建议再执行其他操作。

编译过程中可能有gbk编码警告,可以忽略。

image.png

编译完成后,就可在D:\Code\chromium\src\out\Default路径下找到chrome.exe了,点击运行:

image.png

这下说明已经编译完成并能成功执行chrome.exe

生成VS工程

即可生成VS的sln工程,在src\out\Default路径下,可以找到all.sln工程

gn gen --ide=vs out\Default

使用以下命令直接用VS打开工程

devenv out\Default\all.sln

由于chromium工程很大,所以打开速度也会比较慢。

错误解决

No downloadable toolchain found. In order to use your locally installed version of Visual Studio to build Chrome please set DEPOT_TOOLS_WIN_TOOLCHAIN=0.
For details search for DEPOT_TOOLS_WIN_TOOLCHAIN in the instructions at https://chromium.googlesource.com/chromium/src/+/HEAD/docs/windows_build_instructions.md

image.png

错误提示很明显,原因就是因为没有设置set DEPOT_TOOLS_WIN_TOOLCHAIN=0

一直下载失败

我最初使用的Windows Terminal下载代码,结果总是下载失败,然后换成x64 Native Tools Command Prompt for VS 2022命令行工具下载就成功了。所以当下载失败时,除了网络问题,可以切换终端尝试。Chromium文档也说了,如果从 非命令行(CMD) 中(例如,cygwin、PowerShell)运行 gclient,它看起来可能运行正常,但 msysgit、python 以及其他工具却无法正确安装。

D:\Code\chromium>gn gen out/Default
ERROR Can't find source root.
I could not find a ".gn" file in the current directory or any parent,
and the --root command-line argument was not specified.

这个错误是因为没有进入src目录下,导致没有找到gn文件

image.png 删除out\Default\obj\components\device_signals\core\browser下的所有文件,然后重新生成工程并编译即可:

gn gen out/Default
autoninja -C out\Default chrome

总结

下载chromium源代码,除了本身硬件有要求外,对于网络环境,尤其是国内的网络有要求,除此之外注意使用cmd命令行下载,基本就没有什么问题了。

Chromium Docs - Checking out and Building Chromium for Windows (googlesource.com)

猜你喜欢

转载自blog.csdn.net/no_say_you_know/article/details/133969562