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.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)¶
获取指定文件的警告。