|
|
|
CMAKE_EXPORT_COMPILE_COMMANDS
|
|
|
|
-----------------------------
|
|
|
|
|
|
|
|
.. versionadded:: 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:
|
|
|
|
|
|
|
|
.. code-block:: javascript
|
|
|
|
|
|
|
|
[
|
|
|
|
{
|
|
|
|
"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"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
This is initialized by the :envvar:`CMAKE_EXPORT_COMPILE_COMMANDS` environment
|
|
|
|
variable, and initializes the :prop_tgt:`EXPORT_COMPILE_COMMANDS` target
|
|
|
|
property for all targets.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
This option is implemented only by :ref:`Makefile Generators`
|
|
|
|
and :ref:`Ninja Generators`. It is ignored on other generators.
|
|
|
|
|
|
|
|
This option currently does not work well in combination with
|
|
|
|
the :prop_tgt:`UNITY_BUILD` target property or the
|
|
|
|
:variable:`CMAKE_UNITY_BUILD` variable.
|