直接检出chromium某tag的完整可构建源码。
chrome是目前地球上最成功的浏览器,而它的开源项目chromium也是最重要的开源项目之一。
研究chromium的源码,就成为很多人(比如我)重要的工作与学习手段。但是在国内想要check一份可构建的chromium源码其实并不太容易。除了众所周知的原因外,也因为chromium经过长期高速的开发和迭代之后,积累下来了庞大的源码。
如果按官方文档中的方法check源码,默认会check出当前最新的开发版代码。
或者拉回完整的git仓库,再check到指定的稳定版tag。这样很可能会拉回很多我们根本不需要的分支和tag。
实际上,是可以从零开始,直接check出指定的tag代码的。
那么让我们开始之前,假设已经满足了以下条件。
- 克服了众所周知的问题。这个只能自己想办法……
- 安装了所有需要的开发环境,比如
depot_tools
等。这个可以参考官方文档。
此方法适用于所有平台。以目前最新官方正式版本102.0.5005.63
为例。
首先创建存放代码的目录:
mkdir chromium
cd chromium
mkdir src
创建纯文本文件.gclient
并写入以下内容:
solutions = [
{
"name": "src",
"url": "https://chromium.googlesource.com/chromium/src.git",
"managed": False,
"custom_deps": {},
"custom_vars": {"checkout_pgo_profiles": True,},
},
]
如果是要构建android
平台的浏览器,就在这个文件最后添加一行内容:
target_os = ["android"]
接下来创建一个空的git仓库,来同步指定的tag。
cd src
git init
git remote add origin https://chromium.googlesource.com/chromium/src.git
git fetch origin tag 102.0.5005.63
最后一步就是在从官方的git中同步指定的tag。这个步骤是整个过程中最耗时的一步。具体的时间取决于网络情况与tag的新旧程度。越新的tag,需要同步的数据也就越大。
耐心等待tag同步完成。完成后src
目录下还是空空如也,并没有代码文件。这时候就需要创建一个本地分支,从tag中check出代码。
git checkout -b local_102.0.5005.63 102.0.5005.63
这个步骤很快,完成后目录下就有chromium的代码了。但是目录中的代码还是不能构建出chromium浏览器,还缺少依赖的一些第三方工程,和构建需要的工具链。
接下来继续同步这些内容:
cd ..
gclient sync -D --with_branch_heads --with_tags
这个步骤也会花费一些时间,并且网络不佳的情况下还有可能会失败。不断重试直到最后全部成功就好。
当这个步骤完成后,完整的一份可构建的chromium源码就完成了。你可以构建出自己的chromium浏览器了,具体方法还是参考官方文档。
在这份代码上,还可以继续同步别的tag代码。只要把上面步骤中出现的版本号换成需要的tag版本号就可以了。这样可以节省不少的时间。