Vcpkg nabízí bezproblémovou integraci s CMake, aby byly nainstalované balíčky dostupné ve vašich projektech automaticky. Mechanismus, ve kterém se vcpkg integruje, spočívá v poskytnutí souboru sady nástrojů CMake.
Když CMake poprvé nakonfiguruje projekt, spustí interní rutiny vyhledávání, aby vyhledaly funkční sadu nástrojů (kompilátor, linker atd.). K tomuto hledání dochází v rámci project() funkce ve vaší CMakeLists.txtfunkci .
Aby bylo možné přizpůsobit proces výběru sady nástrojů, CMake podporuje použití vlastních skriptů jazyka CMake, označovaných jako soubory sady nástrojů. Soubor sady nástrojů je určen nastavením CMAKE_TOOLCHAIN_FILE proměnné. CMake vyhodnotí obsah poskytnutého skriptu sady nástrojů a nastaví definice proměnných, cesty k požadovaným nástrojům sestavení a další parametry sestavení, jako jsou příznaky křížové kompilace.
Když nastavíte CMAKE_TOOLCHAIN_FILE použití sady nástrojů vcpkg (<vcpkg-root>/scripts/buildsystems/vcpkg.cmaketoolchain), vcpkg využívá mechanismus souboru toolchain k vložení kódu pro integraci s integrovanými funkcemi CMake transparentně za vás.
Soubor sady nástrojů můžete stále použít ke konfiguraci vlastních sad nástrojů pomocí VCPKG_CHAINLOAD_TOOLCHAIN_FILE trojité proměnné.
Integrace vcpkg funguje jinak v závislosti na používaném provozním režimu:
V klasickém režimu vcpkg nastaví cesty hledání CMake odpovídajícím způsobem, aby byly nainstalované balíčky dostupné prostřednictvím find_package(), find_library()a find_path() funkce.
Kromě výše uvedeného režimu nástroj zjistí soubory manifestu (vcpkg.json soubory) a spustí vcpkg install se, aby automaticky získal závislosti projektu.
Vzhledem k tomu, že se soubor sady nástrojů vyhodnocuje během project() volání, musí být před prvním voláním project()nastaveny všechny proměnné CMake, které upravují nastavení vcpkg . Pokud upravíte jakékoli nastavení vcpkg, které vede ke změnám hodnoty hash ABI, může být také nutné překonfigurovat projekt CMake.
Pokud jste v souboru nastaviliCMAKE_TOOLCHAIN_FILE, ujistěte se, že je proměnná nastavena před všemi voláními project().CMakeList.txt
Projekty nakonfigurované pro použití souboru toolchain vcpkg (prostřednictvím nastavení CMAKE_TOOLCHAIN_FILECMake) mohou najít knihovny z vcpkg pomocí standardních funkcí CMake: find_package(), find_path()a find_library().
K zadání souboru sady nástrojů doporučujeme použít předvolby CMake. Pokud jste například definovali proměnnou VCPKG_ROOTprostředí, můžete použít následující CMakePresets.json příkaz a předat --preset debug ho na řádek konfigurace:
Pokud potřebujete použít absolutní cestu pro vcpkg specifickou pro váš aktuální počítač, můžete ho použít CMakeUserPresets.json a přidat do .gitignore souboru.
vcpkg podporuje nativní mechanismy CMake pro hledání knihoven: find_package(), find_library()a find_path(). Při instalaci knihoven s konkrétní podporou CMake zobrazí nástroj vcpkg informace o využití knihovny:
The package zlib is compatible with built-in CMake targets:
find_package(ZLIB REQUIRED)
target_link_libraries(main PRIVATE ZLIB::ZLIB)
Vcpkg nepřidává do projektu automaticky žádné cesty zahrnutí ani propojení. Pokud chcete použít knihovnu jen pro hlavičky, můžete použít find_path() , která bude správně fungovat na všech platformách:
cmake
# To find and use catch2find_path(CATCH_INCLUDE_DIR NAMES catch.hpp PATH_SUFFIXES catch2)
target_include_directories(main PRIVATE ${CATCH_INCLUDE_DIR})
Integrace integrovaného vývojového prostředí (IDE)
Visual Studio / Visual Studio Code
V sadě Visual Studio i v editoru Visual Studio Code doporučujeme používat předvolby CMake.
Otevřete nastavení sady nástrojů (File > Settings ve Windows a Linuxu, CLion > Preferences v macOS) a přejděte do nastavení CMake (Build, Execution, Deployment > CMake). Do CMake optionspole přidejte následující řádek:
Tento řádek musíte přidat do každého profilu zvlášť.
Použití více souborů sady nástrojů
Pokud chcete zkombinovat soubor sady nástrojů vcpkg s jiným souborem sady nástrojů, můžete nastavit proměnnou VCPKG_CHAINLOAD_TOOLCHAIN_FILEmezipaměti CMake:
Vcpkg při sestavování knihoven automaticky nepoužije nastavení sady nástrojů, jako je kompilátor nebo příznaky kompilace. Pokud chcete změnit nastavení knihovny vcpkg, musíte vytvořit vlastní trojitý soubor (který může sdílet sadu nástrojů)**
Referenční informace k nastavení
Všechny proměnné ovlivňující vcpkg musí být definovány před první project() direktivou, například v mapěCMakePresets.json"cacheVariables", přes příkazový řádek nebo set() příkazy.
VCPKG_TARGET_TRIPLET
Toto nastavení řídí, že triplet vcpkg nainstaluje a bude využívat knihovny.
Pokud se nenasadí, nástroj vcpkg automaticky zjistí odpovídající výchozí trojitou hodnotu vzhledem k aktuálnímu nastavení kompilátoru. Pokud tuto proměnnou CMake změníte, musíte mezipaměť odstranit a znovu nakonfigurovat.
Tato proměnná řídí aktivaci výchozích funkcí kromě těch, které jsou uvedeny v VCPKG_MANIFEST_FEATURES. Pokud je nastavená hodnota ON, výchozí funkce se neaktivují automaticky.
Výchozí hodnota OFFje .
VCPKG_INSTALL_OPTIONS
Tuto proměnnou lze nastavit na seznam dalších parametrů příkazového řádku, které se předávají nástroji vcpkg během automatické instalace.
VCPKG_PREFER_SYSTEM_LIBS
Upozornění
Tato funkce je zastaralá. Místo toho použijte prázdné překryvné porty.
Tato proměnná určuje, jestli bude vcpkg přidávat místo předpřipravených cest k CMAKE_PREFIX_PATHCMAKE_LIBRARY_PATH knihovnám a balíčkům vcpkg a CMAKE_FIND_ROOT_PATH aby byly nalezeny po toolchain/systémových knihovnách/balíčcích.
Výchozí hodnota OFFje .
VCPKG_FEATURE_FLAGS
Tuto proměnnou lze nastavit na seznam příznaků funkcí, které se mají předat nástroji vcpkg během automatické instalace a přihlásit se k experimentálnímu chování.
Další informace najdete v možnosti příkazového --feature-flags= řádku.
VCPKG_TRACE_FIND_PACKAGE
Pokud je nastavena možnost ON, tiskněte každý hovor na find_package. Vnořená volání (např. přes find_dependency) se odsadí podle hloubky vnoření.
Spolupracujte s námi na GitHubu
Zdroj tohoto obsahu najdete na GitHubu, kde můžete také vytvářet a kontrolovat problémy a žádosti o přijetí změn. Další informace najdete v našem průvodci pro přispěvatele.
Zpětná vazba k produktu vcpkg
vcpkg je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby:
Azure HPC je účelově sestavená cloudová funkce pro úlohy HPC a AI, která využívá špičkové procesory a interfiniBand třídy HPC, aby poskytovala nejlepší výkon, škálovatelnost a hodnotu aplikací. Azure HPC umožňuje uživatelům odhalovat inovace, produktivitu a obchodní flexibilitu prostřednictvím vysoce dostupné řady technologií HPC a AI, které se dají dynamicky přidělovat při změně obchodních a technických potřeb. Tento studijní program je řada modulů, které vám pomůžou začít pracovat s prostředím Azure HPC –