vcpkg-configuration.json Reference
The vcpkg-configuration.json
file forms part of a project's
manifest, along with
vcpkg.json
. All fields in the vcpkg-configuration.json
file
are only used from the top-level project -- the vcpkg-configuration.json
files
in any dependencies are ignored.
In Manifest Mode, vcpkg-configuration.json
can
be in a separate file beside vcpkg.json
or it can be embedded
in the "vcpkg-configuration" field
.
In Classic Mode, vcpkg will use the
vcpkg-configuration.json
file in the
root of the vcpkg instance.
For an overview of using registries with vcpkg, see Using Registries.
The latest JSON Schema is available at https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json. IDEs with JSON Schema support such as Visual Studio and Visual Studio Code can use this file to provide autocomplete and syntax checking. For most IDEs, you should set "$schema"
in your vcpkg-configuration.json
to this URL.
Example
{
"$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" ]
}
This example adds a private registry, https://github.com/northwindtraders/vcpkg-registry
, as the source for the libraries beicode
and beison
. All other ports are found from an internal mirror of the Curated Catalog hosted at https://internal/mirror/of/github.com/Microsoft/vcpkg
.
The example also configures custom overlays for ports and triplets that are present in the source code repository.
Top-level Fields
Name | Type | Description |
---|---|---|
default-registry | Registry or null | Registry used for all ports without a specific registry |
overlay-ports | string[] | List of paths to use as port overlays |
overlay-triplets | string[] | List of paths to use as triplet overlays |
registries | Registry[] | Additional registries to use for subsets of ports |
"default-registry"
The registry to use for all ports without a more specific registry. A Registry or null. Optional.
Ports that do not match any "packages"
pattern are resolved to the default registry. If the default registry is specified as null
, ports that do not match will fail to resolve. If the default registry is omitted, it will implicitly be set to a Builtin Registry using the value of "builtin-baseline"
as the "baseline"
.
"registries"
Additional registries to use for specific ports. An array of Registries. Optional.
"overlay-ports"
A list of port overlay paths. An array of strings. Optional.
Each path in the array must point to either:
- A port directory containing
vcpkg.json
andportfile.cmake
- A directory containing port directories named after the ports (
zlib
'svcpkg.json
must be atzlib/vcpkg.json
).
Relative paths are resolved relative to the vcpkg-configuration.json
file. Absolute paths can be used but are discouraged.
"overlay-triplets"
A list of triplet overlay paths. An array of strings. Optional.
Each path in the array must point to a directory of triplet files (see triplets documentation). Relative paths are resolved relative to the vcpkg-configuration.json
file. Absolute paths can be used but are discouraged.
Registry Fields
Name | Required | Type | Description |
---|---|---|---|
baseline | Yes | string | Minimum version constraint on all ports from this registry |
kind | Yes | string | Type of registry being used |
packages | Yes, if not default | string | List of ports to come from this registry |
path | Filesystem Registry | string | Path to the Filesystem registry |
reference | No | string | Git reference to use for available versions |
repository | Git Registry | string | URI of the Git registry |
Registry: "kind"
The type of registry being used. A string. Required.
"kind" Value |
Registry Type |
---|---|
"filesystem" |
Filesystem Registry |
"git" |
Git Registry |
"builtin" |
Builtin Registry |
Registry: "baseline"
The registry-specific identifier for the minimum versions to use from this registry. A string. Required.
For Git Registries and for the Builtin Registry, it should be a 40-character git commit sha in the registry's repository that contains a versions/baseline.json
.
For Filesystem Registries, it can be any valid baseline string that the registry defines.
Registry: "reference"
The Git reference used to list available versions of a Git Registry. A string. Optional.
If not specified, defaults to HEAD
. This field can be a topic branch to access versions that are not yet fully published.
Registry: "repository"
The URI of the Git Registry. A string. Required for Git Registries.
The string can be any URI format that Git understands:
"https://github.com/microsoft/vcpkg"
"git@github.com:microsoft/vcpkg"
"/dev/vcpkg-registry"
Relative paths have unspecified behavior that will change in future versions of vcpkg.
Registry: "path"
The path to the Filesystem Registry. A string. Required for Filesystem Registries.
Relative paths are resolved relative to the vcpkg-configuration.json
.
Registry: "packages"
The list of port patterns assigned to this registry. An array of strings. Required for all registries outside "default-registry"
.
Each entry must be either:
- The name of a package
- A package name prefix, followed by
*
(Added in tool version 2022-12-14)
Package patterns may contain only lowercase letters, digits, and -
, with an optional trailing *
.
Examples of valid patterns:
*
: Matches all port namesboost
: Matches only the portboost
b*
: Matches ports that start with the letterb
boost-*
: Matches ports that start with the prefixboost-
Examples of invalid patterns:
*a
(*
must be the last character in the prefix)a**
(only one*
is allowed)a+
(+
is not a valid pattern character)a?
(?
is not a valid pattern character)
See the Using Registries documentation for more information on how port names are resolved.
Σχόλια
https://aka.ms/ContentUserFeedback.
Σύντομα διαθέσιμα: Καθ' όλη τη διάρκεια του 2024 θα καταργήσουμε σταδιακά τα ζητήματα GitHub ως μηχανισμό ανάδρασης για το περιεχόμενο και θα το αντικαταστήσουμε με ένα νέο σύστημα ανάδρασης. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα:Υποβολή και προβολή σχολίων για