CMAKE_EXPORT_BUILD_DATABASE --------------------------- .. versionadded:: 3.31 .. note :: This variable is meaningful only when experimental support for build databases has been enabled by the ``CMAKE_EXPERIMENTAL_EXPORT_BUILD_DATABASE`` gate. Enable/Disable output of module compile commands during the build. If enabled, generates a ``build_database.json`` file containing the information necessary to compile a target's C++ module sources with any tooling. The format of the JSON file looks like: .. code-block:: javascript { "version": 1, "revision": 0, "sets": [ { "family-name" : "export_build_database", "name" : "export_build_database@Debug", "translation-units" : [ { "arguments": [ "/path/to/compiler", "...", ], "baseline-arguments" : [ "...", ], "local-arguments" : [ "...", ], "object": "CMakeFiles/target.dir/source.cxx.o", "private": true, "provides": { "importable": "path/to/bmi" }, "requires" : [], "source": "path/to/source.cxx", "work-directory": "/path/to/working/directory" } ], "visible-sets" : [] } ] } This is initialized by the :envvar:`CMAKE_EXPORT_BUILD_DATABASE` environment variable, and initializes the :prop_tgt:`EXPORT_BUILD_DATABASE` target property for all targets. .. note:: This option is implemented only by the :ref:`Ninja Generators`. It is ignored on other generators. When supported and enabled, numerous targets are created in order to make it possible to build a file containing just the commands that are needed for the tool in question. ``cmake_build_database-`` Writes ``build_database_.json``. Writes a build database for the entire build for the given configuration and all languages. Not available if the configuration name is the empty string. ``cmake_build_database--`` Writes ``build_database__.json``. Writes build database for the entire build for the given configuration and language. Not available if the configuration name is the empty string. ``cmake_build_database-`` Writes ``build_database_.json``. Writes build database for the entire build for the given language and all configurations. In a multi-config generator, other build configuration database may be assumed to exist. ``cmake_build_database`` Writes to ``build_database.json``. Writes build database for all languages and configurations. In a multi-config generator, other build configuration database may be assumed to exist.