如何更快地构建 Chromium?

How to build Chromium faster?

仅按照此处的说明 - https://www.chromium.org/developers/how-tos/get-the-code 我已经能够成功构建并获得一个 Chromium 可执行文件,然后我可以 运行。

因此,出于学习目的,我一直在研究代码(向浏览器添加新按钮等)。因此,每次我进行更改(比如在设置工具栏中添加一个新按钮)并使用 ninja 命令构建时,我都需要 3 个多小时才能完成 运行 可执行文件。我猜它会再次构建每个文件。

我有一台相当强大的机器(i7、8GB 内存)运行宁 64 位 Ubuntu。有什么方法可以加快构建速度吗? (目前,我只是按照上面提到的 link 中的说明进行操作,没有其他优化来加速它。)

非常非常感谢!

如果您所做的只是修改几个文件并重建,ninja 将只重建受这些文件影响的对象。当你 运行 ninja -C ... 时,控制台会显示需要构建的目标数量。如果您只修改几个文件,那么高端应该是 ~2000(修改流行的头文件可以触及很多对象)。修改单个 .cpp 将导致仅重建该对象。

当然,您仍然需要重新链接,这可能需要很长时间。为了加快链接速度,请尝试使用组件构建,它将所有内容保存在单独的共享库中,而不是一个需要为任何更改重新链接的大 onw。如果您使用的是 GN,请将 is_component_build=true 添加到 gn args out/${build_dir}。对于 GYP,请参阅 this page

您还可以仔细阅读 faster linux builds,看看这些提示是否适用于您。不幸的是,Chrome 是一个庞大的项目,因此构建自然会很长。但是,完成初始构建后,增量构建应该在几分钟而不是几小时内完成。

按照此处最近更新的说明进行操作:

https://chromium.googlesource.com/chromium/src/+/HEAD/docs/windows_build_instructions.md#Faster-builds

除了使用组件构建之外,您还可以禁用 nacl、使用巨型构建、关闭 webcore 的符号等。巨型构建目前仍处于实验阶段,但它们已经有助于构建时间,并且它们会逐渐提供更多帮助。

完整构建总是需要很长时间,即使是巨型构建,但组件构建应该让增量构建在许多情况下非常快。

要在 Linux 上构建,您可以在以下位置查看如何更快地构建:https://chromium.googlesource.com/chromium/src/+/master/docs/linux_build_instructions.md#faster-builds

其中大部分都需要添加构建参数。要编辑构建参数,您可以在 https://www.chromium.org/developers/gn-build-configuration 查看 GN 构建配置。

您可以通过以下方式编辑构建目录中的构建参数:

$ gn args out/mybuild