CMAKE_EXPORT_BUILD_DATABASEΒΆ
Added in version 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:
{
"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 CMAKE_EXPORT_BUILD_DATABASE
environment
variable, and initializes the EXPORT_BUILD_DATABASE
target
property for all targets.
Note
This option is implemented only by the 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.