vcpkg-configuration.json 참조
파일은 vcpkg-configuration.json
프로젝트 매니페스트의 일부와 함께 vcpkg.json
구성합니다. 파일의 vcpkg-configuration.json
모든 필드는 최상위 프로젝트에서 vcpkg-configuration.json
만 사용되며 모든 종속성에 있는 파일은 무시됩니다.
매니페스트 모드vcpkg-configuration.json
에서 옆에 vcpkg.json
있는 별도의 파일에 있거나 에 포함"vcpkg-configuration" field
할 수 있습니다.
클래식 모드에서 vcpkg는 vcpkg 인스턴스의 루트에 있는 파일을 사용합니다vcpkg-configuration.json
.
vcpkg에서 레지스트리를 사용하는 방법에 대한 개요는 레지스트리 사용을 참조 하세요.
최신 JSON 스키마는 .에서 https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json사용할 수 있습니다. Visual Studio 및 Visual Studio Code와 같은 JSON 스키마 지원을 사용하는 IDE는 이 파일을 사용하여 자동 완성 및 구문 검사를 제공할 수 있습니다. 대부분의 IDE의 경우 이 URL로 vcpkg-configuration.json
설정 "$schema"
해야 합니다.
예시
{
"$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/microsoft/vcpkg-docs",
"reference": "vcpkg-registry",
"baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
"packages": [ "beicode", "beison" ]
}
],
"overlay-ports": [
"./team-ports",
"./custom-ports"
],
"overlay-triplets": [ "./my-triplets" ]
}
다음은 라이브러리의 원본 beicode
으로 프라이빗 레지스트리https://github.com/microsoft/vcpkg-docs/tree/vcpkg-registry
를 추가하는 예제입니다beison
. 다른 모든 포트는 큐레이팅된 카탈로그의 내부 미러에서 찾을 수 있습니다 https://internal/mirror/of/github.com/Microsoft/vcpkg
.
이 예제에서는 소스 코드 리포지토리에 있는 포트 및 삼중항에 대한 사용자 지정 오버레이도 구성합니다.
최상위 필드
속성 | 형식 | 설명 |
---|---|---|
default-registry | 레지스트리 또는 null | 특정 레지스트리가 없는 모든 포트에 사용되는 레지스트리 |
오버레이 포트 | string[] | 오버레이 포트 위치로 사용할 경로 목록 |
오버레이-트리플렛 | string[] | 오버레이 삼중자로 사용할 경로 목록 |
레지스트리 | Registry[] | 포트의 하위 집합에 사용할 추가 레지스트리 |
"default-registry"
더 구체적인 레지스트리가 없는 모든 포트에 사용할 레지스트리입니다. 레지스트리 또는 null입니다. 선택 사항.
패턴 "packages"
과 일치하지 않는 포트는 기본 레지스트리로 확인됩니다. 기본 레지스트리를 지정 null
하면 일치하지 않는 포트가 확인되지 않습니다. 기본 레지스트리를 생략하면 해당 값을 "builtin-baseline"
사용하여 암시적으로 Builtin Registry로 "baseline"
설정됩니다.
"registries"
특정 포트에 사용할 추가 레지스트리입니다. 레지스트리 배열 입니다. 선택 사항.
"overlay-ports"
포트 오버레이 경로 목록입니다. 문자열 배열입니다. 선택 사항.
배열의 각 경로는 다음 중 하나의 이름을 지정해야 합니다.
- 포트, 포함
vcpkg.json
및portfile.cmake
파일이 포함된 디렉터리 또는 - 포트의 이름을 따서 명명된 디렉터리가 포함된 디렉터리입니다(
zlib
vcpkg.json
이 디렉터리에 있어야zlib/vcpkg.json
합니다).
상대 경로는 파일을 기준으로 vcpkg-configuration.json
확인됩니다. 절대 경로는 사용할 수 있지만 권장되지 않습니다.
"overlay-triplets"
삼중 오버레이 경로 목록입니다. 문자열 배열입니다. 선택 사항.
배열의 각 경로는 삼중 파일의 디렉터리를 가리킵니다(triplets 설명서 참조). 상대 경로는 파일을 기준으로 vcpkg-configuration.json
확인됩니다. 절대 경로는 사용할 수 있지만 권장되지 않습니다.
레지스트리 필드
속성 | 필수 | Type | 설명 |
---|---|---|---|
기준선 | Git 및 Builtin 레지스트리 | string | 이 레지스트리의 모든 포트에 대한 최소 버전 제약 조건 |
kind | 예 | string | 사용 중인 레지스트리 유형 |
packages | 예, 기본값이 아닌 경우 | string | 이 레지스트리에서 제공되는 포트 목록 |
path | 파일 시스템 레지스트리 | string | 파일 시스템 레지스트리의 경로 |
reference | 아니요 | string | 사용 가능한 버전에 사용할 Git 참조 |
저장소 | Git 레지스트리 | string | Git 레지스트리의 URI |
레지스트리: "kind"
사용 중인 레지스트리의 유형입니다. 문자열입니다. 필수입니다.
"kind" 값 |
레지스트리 유형 |
---|---|
"filesystem" |
파일 시스템 레지스트리 |
"git" |
Git 레지스트리 |
"builtin" |
Builtin Registry |
레지스트리: "baseline"
이 레지스트리에서 사용할 최소 버전에 대한 레지스트리별 식별자입니다. 문자열입니다. 필수입니다.
Git 레지스트리 및 Builtin Registry의 경우 레지스트리의 리포지토리에 있는 versions/baseline.json
40자 git 커밋 sha입니다.
파일 시스템 레지스트리의 경우 레지스트리에서 정의하는 baseline.json
유효한 json 속성 이름이 될 수 있습니다. 파일 시스템 레지스트리가 기준을 선언하지 않으면 사용된 값은 다음과 같습니다 "default"
.
레지스트리: "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?
(?
유효한 패턴 문자가 아님)
vcpkg