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 提供多个选项。

此命令还会传递 VCPKG_CMAKE_CONFIGURE_OPTIONS 中的所有选项以及 VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASEVCPKG_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()

Source

ports/vcpkg-cmake/vcpkg_cmake_configure.cmake