Compartir a través de


Archivos CONTROL

Advertencia

CONTROL los archivos están en desuso y solo se conservan para la compatibilidad con versiones anteriores de vcpkg. Use vcpkg.json archivos de manifiesto para cualquier puerto recién creado.

Use ./vcpkg format-manifest path/to/CONTROL para convertir un archivo existente CONTROL en un vcpkg.json archivo.

El CONTROL archivo contiene metadatos sobre el puerto. La sintaxis se basa en el formato Debiancontrol, aunque solo se admite el subconjunto de campos documentados aquí.

Los nombres de campo distinguen mayúsculas de minúsculas e inician la línea sin espacios en blanco iniciales. Los párrafos están separados por una o varias líneas vacías.

Párrafo de origen

El primer párrafo de un CONTROL archivo es el párrafo Origen. Debe tener un Sourcecampo , Versiony Description . A continuación se documenta el conjunto completo de campos.

Ejemplos

Source: ace
Version: 6.5.5
Description: The ADAPTIVE Communication Environment
Source: vtk
Version: 8.2.0
Port-Version: 2
Description: Software system for 3D computer graphics, image processing, and visualization
Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, libjpeg-turbo, proj4, lz4, libtheora, atlmfc (windows), eigen3, double-conversion, pugixml, libharu, sqlite3, netcdf-c

Campos reconocidos

Source

Nombre del puerto.

Al agregar puertos nuevos, tenga en cuenta que el nombre puede entrar en conflicto con otros proyectos que no forman parte de vcpkg. Por ejemplo json , entra en conflicto con demasiados otros proyectos, por lo que debe agregar un ámbito al nombre como taocpp-json para que sea único. Compruebe que no haya conflictos en un motor de búsqueda, así como en otras colecciones de paquetes.

Recopilaciones de paquetes para comprobar si hay conflictos:

Versión

La versión de la biblioteca.

Este campo es una cadena alfanumérica que también puede contener ., _o -. No se realiza ningún intento de ordenar versiones; todas las versiones se tratan como cadenas de bits y solo se evalúan para la igualdad.

En el caso de los puertos de versión etiquetada, seguimos la convención siguiente:

  1. Si el puerto sigue un esquema como va.b.c, quitamos el valor inicial v. En este caso, se convierte en a.b.c.
  2. Si el puerto incluye su propio nombre en la versión como curl-7_65_1, quitamos el nombre inicial: 7_65_1

En el caso de los puertos de versión gradual, usamos la fecha de acceso a la confirmación por usted, con el formato YYYY-MM-DD. Se indicó otra manera: si alguien tuviera una máquina de tiempo y pasara a esa fecha, vería esta confirmación como el maestro más reciente.

Por ejemplo, dado:

  1. La última confirmación se realizó el 2019-04-19
  2. La cadena de versión actual es 2019-02-14-1
  3. La fecha de hoy es 2019-06-01.

A continuación, si actualiza la versión de origen hoy, debe darle la versión 2019-06-01.

Port-Version

Versión del puerto.

Este campo es un entero no negativo. Permite una versión del archivo de puerto por separado de la versión de la biblioteca subyacente; Si realiza un cambio en un puerto, sin cambiar la versión subyacente de la biblioteca, debe incrementar este campo por uno (a partir 0de , que es equivalente a ningún Port-Version campo). Cuando se actualiza la versión de la biblioteca subyacente, este campo se debe volver a 0 establecer en (es decir, eliminar el Port-Version campo).

Ejemplos
Version: 1.0.5
Port-Version: 2
Version: 2019-03-21

Descripción

Descripción de la biblioteca.

Por convención, la primera línea de la descripción es un resumen de la biblioteca. A continuación se muestra una descripción detallada opcional. La descripción detallada puede ser varias líneas, empezando por espacios en blanco.

Ejemplos
Description: C++ header-only JSON library
Description: Mosquitto is an open source message broker that implements the MQ Telemetry Transport protocol versions 3.1 and 3.1.1.
  MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it suitable for "machine
  to machine" messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers like the Arduino.

Página principal

Dirección URL de la página principal de la biblioteca donde un usuario puede encontrar documentación adicional o el código fuente original.

Ejemplo:

Homepage: https://github.com/Microsoft/vcpkg

Build-Depends

Lista separada por comas de puertos vcpkg en los que la biblioteca tiene una dependencia.

vcpkg no distingue entre las dependencias de solo compilación y las dependencias en tiempo de ejecución. Se debe especificar la lista completa de dependencias necesarias para usar correctamente la biblioteca.

Por ejemplo: websocketpp es una biblioteca de encabezado solo y, por tanto, no requiere ninguna dependencia en tiempo de instalación. Sin embargo, los usuarios de nivel inferior necesitan aumentar y abrirsl para usar la biblioteca. Por lo tanto, websocketpp enumera boost y openssl como dependencias.

Si el puerto depende de las características opcionales de otra biblioteca, se pueden especificar mediante la portname[featurelist] sintaxis . Si el puerto no requiere ninguna característica de la dependencia, se debe especificar como portname[core].

Las dependencias se pueden filtrar en función del triplete de destino para admitir requisitos diferentes. Estos filtros usan la misma sintaxis que el campo Supports a continuación y están rodeados entre paréntesis después del nombre de puerto y la lista de características.

Ejemplo
Build-Depends: rapidjson, curl[core,openssl] (!windows), curl[core,winssl] (windows)

Características predeterminadas

Lista separada por comas de características de puerto opcionales que se van a instalar de forma predeterminada.

Este campo es opcional.

Ejemplo
Default-Features: dynamodb, s3, kinesis

Es compatible con

Expresión que se evalúa como true cuando se espera que el puerto se compile correctamente para un triplete.

Actualmente, este campo solo se usa en las pruebas de CI para omitir los puertos. En el futuro, este mecanismo está pensado para advertir a los usuarios con antelación de que no se espera que un árbol de instalación determinado se realice correctamente. Por lo tanto, este campo debe utilizarse optimistamente; en los casos en los que se espera que un puerto se realice correctamente el 10 % del tiempo, todavía debe marcarse como "compatible".

Consulte Expresiones de plataforma en la documentación del vcpkg.json manifiesto para obtener la lista de identificadores admitidos.

Ejemplo
Supports: !(uwp|arm)

Párrafos de características

Se pueden especificar varias características opcionales en los CONTROL archivos. Debe tener un campo Feature y Description . Opcionalmente, puede tener un Build-Depends campo. Debe estar separado de otros párrafos por una o varias líneas vacías.

Ejemplo

Source: vtk
Version: 8.2.0-2
Description: Software system for 3D computer graphics, image processing, and visualization
Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, libjpeg-turbo, proj4, lz4, libtheora, atlmfc (windows), eigen3, double-conversion, pugixml, libharu, sqlite3, netcdf-c

Feature: openvr
Description: OpenVR functionality for VTK
Build-Depends: sdl2, openvr

Feature: qt
Description: Qt functionality for VTK
Build-Depends: qt5

Feature: mpi
Description: MPI functionality for VTK
Build-Depends: mpi, hdf5[parallel]

Feature: python
Description: Python functionality for VTK
Build-Depends: python3

Campos reconocidos

Característica

Nombre de la característica.

Descripción

Descripción de la característica con la misma sintaxis que el campo de puerto Description .

Build-Depends

Lista de dependencias necesarias para compilar y usar esta característica.

Al instalar las dependencias de todas las características seleccionadas se combinan para generar la lista de dependencias completa de la compilación. Este campo sigue la misma sintaxis que Build-Depends en el párrafo de origen.