CMAKE_EXPORT_BUILD_DATABASE

在版本 3.31 中添加。

注意

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

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

如果启用,将生成一个包含使用任何工具编译目标的 C++ 模块源所需信息的 build_database.json 文件。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。为所有语言和配置写入构建数据库。在多配置生成器中,可以认为其他构建配置数据库存在。