用于生成Clang的JSON编译数据库文件的工具,用于make GNU的构建系统。
它主要针对非cmake(Cmake已经生成编译数据库)大型代码库。受YCM-Generator和Bear等项目的启发,但更快(主要是大型项目),因为在大多数情况下,它不需要干净的构建(如上所述的工具)来生成编译数据库文件,以实现此目的,它使用了诸如-n / --dry-run和-k / - kepand- --keep-going提取编译命令。此外,它比YCM-Generator的假牛蛋白方法更加跨编译友好。
# pip install compiledb
sh-completion/compiledb.bash文件的内容添加到您的.bashrc文件中。compiledb提供了一个make Python包装脚本,除执行Make Build命令外,还更新了与该构建相对应的JSON编译数据库文件,从而产生了类似于BEAR的命令行界面。
要使用CommiledB的“ Make Wrapper”脚本生成compile_commands.json文件,请执行MakeFile Target all :
$ compiledb make compiledb将-C命令转交给GNU make MAKE将所有选项/参数转发,因此,可以使用core/main.mk作为main makefile( -f flag) build compile_commands.json 。
$ compiledb make -f core/main.mk -C build默认情况下, compiledb make生成编译数据库并运行所请求的实际构建命令(充当制造包装器),可以使用-n或--no-build选项跳过构建步骤。
$ compiledb -n make已经设计了compiledb base命令,以便它可以用来从任意文本文件(或stdin)中解析命令,假设它具有构建日志(理想地使用make -Bnwk命令生成),并生成相应的JSON编译数据库。
例如,要从build-log.txt文件生成编译数据库,请使用以下命令。
$ compiledb --parse build-log.txt或它的等效物:
$ compiledb < build-log.txt甚至,要使输出的输出并将汇编数据库打印到标准输出:
$ make -Bnwk | compiledb -o-默认情况下, compiledb在“参数”列表格式中生成JSON编译数据库。也通过使用--command-style标志来支持“命令”字符串格式:
$ compiledb --command-style make我之所以实现此工具,是因为我需要为导航和研究目的索引一些AOSP的模块(在没有YCM-Generator和Bear等当前可用工具的令人满意的结果之后)。因此,我已经重新设计了YCM-generator,它导致了compilesb/parser.py的初始版本,并成功用于生成compile_commands.json ,以在〜1分钟内在Docker容器中运行的AOSP模块,然后可以将其与一些出色的工具一起使用,例如:例如:
注意:
总是欢迎补丁:)
GNU GPLV3