|
|
@@ -0,0 +1,80 @@
|
|
|
+CMAKE_EXPORT_BUILD_DATABASE
|
|
|
+---------------------------
|
|
|
+
|
|
|
+.. versionadded:: 3.31
|
|
|
+
|
|
|
+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-<CONFIG>``
|
|
|
+ Writes ``build_database_<CONFIG>.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-<LANG>-<CONFIG>``
|
|
|
+ Writes ``build_database_<LANG>_<CONFIG>.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-<LANG>``
|
|
|
+ Writes ``build_database_<LANG>.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.
|