Compartir a través de


Concepto: Puertos

Un puerto en vcpkg es una receta con versiones que genera un conjunto de archivos. La ejecución de un puerto afecta al gráfico de instalación mediante la generación de nuevos archivos binarios o encabezados. Los puertos pueden tener dependencias en otros puertos y pueden requerir dependencias adicionales cuando se habilitan determinadas características. Estas dependencias deben reflejarse en los metadatos de los puertos. Como mínimo, un puerto contiene:

  • Metadatos sobre el paquete: nombre, versión, características admitidas, dependencias, etc.
  • Instrucciones para adquirir, compilar si es necesario e instalar el paquete.

Además, los puertos pueden incluir:

  • Revisiones que se aplican al código fuente del paquete
  • Instrucciones para integrar con el sistema de compilación del proyecto

Portfile (portfile.cmake)

Todos los puertos deben contener un archivo portfile (un archivo denominado portfile.cmake). Un archivo portfile es un script que contiene instrucciones sobre cómo compilar e instalar un paquete dentro del entorno de vcpkg. Algunas tareas comunes realizadas por los archivos port son:

  • Descargue el código fuente de un paquete.
  • Compile el paquete mediante el sistema de compilación ascendente.
  • Copie la salida de compilación en el árbol de instalación de vcpkg.
  • Instale los archivos de integración del sistema de compilación.

vcpkg.json

El vcpkg.json archivo describe los metadatos sobre el paquete contenido en el puerto vcpkg. Este archivo define atributos como el nombre, la versión, la descripción, las dependencias, las características y plataformas compatibles del paquete, etc. Consulte la referencia de vcpkg.json archivo para obtener más información.

Archivos CONTROL

Advertencia

CONTROL los archivos están en desuso y solo se conservan para la compatibilidad con versiones anteriores.

CONTROL los archivos de vcpkg sirven como archivos de metadatos que especifican detalles sobre un paquete o "puerto", que vcpkg puede instalar. Estos archivos están en desuso y han sido reemplazados en gran medida por vcpkg.json archivos de manifiesto para los nuevos puertos. Sin embargo, se conservan por motivos de compatibilidad con versiones anteriores. Consulte control-files para obtener más información.

Archivos de revisión

En determinados escenarios, un puerto podría incluir archivos de revisión. Estos archivos llevan modificaciones al código fuente de la biblioteca, que son esenciales para corregir problemas existentes o para mantener la compatibilidad con otros componentes. Antes de que comience el proceso de compilación, las revisiones se aplican como parte de los pasos ejecutados por el archivo port, lo que facilita la integración sin errores y sin errores de la biblioteca. Consulte la guía de mantenimiento para obtener más información.

Categorías de puertos

Las categorías de puertos son términos coloquiales que los mantenedores usan para articular los roles que desempeñan los distintos puertos dentro de vcpkg. Aunque estas categorías ayudan a describir las funcionalidades generales, vale la pena tener en cuenta que cualquier puerto determinado puede pertenecer a varias categorías o quizás ninguna en absoluto, en función de sus características y casos de uso.

Puerto estándar

Un puerto estándar sirve como receta para compilar bibliotecas a partir de origen o proporcionar archivos de encabezado para bibliotecas de solo encabezado. Contiene las instrucciones y metadatos necesarios para adquirir, compilar e instalar la biblioteca. La gran mayoría de las bibliotecas del registro mantenido son puertos estándar.

Meta port

Un meta puerto sirve para imponer restricciones en el grafo de instalación sin tener sus propios archivos de compilación. Estos puertos se suelen usar para agrupar un conjunto de bibliotecas relacionadas con un solo nombre o para actuar como una capa de direccionamiento indirecto para los componentes reemplazables. Por ejemplo, boost es un meta-puerto que agrupa varias bibliotecas boost con un solo nombre para facilitar la administración de dependencias.

Puerto de script

Un puerto de script contiene scripts de utilidad destinados principalmente a tareas internas dentro de vcpkg o para su consumo por otros puertos. Estos puertos permiten el control de versiones de los scripts de utilidad, lo que mantiene la compatibilidad y la estandarización. Por ejemplo, vcpkg-cmake es un puerto de script que expone la vcpkg_cmake_configure() función auxiliar.

Pasos siguientes

En este documento se proporciona información general sobre los puertos en vcpkg, detallando sus elementos esenciales y varias categorías. Para obtener temas más avanzados y guías detalladas, consulte lo siguiente: