SwiftCompilationDatabase 从 Swift 编译器生成一个 compile_commands.json
文件。
对于像 iCompleteMe 这样的需要在构建之外调用 swift 编译器的工具来说,JSONCompilationDatabase 使得获取文件的所有参数变得容易。
首先,从源码构建
make
SwiftCompilationDatabase 依赖于 Swift 的可解析输出特性。只需运行带有启用可解析输出 (-parseable-output
) 的 swift 编译器,并将结果发送到 SwiftCompilationDatabase。
实际上,这意味着进行一次干净的构建,以便所有前端调用都被记录到数据库中。
swiftc main.swift -parseable-output 2>&1 | swift-compilation-database
SwiftCompilationDatabase 可以很好地与 SwiftPM 和 swift build
一起工作。
进行一次干净的构建并管道输出结果
swift build -v -Xswiftc -parseable-output --build-path .build-comp-db 2>&1 | swift-compilation-database
要从 Xcode 创建编译数据库,我推荐使用 XcodeCompilationDatabase