Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Средства, используемые во время сборки другими портами для создания кода или реализации пользовательской системы сборки, можно упаковать внутри vcpkg.
Потребление
При использовании порта в качестве средства необходимо задать для поля зависимости "host" значение true. Например:
{
"name": "contoso-http-library",
"version-string": "1.0.0",
"description": "Contoso's http runtime library",
"dependencies": [
"contoso-core-library",
{
"name": "contoso-code-generator",
"host": true
},
{
"name": "contoso-build-system",
"host": true
}
]
}
В этом случае contoso-code-generator contoso-build-system перед сборкой будет создано и установлено contoso-http-library (включая все транзитивные зависимости).
Примечание.
Потребители должны использовать vcpkg.json вместо CONTROL формата метаданных. Вы можете легко преобразовать существующий CONTROL файл с помощью vcpkg format-manifest /path/to/CONTROL.
Затем в файле portfile потребителя (contoso-http-library в примере) переменная CURRENT_HOST_INSTALLED_DIR CMake будет определена installed/<host-triplet> и должна использоваться для поиска необходимых ресурсов. В примере может быть установленоtools/contoso-code-generator/ccg.exe, contoso-code-generator что потребитель добавит в свой локальный путь через:
# ports/contoso-http-library/portfile.cmake
vcpkg_add_to_path(${CURRENT_HOST_INSTALLED_DIR}/tools/contoso-code-generator)
Указание триплета узла
Триплеты узлов по умолчанию выбираются на основе архитектуры узла и операционной системы, напримерx64-windowsx64-linux, илиx64-osx. Их можно переопределить с помощью:
- В режиме манифеста на основе CMake вызовите
set(VCPKG_HOST_TRIPLET "<triplet>" CACHE STRING "")перед первойproject()директивой - В режиме манифеста на основе MSBuild задав
VcpkgHostTripletсвойство - В командной строке с помощью флага
--host-triplet=... - Переменная среды
VCPKG_DEFAULT_HOST_TRIPLET
Производства
Производство инструмента не имеет особых требований; Средства должны создаваться как стандартный порт, следуя всем обычным политикам и методикам. В частности, они должны создаваться на TARGET_TRIPLETоснове, а не HOST_TRIPLET в контексте их портфайла.
Если текущий контекст является перекрестным компиляцией (TARGET_TRIPLET не HOST_TRIPLETявляется), то VCPKG_CROSSCOMPILING будет задано значение truey.
if(VCPKG_CROSSCOMPILING)
# This is a native build
else()
# This is a cross build
endif()
Порты только для узлов
Некоторые порты должны зависеть только от зависимостей узла; Порты скриптов и порты инструментов являются общими примерами. В этом случае можно использовать выражение поддержки "native" , чтобы описать это. Это выражение поддерживает значение true, если VCPKG_CROSSCOMPILING имеет значение false (подразумевающее это TARGET_TRIPLET == HOST_TRIPLET).
VCPKG_USE_HOST_TOOLS
Задайте этот параметр CMake, чтобы добавить исполняемые файлы, созданные vcpkg CMAKE_PROGRAM_PATHв .
и сделать их доступными во время процесса сборки.
Чтобы этот параметр вступить в силу, его необходимо установить перед любым вызовом project() в CMakeLists.txt файле. Переменная VCPKG_HOST_TRIPLET также должна быть задана.
В CMAKE_PROGRAM_PATHпапку добавляются только средства, установленные в tools папке для триплета узла.
Фактически добавляются следующие расположения:
${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/tools${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/tools/*/bin