CMAKE_EXPORT_COMPILE_COMMANDS

From Get docs
Cmake/docs/3.21/variable/cmake export compile commands


CMAKE_EXPORT_COMPILE_COMMANDS

New in version 3.5.


Enable/Disable output of compile commands during generation.

If enabled, generates a compile_commands.json file containing the exact compiler calls for all translation units of the project in machine-readable form. The format of the JSON file looks like:

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

  ...

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

This is initialized by the CMAKE_EXPORT_COMPILE_COMMANDS environment variable, and initializes the EXPORT_COMPILE_COMMANDS target property for all targets.

Note

This option is implemented only by Makefile Generators and the Ninja. It is ignored on other generators.

This option currently does not work well in combination with the UNITY_BUILD target property or the CMAKE_UNITY_BUILD variable.


© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.21/variable/CMAKE_EXPORT_COMPILE_COMMANDS.html