# 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_PATH
CMAKE_FIND_ROOT_PATH
以便 vcpkg 程式庫/套件在工具鏈/系統程式庫/套件之後找到。
預設值為 OFF
。
VCPKG_FEATURE_FLAGS
此變數可以設定為功能旗標清單,以在自動安裝期間傳遞至 vcpkg 工具,以加入宣告實驗行為。
如需詳細資訊, --feature-flags=
請參閱命令列選項。
VCPKG_TRACE_FIND_PACKAGE
當設定為 ON
時,列印對 的每個呼叫 find_package
。 巢狀呼叫 (例如,透過 find_dependency
) 會根據巢狀深度縮排。