vcpkg-configuration.json參考

檔案vcpkg-configuration.json會形成專案指令清單一部分,以及 vcpkg.json。 檔案中的所有 vcpkg-configuration.json 欄位只會從最上層專案使用 -- vcpkg-configuration.json 會忽略任何相依性的檔案。

指令清單模式中, vcpkg-configuration.json 可以位於 旁邊的 vcpkg.json 個別檔案中,也可以內嵌在 中 "vcpkg-configuration" field

傳統模式中,vcpkg 會使用 vcpkg-configuration.json vcpkg 實例根目錄中的檔案。

如需搭配 vcpkg 使用登錄的概觀,請參閱 使用登錄

最新的 JSON 架構可在取得 https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json。 具有 JSON 架構支援的 IDE,例如 Visual Studio 和 Visual Studio Code,可以使用此檔案來提供自動完成和語法檢查。 對於大部分的 IDE,您應該將 中的 vcpkg-configuration.json 設定"$schema"為此 URL。

範例

{
  "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json",
  "default-registry": {
    "kind": "git",
    "repository": "https://internal/mirror/of/github.com/Microsoft/vcpkg",
    "baseline": "eefee7408133f3a0fef711ef9c6a3677b7e06fd7"
  },
  "registries": [
    {
      "kind": "git",
      "repository": "https://github.com/northwindtraders/vcpkg-registry",
      "baseline": "dacf4de488094a384ca2c202b923ccc097956e0c",
      "packages": [ "beicode", "beison" ]
    }
  ],
  "overlay-ports": [
    "./team-ports",
    "./custom-ports"
   ],
  "overlay-triplets": [ "./my-triplets" ]
}

本範例會將私人登錄 https://github.com/northwindtraders/vcpkg-registry新增為連結庫 beicodebeison的來源。 從裝載於 https://internal/mirror/of/github.com/Microsoft/vcpkg之策展目錄的內部鏡像中找到所有其他埠。

此範例也會為原始程式碼存放庫中存在的埠和三重疊設定自定義重疊。

最上層欄位

名稱 類型​​ 描述
default-registry 登錄 或 Null 用於沒有特定登錄之所有埠的登錄
overlay-ports string[] 要作為埠重疊使用的路徑清單
overlay-triplets string[] 要作為三重疊使用的路徑清單
登記處 Registry[] 用於埠子集的其他登錄

"default-registry"

要用於不含更特定登錄之所有埠的登錄。 登錄或 Null。 選擇性。

不符合任何 "packages" 模式的埠會解析為預設登錄。 如果預設登錄指定為 null,不符合的埠將無法解析。 如果省略默認登錄,則會使用的值"builtin-baseline"隱含地設定為 "baseline"Builtin Registry。

"registries"

要用於特定埠的其他登錄。 登錄陣列。 選擇性。

"overlay-ports"

埠重疊路徑的清單。 字串的陣列。 選擇性。

陣列中的每個路徑都必須指向下列其中一個:

  • 包含 vcpkg.json 和的埠目錄 portfile.cmake
  • 目錄,包含以埠命名的vcpkg.json通訊埠目錄(zlib必須位於 zlib/vcpkg.json)。

相對路徑會相對於 vcpkg-configuration.json 檔案進行解析。 您可以使用絕對路徑,但不建議使用。

"overlay-triplets"

三重迭路徑的清單。 字串的陣列。 選擇性。

陣列中的每個路徑都必須指向三重檔案的目錄(請參閱三重檔)。 相對路徑會相對於 vcpkg-configuration.json 檔案進行解析。 您可以使用絕對路徑,但不建議使用。

登錄欄位

名稱 必要 類型​ 描述
基線 Yes string 此登錄中所有埠的最低版本限制
種類 Yes string 使用的登錄類型
是,如果不是預設值 string 要來自此登錄的埠清單
path 檔案系統登錄 string 檔案系統登錄的路徑
reference No string 用於可用版本的 Git 參考
存儲庫 Git 登錄 string Git 登錄的 URI

登入"kind"

正在使用的登錄類型。 字串。 必要。

"kind" 登錄類型
"filesystem" 檔案系統登錄
"git" Git 登錄
"builtin" 內建登錄

登入"baseline"

此登錄中要使用的最低版本之登錄特定標識碼。 字串。 必要。

針對 Git 登錄Builtin Registry,它應該是登錄 versions/baseline.json存放庫中包含的 40 個字元 git 認可 sha。

針對 檔案系統登錄,它可以是登錄所定義的任何有效基準字串。

登入"reference"

用來列出 Git 登錄可用版本的 Git 參考。 字串。 選擇性。

如果未指定,則預設為 HEAD。 此欄位可以是主題分支,可存取尚未完全發行的版本。

登入"repository"

Git 登錄URI。 字串。 Git 登錄的必要專案。

字串可以是 Git 瞭解的任何 URI 格式:

  • "https://github.com/microsoft/vcpkg"
  • "git@github.com:microsoft/vcpkg"
  • "/dev/vcpkg-registry"

相對路徑具有未來 vcpkg 版本中變更的未指定行為。

登入"path"

Filesystem Registry 的路徑。 字串。 檔系統登錄的必要專案。

相對路徑會相對於 vcpkg-configuration.json解析。

登入"packages"

指派給此登錄的埠模式清單。 字串的陣列。 外部 "default-registry"的所有登入都需要 。

每個項目都必須是:

  • 封裝的名稱
  • 套件名稱前置詞,後面接著 *已在工具版本 2022-12-14 中新增)

套件模式只能包含小寫字母、數位和 -,且具有選擇性尾端 *

有效模式的範例:

  • *:符合所有埠名稱
  • boost:只比對埠 boost
  • b*:比對以字母開頭的埠 b
  • boost-*:比對開頭為前置詞的埠 boost-

不合法模式的範例:

  • *a* 必須是前置詞中的最後一個字元)
  • a** (只允許一個 *
  • a++ 不是有效的模式字元)
  • a?? 不是有效的模式字元)

如需如何解析埠名稱的詳細資訊,請參閱使用登錄檔