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 标志 CMAKE_DISABLE_SOURCE_CHANGES
),并并行配置发布和调试。 此标志指示 vcpkg 允许源目录写入并按顺序执行配置步骤。
NO_CHARSET_FLAG
使用内置 Windows 工具链时禁用传递 /utf-8
。
这对于在面向 MSVC 时设置自己源代码字符集的库来说是必需的。 有关详细信息,请参阅 /utf-8
的 MSVC 文档。
WINDOWS_USE_MSBUILD
面向 Windows 平台时,请使用 MSBuild 而不是其他构建器。
默认情况下,vcpkg 更愿意使用 Ninja 作为所有平台的 CMake 生成器。 但是,在某些极端情况下,MSBuild 的行为与 Ninja 不同。 仅当项目需要 MSBuild 正确构建时,才应传递此标志。 此标志对 MinGW 目标无效。
GENERATOR
指定要使用的 CMake 生成器。
默认情况下,vcpkg 首选使用 Ninja 作为所有平台的 CMake 生成器,或者在 Ninja 不可用时将“Unix 生成文件”用于非 Windows 平台。 此参数可用于依赖于特定构建器的项目特定构建系统的极端情况。
LOGFILE_BASE
配置日志的备用根目录名。
默认为 config-${TARGET_TRIPLET}
。 该项不应包含任何路径分隔符。 将生成与模式 ${CURRENT_BUILDTREES_DIR}/${LOGFILE_BASE}-<suffix>.log
匹配的日志
OPTIONS
配置期间要传递给 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 工具链文件和三元组工具链。CMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}
。 如果VCPKG_CMAKE_SYSTEM_NAME
未设置,则默认为"Windows"
。CMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION}
(如果VCPKG_CMAKE_SYSTEM_VERSION
已设置)。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()
注解
此命令将取代 vcpkg_configure_cmake()
。