ФАЙЛЫ CONTROL
Предупреждение
CONTROL
файлы устарели и сохраняются только для обратной совместимости с более ранними версиями vcpkg. Используйте файлы манифеста vcpkg.json для любого нового созданного порта.
Используется ./vcpkg format-manifest path/to/CONTROL
для преобразования существующего CONTROL
файла в vcpkg.json
файл.
Файл CONTROL
содержит метаданные о порту. Синтаксис основан на формате Debiancontrol
, хотя мы поддерживаем только подмножество полей, описанных здесь.
Имена полей чувствительны к регистру и начинают строку без начальных пробелов. Абзацы разделены одной или несколькими пустыми строками.
Исходный абзац
Первый абзац в файле — исходный CONTROL
абзац. Он должен иметь Source
Version
поле и Description
поле. Полный набор полей описан ниже.
Примеры
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
Распознанные поля
Оригинал
Имя порта.
При добавлении новых портов следует учитывать, что имя может конфликтуть с другими проектами, которые не являются частью vcpkg. Например, json
конфликтует с слишком большим количеством других проектов, поэтому необходимо добавить область в имя, напримерtaocpp-json
, чтобы сделать его уникальным. Убедитесь, что в поисковой системе нет конфликтов, а также в других коллекциях пакетов.
Коллекции пакетов для проверка для конфликтов:
Версия
Версия библиотеки.
Это поле является буквенно-цифровой строкой, которая также может содержать .
или_
-
. Попытка упорядочивания версий не выполняется; все версии обрабатываются как битовые строки и оцениваются только для равенства.
Для портов с тегами выпуска мы следуйте следующему соглашению:
- Если порт следует схеме,
va.b.c
мы удаляем ведущийv
. В этом случае он становитсяa.b.c
. - Если порт содержит собственное имя в такой версии
curl-7_65_1
, мы удалим имя в начале:7_65_1
Для портов последовательного выпуска мы используем дату, к которую вы обращаетесь фиксация, отформатированная как YYYY-MM-DD
. Заявил другой способ: если у кого-то была машина времени и пошли на эту дату, они увидят эту фиксацию как последний мастер.
Например, если:
- Последняя фиксация была сделана 2019-04-19
- Текущая строка версии :
2019-02-14-1
- Сегодняшняя дата — 2019-06-01.
Затем, если вы обновляете исходную версию сегодня, вы должны дать ей версию 2019-06-01
.
Версия порта
Версия порта.
Это поле является неотрицательное целое число. Он позволяет версии файла порта отдельно от версии базовой библиотеки; Если вы вносите изменения в порт, не изменяя базовую версию библиотеки, следует увеличить это поле на один (начиная 0
с , что эквивалентно ни Port-Version
одному полю). При обновлении версии базовой библиотеки это поле должно быть возвращено 0
(т. е. удалите Port-Version
поле).
Примеры
Version: 1.0.5
Port-Version: 2
Version: 2019-03-21
Description
Описание библиотеки.
По соглашению первая строка описания представляет собой сводку библиотеки. Ниже приведено необязательное подробное описание. Подробное описание может быть несколькими строками, начиная с пробелов.
Примеры
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.
Главная страница
URL-адрес домашней страницы для библиотеки, где пользователь может найти дополнительную документацию или исходный исходный код.
Пример:
Homepage: https://github.com/Microsoft/vcpkg
Зависит от сборки
Разделенный запятыми список портов vcpkg, от библиотеки зависит.
vcpkg не отличается от зависимостей только сборки и зависимостей среды выполнения. Полный список зависимостей, необходимых для успешного использования библиотеки, должен быть указан.
Например: websocketpp — это только библиотека заголовков, поэтому не требуется никаких зависимостей во время установки. Тем не менее, нижестоящим пользователям требуется повышение и открытиеl, чтобы использовать библиотеку. Таким образом, websocketpp перечисляет повышение и открывается в качестве зависимостей.
Если порт зависит от дополнительных функций другой библиотеки, которые можно указать с помощью синтаксиса portname[featurelist]
. Если порт не требует каких-либо функций из зависимости, это должно быть указано как portname[core]
.
Зависимости можно фильтровать на основе целевого триплета для поддержки различных требований. Эти фильтры используют тот же синтаксис, что и поле "Поддержка" ниже и окружены в скобках после имени порта и списка компонентов.
Пример
Build-Depends: rapidjson, curl[core,openssl] (!windows), curl[core,winssl] (windows)
Функции по умолчанию
Разделенный запятыми список необязательных функций порта для установки по умолчанию.
Это поле необязательно.
Пример
Default-Features: dynamodb, s3, kinesis
Поддерживает
Выражение, которое оценивается как true, если ожидается успешное построение порта для триплета.
В настоящее время это поле используется только в тестировании CI для пропуска портов. В будущем этот механизм предназначен для предупреждения пользователей о том, что заданное дерево установки не ожидается успешно. Таким образом, это поле следует использовать оптимистично; В случаях, когда ожидается, что порт будет выполнен на 10 % времени, он по-прежнему должен быть помечен как "поддерживаемый".
Сведения о поддерживаемых идентификаторах см. в vcpkg.json
документации по манифесту.
Пример
Supports: !(uwp|arm)
Абзацы компонентов
В файлах CONTROL
можно указать несколько необязательных функций. Он должен иметь Feature
и Description
поле. При необходимости он может иметь Build-Depends
поле. Он должен быть отделен от других абзацев одним или несколькими пустыми строками.
Пример
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
Распознанные поля
Функция
Имя функции.
Description
Описание функции с использованием того же синтаксиса, что и поле порта Description
.
Зависит от сборки
Список зависимостей, необходимых для сборки и использования этой функции.
При установке зависимости из всех выбранных компонентов объединяются для создания полного списка зависимостей для сборки. Это поле соответствует тому же синтаксису, что Build-Depends
и в исходном абзаце.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по