chrome是目前地球上最成功的浏览器,而它的开源项目chromium也是最重要的开源项目之一。
研究chromium的源码,就成为很多人(比如我)重要的工作与学习手段。但是在国内想要check一份可构建的chromium源码其实并不太容易。除了众所周知的原因外,也因为chromium经过长期高速的开发和迭代之后,积累下来了庞大的源码。

如果按官方文档中的方法check源码,默认会check出当前最新的开发版代码。
或者拉回完整的git仓库,再check到指定的稳定版tag。这样很可能会拉回很多我们根本不需要的分支和tag。

实际上,是可以从零开始,直接check出指定的tag代码的。

那么让我们开始之前,假设已经满足了以下条件。

  1. 克服了众所周知的问题。这个只能自己想办法……
  2. 安装了所有需要的开发环境,比如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版本号就可以了。这样可以节省不少的时间。

标签: chromium, git, 开源代码

已有 2 条评论

  1. sutiao sutiao

    有用

    1. 这个方法已经过时了,可以参考新的方法。
      https://winger.alundra4677.ml/index.php/archives/19/

添加新评论