该文件
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
,作为库
beicode
和
beison
的源。 所有其他端口都是从 托管的策展目录的内部镜像中找到的
https://internal/mirror/of/github.com/Microsoft/vcpkg
。
该示例还为源代码存储库中存在的端口和三元组配置自定义覆盖。
"default-registry"
要用于所有端口的注册表,没有更具体的注册表。
注册表
或 null。 可选。
与任何
"packages"
模式不匹配的端口将解析为默认注册表。 如果将默认注册表指定为
null
,则不匹配的端口将无法解析。 如果省略默认注册表,则将使用 的值
"builtin-baseline"
隐
"baseline"
式将其设置为
内置注册表
。
"registries"
用于特定端口的其他注册表。
注册表
数组。 可选。
"overlay-ports"
端口覆盖路径的列表。 字符串数组。 可选。
数组中的每个路径必须指向以下任一:
包含 和 的
vcpkg.json
端口目录
portfile.cmake
包含以端口 (
zlib
命名的端口目录的
vcpkg.json
目录必须位于
zlib/vcpkg.json
) 。
相对路径相对于 文件进行
vcpkg-configuration.json
解析。 可以使用绝对路径,但不建议使用。
"overlay-triplets"
三重覆盖路径的列表。 字符串数组。 可选。
数组中的每个路径都必须指向三元组文件的目录, (
查看三元组文档
) 。 相对路径相对于 文件进行
vcpkg-configuration.json
解析。 可以使用绝对路径,但不建议使用。
注册表字段
注册表
:
"baseline"
要从此注册表使用的最低版本的特定于注册表的标识符。 一个字符串。 必需。
对于
Git 注册表
和
内置注册表
,它应该是注册表存储库中包含
versions/baseline.json
的 40 个字符的 git commit 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"
文件系统注册表
的路径。 一个字符串。 文件系统注册表是必需的。
相对路径相对于
vcpkg-configuration.json
解析。
注册表
:
"packages"
分配给此注册表的端口模式列表。 字符串数组。 对于 外部
"default-registry"
的所有注册表是必需的。
每个条目都必须是:
包名称前缀,后跟
*
工具
版本 2022-12-14 中添加
的 ()
包模式只能包含小写字母、数字和
-
,并带有可选的尾随
*
。
有效模式的示例:
*
:匹配所有端口名称
boost
:仅匹配端口
boost
b*
:匹配以字母开头的端口
b
boost-*
:匹配以 前缀开头的端口
boost-
无效模式的示例:
*a
*
(必须是前缀) 中的最后一个字符
a**
(只允许一个
*
)
a+
(
+
不是有效的模式字符)
a?
(
?
不是有效的模式字符)
有关如何解析端口名称的详细信息,请参阅
使用注册表文档
。