vcpkg_cmake_configure
Настройте проект на основе CMake.
Использование
vcpkg_cmake_configure(
SOURCE_PATH <source-path>
[DISABLE_PARALLEL_CONFIGURE]
[NO_CHARSET_FLAG]
[WINDOWS_USE_MSBUILD]
[GENERATOR <generator>]
[LOGFILE_BASE <logname-base>]
[OPTIONS
<configure-setting>...]
[OPTIONS_RELEASE
<configure-setting>...]
[OPTIONS_DEBUG
<configure-setting>...]
[MAYBE_UNUSED_VARIABLES
<option-name>...]
)
Чтобы использовать эту функцию, необходимо зависеть от вспомогательного порта vcpkg-cmake
:
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
}
]
Параметры
SOURCE_PATH
Указывает каталог, содержащий объект CMakeLists.txt
.
Обычно это значение получается в результате вызова команды получения источника, например vcpkg_from_github()
.
DISABLE_PARALLEL_CONFIGURE
Отключает выполнение шага настройки CMake параллельно.
По умолчанию vcpkg отключает запись обратно в исходный каталог (с помощью флага CMAKE_DISABLE_SOURCE_CHANGES
CMake без документов) и настраивает выпуск и отладку параллельно. Этот флаг предписывает vcpkg разрешать запись исходного каталога и выполнять шаги настройки последовательно.
NO_CHARSET_FLAG
Отключает передачу /utf-8
при использовании встроенной цепочки инструментов Windows.
Это необходимо для библиотек, которые задают собственный набор символов исходного кода при целевом использовании MSVC. Дополнительные сведения см. в документации /utf-8
по MSVC.
WINDOWS_USE_MSBUILD
Используйте MSBuild вместо другого генератора при выборе платформы Windows.
По умолчанию vcpkg предпочитает использовать Ninja в качестве генератора CMake для всех платформ. Однако существуют пограничные случаи, когда MSBuild имеет другое поведение, чем Ninja. Этот флаг должен передаваться только в том случае, если для проекта требуется правильное построение MSBuild. Этот флаг не влияет на целевые объекты MinGW.
ГЕНЕРАТОР
Указывает используемый генератор CMake.
По умолчанию vcpkg предпочитает использовать Ninja в качестве генератора CMake для всех платформ или Unix Makefiles для платформ, отличных от Windows, если Ninja недоступен. Этот параметр можно использовать для пограничных случаев, когда системы сборки для конкретного проекта зависят от конкретного генератора.
LOGFILE_BASE
Альтернативное корневое имя для журналов настройки.
По умолчанию — config-${TARGET_TRIPLET}
. Он не должен содержать разделители путей. Журналы будут созданы в соответствии с шаблоном. ${CURRENT_BUILDTREES_DIR}/${LOGFILE_BASE}-<suffix>.log
ПАРАМЕТРЫ
Дополнительные параметры для передачи в CMake во время настройки.
См. также неявные параметры.
OPTIONS_RELEASE
Дополнительные параметры для передачи в CMake во время настройки выпуска.
Это в дополнение к OPTIONS
.
OPTIONS_DEBUG
Дополнительные параметры для передачи в CMake во время настройки отладки.
Это в дополнение к OPTIONS
.
MAYBE_UNUSED_VARIABLES
Список параметров CMake, которые могут не быть прочитаны на этапе настройки.
vcpkg будет предупреждать о любых параметрах за пределами этого списка, которые не были прочитаны во время шага настройки CMake. Этот список должен содержать параметры, которые считываются только во время определенных конфигураций (например, когда VCPKG_LIBRARY_LINKAGE
"static"
или когда включены определенные функции).
Неявные параметры
Эта команда автоматически предоставляет несколько вариантов для CMake.
CMAKE_BUILD_TYPE
задано значение"Release"
или"Debug"
соответствующее значение.BUILD_SHARED_LIBS
задано в соответствии со значениемVCPKG_LIBRARY_LINKAGE
.CMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}</debug>
в соответствии с конфигурациейCMAKE_TOOLCHAIN_FILE
иVCPKG_CHAINLOAD_TOOLCHAIN_FILE
задано, чтобы включить файл цепочки инструментов vcpkg и цепочку инструментов triplet.CMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}
. ЕслиVCPKG_CMAKE_SYSTEM_NAME
не задано, по умолчанию используется"Windows"
значение .CMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION}
ЗначениеVCPKG_CMAKE_SYSTEM_VERSION
if is set.CMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON
CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON
CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON
CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE
CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON
CMAKE_INSTALL_LIBDIR:STRING=lib
CMAKE_INSTALL_BINDIR:STRING=bin
FETCHCONTENT_FULLY_DISCONNECTED=ON
(с версии 2022-10-30)
Эта команда также передает все параметры и VCPKG_CMAKE_CONFIGURE_OPTIONS
параметры для конкретной конфигурации.VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE
VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG
Наконец, существуют дополнительные внутренние параметры, передаваемые (с VCPKG_
префиксом), которые не должны зависеть.
Примеры
vcpkg_from_github(OUT_SOURCE_PATH source_path ...)
vcpkg_cmake_configure(
SOURCE_PATH "${source_path}"
OPTIONS
-DBUILD_EXAMPLES=OFF
-DBUILD_TESTS=OFF
)
vcpkg_cmake_install()
Поиск по примерам microsoft/vcpkg
Замечания
Эта команда заменяет vcpkg_configure_cmake()
.