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 變數搭配使用時效果不佳。