SwiftCompilationDatabase

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

SwiftPM / Swift Build

SwiftCompilationDatabase 可以很好地与 SwiftPM 和 swift build 一起工作。

进行一次干净的构建并管道输出结果

swift build -v -Xswiftc -parseable-output --build-path .build-comp-db 2>&1 | swift-compilation-database

Xcode 用法

要从 Xcode 创建编译数据库,我推荐使用 XcodeCompilationDatabase