统一构建¶
Firefox 构建系统使用“统一构建”(或在其他地方称为“unity builds”)技术来提高编译性能。它不是单独编译源文件,而是将同一目录中的文件组连接在一起,然后一次性批量编译。
可以使用 moz.build
文件中的 UNIFIED_SOURCES
变量配置统一构建。
在统一环境外部构建¶
如上所述,统一构建会导致源文件隐式地相互依赖,这不仅会导致意外的构建错误,而且在使用源代码分析工具时也可能导致问题。为了解决这个问题,我们将使用“非统一”构建,该构建尝试尽可能多地单独编译文件。
要在非统一模式下构建,请在 mozconfig
中设置以下标志
ac_add_options --disable-unified-build
其他说明:¶
某些 IDE(例如带有
clangd
的 VSCode)以独立模式构建文件,因此它们可能显示比mach build
更多的错误。每个块的文件数量可以在
moz.build
文件中使用FILES_PER_UNIFIED_FILE
变量进行调整。请注意,更改块大小可能会导致如上所述的编译错误。我们很乐意接受修复有问题的统一构建块的补丁(例如通过添加包含或命名空间注释)。