mozbuild.compilation 包

子模块

mozbuild.compilation.codecomplete 模块

mozbuild.compilation.codecomplete.compileflags(command_context, what)

mozbuild.compilation.database 模块

class mozbuild.compilation.database.CompileDBBackend(environment)

基类: CommonBackend

CFLAGS = {'.c': 'CFLAGS', '.cpp': 'CXXFLAGS', '.m': 'CFLAGS', '.mm': 'CXXFLAGS'}
COMPILERS = {'.c': 'CC', '.cpp': 'CXX', '.m': 'CC', '.mm': 'CXX'}
consume_finished()

当 consume() 完成所有对象的处理时调用。

consume_object(obj)

使用单个 TreeMetadata 实例。

这是子类用于对构建元数据做出反应的主要方法。

mozbuild.compilation.util 模块

mozbuild.compilation.util.check_top_objdir(topobjdir)
mozbuild.compilation.util.get_build_vars(directory, cmd)
mozbuild.compilation.util.sanitize_cflags(flags)

mozbuild.compilation.warnings 模块

class mozbuild.compilation.warnings.CompilerWarning

基类: dict

表示单个编译器警告。

copy()

返回此编译器警告的副本。

class mozbuild.compilation.warnings.WarningsCollector(cb, objdir=None)

基类: object

从文本数据中收集警告。

此类的实例接收数据(通常是编译器调用的输出),并将其解析为警告。

收集器通过增量接收数据来工作,通常是编译器逐行输出。因此,它可以维护状态以解析多行警告消息。

process_line(line)

获取一行文本并处理其中的警告。

class mozbuild.compilation.warnings.WarningsDatabase

基类: object

保存警告集合。

警告数据库是一个半智能容器,用于保存构建过程中遇到的警告。

警告数据库以 JSON 文件为后端。但这对使用者是透明的。

在大多数情况下,警告数据库是只插入的。当遇到警告时,调用者只需将其盲目插入数据库。数据库会确定它是否重复等。

在开发过程中,随着源代码的更改,警告通常会发生细微变化。例如,行号将不一致。WarningsDatabase 通过存储警告发生的文件的哈希值来处理此问题。在警告插入时,如果文件的哈希值与数据库中存储的不匹配,则该文件的现有警告将从数据库中清除。

调用者应通过调用 prune() 定期从数据库中修剪旧的、无效的警告。执行此操作的最佳时间是在构建结束时。

deserialize(fh)

将序列化内容从句柄加载到当前实例中。

has_file(filename)

我们是否对指定文件有任何警告。

insert(warning, compute_hash=True)
load_from_file(filename)

从文件加载数据库。

prune()

修剪数据库内容。

这会删除不再有效的警告。如果警告所在的其文件不存在或内容已更改,则警告将不再有效。

内容更改检查会捕获文件先前包含警告但现在不再包含的情况。

save_to_file(filename)

将数据库保存到文件。

serialize(fh)

将数据库序列化到打开的文件句柄中。

type_counts(dirpath=None)

返回警告类型与其计数的映射。

property warnings

此数据库中的所有 CompilerWarning 实例。

warnings_for_file(filename)

获取指定文件的警告。

模块内容