영어로 읽기

다음을 통해 공유


개념: 포트

vcpkg의 포트는 파일 집합을 생성하는 버전이 지정된 레시피입니다. 포트를 실행하면 새 헤더 또는 이진 파일을 생성하여 설치 그래프에 영향을 줍니다. 포트에는 다른 포트에 대한 종속성이 있을 수 있으며 특정 기능을 사용하도록 설정하면 추가 종속성이 필요할 수 있습니다. 이러한 종속성은 포트 메타데이터에 반영되어야 합니다. 최소한 포트에는 다음이 포함됩니다.

  • 패키지에 대한 메타데이터: 이름, 버전, 지원되는 기능, 종속성 등
  • 필요한 경우 패키지를 획득, 빌드 및 설치하는 지침입니다.

또한 포트에는 다음이 포함될 수 있습니다.

  • 패키지의 소스 코드에 적용할 패치
  • 프로젝트의 빌드 시스템과 통합하기 위한 지침

포트파일(portfile.cmake)

모든 포트는 포트파일(이름이 지정된 portfile.cmake파일)을 포함해야 합니다. 포트파일은 vcpkg 환경 내에서 패키지를 빌드하고 설치하는 방법에 대한 지침을 포함하는 스크립트입니다. 포트파일에서 수행하는 몇 가지 일반적인 작업은 다음과 같습니다.

  • 패키지의 소스 코드를 다운로드합니다.
  • 업스트림 빌드 시스템을 사용하여 패키지를 빌드합니다.
  • 빌드 출력을 vcpkg 설치 트리에 복사합니다.
  • 빌드 시스템 통합 파일을 설치합니다.

vcpkg.json

이 파일은 vcpkg.json vcpkg 포트에 포함된 패키지에 대한 메타데이터를 설명합니다. 이 파일은 패키지의 이름, 버전, 설명, 종속성, 지원되는 기능 및 플랫폼 등의 특성을 정의합니다. vcpkg.json 자세한 내용은 파일 참조를 참조하세요.

CONTROL 파일

경고

CONTROL 파일은 더 이상 사용되지 않으며 이전 버전과의 호환성을 위해서만 보존됩니다.

CONTROL vcpkg의 파일은 vcpkg가 설치할 수 있는 패키지 또는 "포트"에 대한 세부 정보를 지정하는 메타데이터 파일로 사용됩니다. 이러한 파일은 더 이상 사용되지 않으며 새 포트에 대한 매니페스트 파일로 vcpkg.json 대체되었습니다. 그러나 이전 버전과의 호환성을 위해 유지됩니다. 자세한 내용은 control-files를 참조하세요.

패치 파일

특정 시나리오에서는 포트에 패치 파일이 포함될 수 있습니다. 이러한 파일은 기존 문제를 해결하거나 다른 구성 요소와의 호환성을 기본 데 필수적인 라이브러리의 소스 코드를 수정합니다. 빌드 프로세스가 시작되기 전에 패치가 포트파일에서 실행되는 단계의 일부로 적용되어 원활하고 오류가 없는 라이브러리 통합을 용이하게 합니다. 자세한 내용은 기본tainer-guide를 참조하세요.

포트 범주

포트 범주는 기본tainers가 vcpkg 내에서 서로 다른 포트가 하는 역할을 명확히 하는 데 사용하는 구어체 용어입니다. 이러한 범주는 일반적인 기능을 설명하는 데 도움이 되지만, 해당 기능 및 사용 사례에 따라 지정된 포트가 여러 범주에 속하거나 전혀 속하지 않을 수 있습니다.

표준 포트

표준 포트는 원본에서 라이브러리를 빌드하거나 헤더 전용 라이브러리에 대한 헤더 파일을 제공하는 데 사용됩니다. 라이브러리를 획득, 빌드 및 설치하는 데 필요한 지침과 메타데이터가 포함되어 있습니다. 큐레이팅된 레지스트리의 라이브러리 대부분은 표준 포트입니다.

메타 포트

메타 포트는 자체 빌드 파일 없이 설치 그래프에 제약 조건을 적용하는 역할을 합니다. 이러한 포트는 종종 단일 이름으로 관련 라이브러리 집합을 그룹화하거나 대체 가능한 구성 요소에 대한 간접 참조 계층으로 사용되는 데 사용됩니다. 예를 들어 boost 보다 쉬운 종속성 관리를 위해 여러 Boost 라이브러리를 단일 이름으로 그룹화한 메타 포트입니다.

스크립트 포트

스크립트 포트에는 주로 vcpkg 내의 내부 작업 또는 다른 포트에서 사용하기 위한 유틸리티 스크립트가 포함되어 있습니다. 이러한 포트를 사용하면 유틸리티 스크립트의 버전 관리가 가능하므로 호환성 및 표준화가 기본. 예를 들어 vcpkg-cmake 도우미 함수를 노출하는 스크립트 포트입니다 vcpkg_cmake_configure() .

다음 단계

이 문서에서는 vcpkg의 포트에 대한 개요를 제공하여 필수 요소와 다양한 범주를 자세히 설명합니다. 고급 항목 및 자세한 가이드는 다음을 참조하세요.