# MyToolchain.cmake
set(CMAKE_CXX_COMPILER ...)
set(VCPKG_TARGET_TRIPLET x64-my-custom-windows-triplet)
include(/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake)
vcpkg 在生成库时不会自动应用工具链的设置,例如编译器或编译标志。 若要更改 vcpkg 的库设置,必须创建一个可以共享工具链) 的自定义三元组文件 (**
所有影响 vcpkg 的变量都必须在第一 project() 个 CMakePresets.json指令之前定义,例如在 的 "cacheVariables" 映射中,通过命令行或 set() 语句定义。
VCPKG_TARGET_TRIPLET
此设置控制 三重 vcpkg 将从中安装和使用库。
如果未设置,vcpkg 将在给定当前编译器设置的情况下自动检测适当的默认三元组。 如果更改此 CMake 变量,则必须删除缓存并重新配置。
VCPKG_HOST_TRIPLET
此变量控制将为其安装哪个 三元 主机依赖项。
如果未设置,vcpkg 将自动检测适当的本机三元 (x64-windows、x64-osx、x64-linux) 。
另请参阅 主机依赖项。
VCPKG_INSTALLED_DIR
此变量设置从中安装和使用库的位置。
在清单模式下,默认值为 ${CMAKE_BINARY_DIR}/vcpkg_installed。
在经典模式下,默认值为 ${VCPKG_ROOT}/installed。
VCPKG_MANIFEST_MODE
此变量强制 vcpkg 在清单模式或经典模式下运行。
当 为非空或${CMAKE_SOURCE_DIR}/vcpkg.json存在时VCPKG_MANIFEST_DIR,ON默认为 。
若要在检测到 时 vcpkg.json 禁用清单模式,请将此项设置为 OFF。
VCPKG_MANIFEST_DIR
此变量指定包含清单的 vcpkg.json 备用文件夹。
如果${CMAKE_SOURCE_DIR}/vcpkg.json存在,则默认为 ${CMAKE_SOURCE_DIR} 。
VCPKG_MANIFEST_INSTALL
此变量控制在配置步骤期间是否自动运行 vcpkg 以安装依赖项。
如果 VCPKG_MANIFEST_MODE 为 ,ON则默认为 ON 。
VCPKG_BOOTSTRAP_OPTIONS
可以将此变量设置为要传递给 ./bootstrap-vcpkg的其他命令参数。
在清单模式下,如果可执行文件不存在,vcpkg 将自动启动。
VCPKG_OVERLAY_TRIPLETS
此变量可以设置为在命令行上传递的路径列表 --overlay-triplets=...
VCPKG_OVERLAY_PORTS
此变量可以设置为在命令行上传递的路径列表 --overlay-ports=...
VCPKG_MANIFEST_FEATURES
可以将此变量设置为从清单安装时要激活的功能列表。
例如,项目可以使用功能来控制具有附加依赖项的生成,以启用测试或示例:
"name": "mylibrary",
"version": "1.0",
"dependencies": [ "curl" ],
"features": {
"samples": {
"description": "Build Samples",
"dependencies": [ "fltk" ]
"tests": {
"description": "Build Tests",
"dependencies": [ "gtest" ]
可以使用 CMake 预设"cacheVariables"直接控制此设置,也可以基于其他设置间接控制此设置:
# CMakeLists.txt
option(BUILD_TESTING "Build tests" OFF)
if(BUILD_TESTING)
list(APPEND VCPKG_MANIFEST_FEATURES "tests")
endif()
option(BUILD_SAMPLES "Build samples" OFF)
if(BUILD_SAMPLES)
list(APPEND VCPKG_MANIFEST_FEATURES "samples")
endif()
project(myapp)
# ...
VCPKG_MANIFEST_NO_DEFAULT_FEATURES
除了 列出的 VCPKG_MANIFEST_FEATURES功能之外,此变量还控制默认功能的激活。 如果设置为 ON,则默认功能不会自动激活。
默认为 OFF。
VCPKG_INSTALL_OPTIONS
可以将此变量设置为在自动安装期间传递给 vcpkg 工具的其他命令行参数列表。
VCPKG_PREFER_SYSTEM_LIBS
此功能已弃用。 请改用空覆盖端口。
此变量控制 vcpkg 是否将其路径追加而不是追加到 CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATHCMAKE_FIND_ROOT_PATH 以便 vcpkg 库/包在工具链/系统库/包之后找到。
默认为 OFF。
VCPKG_FEATURE_FLAGS
此变量可以设置为在自动安装期间传递给 vcpkg 工具的功能标志列表,以选择加入实验行为。
有关详细信息, --feature-flags= 请参阅命令行选项。
VCPKG_TRACE_FIND_PACKAGE
设置为 ON时,打印对 的每次调用 find_package。 嵌套调用 (例如通过 find_dependency) 根据嵌套深度缩进。