当前位置: 首页 > news >正文

depot_tools

用于Chromium开发的工具。要支持python 3,需要python 2.7或3.8。

depot_tools是个工具包(depot是仓库的意思),里面包含gclient、gcl、gn和ninja等工具,这些根据都是使用python写的。其主要的功能是对git的增强,让代码管理和编译更加简单,要学这个的前提是要会使用git。

工具

最重要的工具是:

  • fetchgclient用于签出项目的包装器。使用fetch --help更多的细节。
  • gclient元签出工具。考虑repo或git子模块,除非它支持特定于操作系统的规则,例如,签出Android时不要签出Windows依赖项。使用gclient help更多的细节和README.gclient.md。
  • git cl:与Rietveld或Gerrit交互的代码审查工具。使用git cl help更多的细节和README.git-cl.md。
  • roll-dep:一个gclient依赖性管理工具,用于提交dep roll,将依赖性更新为较新的修订版。

包含很多git实用程序。

depot_tools安装

下面这个操作,最好是使用境外服务器或者用一个好的vpn,不然的话,不要问为什么

linux/mac

克隆depot_tools存储库:

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

depot_tools添加到PATH 的末尾(您可能希望将其放入您的~/.bashrc~/.zshrc)。假设您将depot_tools克隆为 /path/to/depot_tools

$ export PATH=$PATH:/path/to/depot_tools

windows

下载depot_tools https://storage.googleapis.com/chrome-infra/depot_tools.zip并将其解压缩到某处。

或者csdn下载地址:depot_tools.zip

配置环境变量,这里需要注意,这个位置必须在python和以及git之前

cmd.exe中运行命令gclient(不带参数)。在第一次运行时,gclient将安装使用代码所需的所有Windows工具,包括msysgit和python。

  • 如果从非cmd shell(例如,cygwin,PowerShell)运行gclient,它可能看起来运行正常,但msysgit,python和其他工具可能无法正确安装。

  • 如果在第一次运行gclient时看到文件系统出现奇怪错误,则可能需要禁用Windows索引。

  • 运行gclient后打开命令提示符并输入where python并确认depot_tools python.bat位于python.exe的任何副本之前。使用gn时未能确保这会导致过度构建 - 请参阅 crbug.com/611087。

更新中

depot_tools运行gclient工具时会自动更新。要禁用自动更新,请设置环境变量DEPOT_TOOLS_UPDATE=0

要手动更新软件包,请update_depot_tools.bat在Windows或./update_depot_toolsLinux或Mac上运行。

仅在Windows上,运行gclient会安装gitpython

使用

获取代码

选择一个空目录并运行以下命令之一:

$ fetch chromium  # Basic checkout for desktop Chromium
$ fetch android   # Chromium checkout for Android platform
$ fetch ios       # Chromium checkout for iOS platform

fetch工具完成,你应该在你的工作目录下:

.gclient   # A configuration file for you source checkout
src/       # Top-level Chromium source checkout.

如果您使用的是Linux,并且是首次获取代码,则需要运行:

$ cd src && ./build/install-build-deps.sh

最后:

$ gclient sync

这将拉出Chromium src检出的所有依赖项。每当您更新主src签出时(包括切换分支时),都将需要运行此命令。

相关文章:

  • 智能指针 unique_ptr 详解
  • C++11中“= delete;“的使用
  • C++Error2208:...尝试引用已删除的函数
  • Ninja 构建系统
  • ICU
  • 交叉编译详解
  • GYP,GN和Ninja
  • Visual C++ 新增功能(2003 - 2015)
  • v8引擎编译全记录2021-2-23
  • c++ mutex
  • windows标准控件的介绍与使用
  • VS2019安装 VisualSVN Server 插件
  • cef / JavaScript集成
  • MFC RichEdit使用方法
  • 代码页
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • JAVA 学习IO流
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • js 实现textarea输入字数提示
  • MQ框架的比较
  • Redux系列x:源码分析
  • SpringCloud集成分布式事务LCN (一)
  • Vue--数据传输
  • 工作手记之html2canvas使用概述
  • 跨域
  • 免费小说阅读小程序
  • 前端之Sass/Scss实战笔记
  • 如何实现 font-size 的响应式
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 回归生活:清理微信公众号
  • ​Python 3 新特性:类型注解
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #14vue3生成表单并跳转到外部地址的方式
  • #Linux(Source Insight安装及工程建立)
  • #预处理和函数的对比以及条件编译
  • $.ajax()方法详解
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (二十三)Flask之高频面试点
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (五)网络优化与超参数选择--九五小庞
  • (转) Android中ViewStub组件使用
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)setTimeout 和 setInterval 的区别
  • (转)一些感悟
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .gitignore文件—git忽略文件
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • ??eclipse的安装配置问题!??
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [ABC294Ex] K-Coloring
  • [ARC066F]Contest with Drinks Hard