CMAKE_EXPORT_COMPILE_COMMANDS

在版本 3.5 中添加。

在生成期间启用/禁用编译命令的输出。

如果已启用,则生成一个 compile_commands.json 文件,其中包含机器可读形式的该项目所有转换单元的确切编译器调用。JSON 文件的格式如下所示

[
  {
    "directory": "/home/user/development/project",
    "command": "/usr/bin/c++ ... -c ../foo/foo.cc",
    "file": "../foo/foo.cc",
    "output": "../foo.dir/foo.cc.o"
  },

  ...

  {
    "directory": "/home/user/development/project",
    "command": "/usr/bin/c++ ... -c ../foo/bar.cc",
    "file": "../foo/bar.cc",
    "output": "../foo.dir/bar.cc.o"
  }
]

这是由 CMAKE_EXPORT_COMPILE_COMMANDS 环境变量初始化的,并将 EXPORT_COMPILE_COMMANDS 目标属性初始化为所有目标。

注意

此选项仅由 Makefile 生成器Ninja 生成器 实现。它会在其他生成器上被忽略。

此选项目前不能与 UNITY_BUILD 目标属性或 CMAKE_UNITY_BUILD 变量很好地结合使用。