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 生成器 实现。在其他生成器上将被忽略。

当支持并启用时,将创建许多目标,以便可以构建一个文件,其中仅包含目标工具所需的命令。

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。为所有语言和配置写入构建数据库。在多配置生成器中,可能假定存在其他构建配置数据库。