CMAKE_EXPORT_BUILD_DATABASE

在版本 3.31 中添加。

注意

此变量仅在通过 CMAKE_EXPERIMENTAL_EXPORT_BUILD_DATABASE 门控启用实验性构建数据库支持时才有意义。

启用/禁用在构建过程中输出模块编译命令。

如果启用,将生成一个 build_database.json 文件,其中包含使用任何工具链编译目标 C++ 模块源所需的信息。JSON 文件的格式如下:

{
  "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" : []
    }
  ]
}

此变量由 CMAKE_EXPORT_BUILD_DATABASE 环境变量初始化,并为所有目标初始化 EXPORT_BUILD_DATABASE 目标属性。

注意

此选项仅由 Ninja Generators 实现。在其他生成器上会被忽略。

在支持并启用时,会创建许多目标,以便能够构建一个仅包含问题工具所需命令的文件。

cmake_build_database-<CONFIG>

写入 build_database_<CONFIG>.json。为给定配置的所有语言的整个构建写入构建数据库。如果配置名称为空字符串,则不可用。

cmake_build_database-<LANG>-<CONFIG>

写入 build_database_<LANG>_<CONFIG>.json。为给定配置和语言的整个构建写入构建数据库。如果配置名称为空字符串,则不可用。

cmake_build_database-<LANG>

写入 build_database_<LANG>.json。为给定语言的所有配置的整个构建写入构建数据库。在多配置生成器中,可以假定其他构建配置数据库已存在。

cmake_build_database

写入 build_database.json。为所有语言和配置写入构建数据库。在多配置生成器中,可以假定其他构建配置数据库已存在。