Share via


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/northwindtraders/vcpkg-registry",
      "baseline": "dacf4de488094a384ca2c202b923ccc097956e0c",
      "packages": [ "beicode", "beison" ]
    }
  ],
  "overlay-ports": [
    "./team-ports",
    "./custom-ports"
   ],
  "overlay-triplets": [ "./my-triplets" ]
}

다음은 라이브러리의 원본 beicode 으로 프라이빗 레지스트리https://github.com/northwindtraders/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
  • 포트의 이름을 따서 명명된 포트 디렉터리가 포함된 디렉터리입니다(zlibvcpkg.json이 디렉터리에 있어야 zlib/vcpkg.json합니다).

상대 경로는 파일을 기준으로 vcpkg-configuration.json 확인됩니다. 절대 경로는 사용할 수 있지만 권장되지 않습니다.

"overlay-triplets"

삼중 오버레이 경로 목록입니다. 문자열 배열입니다. 선택 사항.

배열의 각 경로는 삼중 파일의 디렉터리를 가리킵니다(triplets 설명서 참조). 상대 경로는 파일을 기준으로 vcpkg-configuration.json 확인됩니다. 절대 경로는 사용할 수 있지만 권장되지 않습니다.

레지스트리 필드

속성 필수 Type 설명
기준선 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여야 합니다.

파일 시스템 레지스트리의 경우 레지스트리에서 정의하는 유효한 기준 문자열일 수 있습니다.

레지스트리: "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? (? 유효한 패턴 문자가 아님)

포트 이름을 확인하는 방법에 대한 자세한 내용은 레지스트리 사용 설명서를 참조하세요.