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