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。為所有語言和組態寫入建置資料庫。在多組態產生器中,可以假設存在其他建置組態資料庫。