编译chromium笔记

news/2025/1/22 7:05:02/

编译环境:
windows10
powershell7.2.24
git 2.47.1
https://storage.googleapis.com/chrome-infra/depot_tools.zip

配置git
git config --global user.name "John Doe"
git config --global user.email "jdoe@gmail.com"
git config --global core.autocrlf false
git config --global core.filemode false
git config --global branch.autosetuprebase always

额外设置,应对gclient和gclient sync命令的各种警告或报错
git config --global core.fscache true
git config --global core.preloadindex true
git config --global depot-tools.allowGlobalGitConfig true
git config --global http.sslVerify "false"
git config --global http.postBuffer 524288000
git config --global https.postBuffer 1048576000
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
git config --global core.deltaBaseCacheLimit 2g

设置git代理
git config --global http.proxy 127.0.0.1:7890
git config --global https.proxy 127.0.0.1:7890

设置代理环境变量
set http_proxy=127.0.0.1:7890
set https_proxy=127.0.0.1:7890

设置powershell代理
$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"

设置depot_tools环境变量
E:\chromium\depot_tools
新建如下系统变量并根据个人情况赋值:
DEPOT_TOOLS_WIN_TOOLCHAIN=0
GYP_GENERATORS=msvs-ninja,ninja
GYP_MSVS_OVERRIDE_PATH=C:\Program Files\Microsoft Visual Studio\2022\Community
GYP_MSVS_VERSION=2022
vs2022_install=C:\Program Files\Microsoft Visual Studio\2022\Community
WINDOWSSDKDIR=C:\Program Files (x86)\Windows Kits\10

更新depot_tools
gclient
//该命令要在powershell7.4.6下运行,否则各种报错

生成.gclient文件
gclient config https://chromium.googlesource.com/chromium/src.git

开始下载chromium源码
git clone --depth 2 -b 132.0.6834.90 https://chromium.googlesource.com/chromium/src.git
//不要示图编译旧版本,本身谷歌官方就是不支持的,除非你想挑战自己。

同步第三方依赖库
gclient sync
//该命令要在Git2.47.1下运行,否则各种报错
//上面一条命令就足够了,这两条命令作后备:gclient sync -D 和 gclient runhooks
//上面的所有命令都执行完成后,再添加环境变量DEPOT_TOOLS_UPDATE=0,不要让depot_tools再更新了。这个是关键点,因为depot_tools版本要和chromium版本对应,简单来说就是时间相近就可以了,例如:

https://chromium.googlesource.com/chromium/tools/depot_tools/+/24d9ad69facfe9f73b542e434f47881a5caa1db4
2025年1月10日星期五20:57:14
https://chromium.googlesource.com/chromium/src.git/+/refs/tags/132.0.6834.90
2025年1月10日星期五21:55:34

编译都在powershell7.4.6下运行
cd C:\chromium\src
1)生成构建文件:
gn gen out\Default
2)开始编译:
autoninja -C out\Default chrome -j2
//-j参数设置任务数,电脑配置低的时候使用


http://www.ppmy.cn/news/1565160.html

相关文章

如何使用 Pytest -k 选项轻松筛选测试用例

关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 你是否曾不得不从成百上千个测试中费力筛选,只为运行几个特定的测试&am…

PHP语言的数据库编程

PHP语言的数据库编程 引言 随着互联网的发展,动态网站已成为主流,而动态网站的核心就是与数据库进行交互。PHP(超文本预处理器)是一种流行的开源服务器端脚本语言,被广泛用于Web开发。它以其简单易学和功能强大而受到…

前端——JS

目录 什么是JS? JS引入方式 JS基础语法 输出语句 变量 常量 数据类型 函数 自定义对象 什么是JS? JavaScript(简称:JS) 是一门跨平台、面向对象的脚本语言,是用来控制网页行为的,实现人…

2、ansible的playbook

ansible的脚本:playbook剧本 脚本的作用:复用 playbook的组成部分 1、开头 ---:表示是一个yaml文件,但是可以忽略。 2、Tasks(任务):包含了目标主机上执行的操作,操作还是由模板来…

MySQL和SQL server的区别

在当今数据驱动的世界里,数据库技术的选择对于企业和个人开发者来说至关重要。MySQL 和 SQL Server 是两个广泛使用的数据库管理系统(DBMS),它们各自拥有独特的优势和适用场景。本文将深入探讨这两个数据库系统之间的区别&#xf…

(1)STM32 USB设备开发-基础知识

开篇感谢: 【经验分享】STM32 USB相关知识扫盲 - STM32团队 ST意法半导体中文论坛 单片机学习记录_桃成蹊2.0的博客-CSDN博客 USB_不吃鱼的猫丿的博客-CSDN博客 1、USB鼠标_哔哩哔哩_bilibili usb_冰糖葫的博客-CSDN博客 USB_lqonlylove的博客-CSDN博客 USB …

Android系统开发(六):从Linux到Android:模块化开发,GKI内核的硬核科普

引言: 今天我们聊聊Android生态中最“硬核”的话题:通用内核镜像(GKI)与内核模块接口(KMI)。这是内核碎片化终结者的秘密武器,解决了内核和供应商模块之间无尽的兼容性问题。为什么重要&#x…

iOS-YModel

YModel 是一个高效的 iOS/OSX 的模型转换框架,可以轻松地将 JSON 转换成 Model,或者将 Model 转换成 JSON。以下是详细的使用指南: 导入 YYModel: 确保在你的项目中导入了 YYModel。使用 CocoaPods 的话可以在 Podfile 中加入以下代码&#…