Trojité proměnné
Tento článek popisuje proměnné vcpkg, které jsou k dispozici pro soubory triplet. Trojitý soubor může obsahovat také uživatelem definované proměnné.
V dokumentaci k konceptům triplets najdete základní přehled o možnostech tripletů.
Proměnné
VCPKG_TARGET_ARCHITECTURE
Určuje architekturu cílového počítače.
Mezi platné možnosti patří , , , , s390x
riscv64
arm64ec
arm64
ppc64le
riscv32
, loongarch32
, loongarch64
, mips64
, a .wasm32
arm
x64
x86
VCPKG_CRT_LINKAGE
Určuje požadované propojení CRT (pro MSVC).
Platné možnosti jsou dynamic
a static
.
VCPKG_LIBRARY_LINKAGE
Určuje upřednostňované propojení knihovny.
Platné možnosti jsou dynamic
a static
. Knihovny můžou toto nastavení ignorovat, pokud nepodporují upřednostňovaný typ propojení.
VCPKG_BUILD_TYPE
Tuto hodnotu můžete nastavit tak, aby release
se sestavily verze portů jen pro vydání.
Ve výchozím nastavení je tato hodnota prázdná. Pokud je tato hodnota prázdná vcpkg builds release and debug configurations of ports.
VCPKG_CMAKE_SYSTEM_NAME
Určuje cílovou platformu.
Mezi platné možnosti patří libovolný název systému CMake, například:
- Prázdné (Windows Desktop z důvodu starší verze)
WindowsStore
(Univerzální platforma Windows)MinGW
(Minimal GNU pro Windows)Darwin
(Mac OSX)iOS
(iOS)Linux
(Linux)Emscripten
(WebAssembly)
VCPKG_CMAKE_SYSTEM_VERSION
Určuje verzi systému cílové platformy.
Toto pole je volitelné a pokud je k dispozici, předá se do sestavení jako CMAKE_SYSTEM_VERSION
.
Viz také dokumentace k CMake pro CMAKE_SYSTEM_VERSION
VCPKG_CHAINLOAD_TOOLCHAIN_FILE
Určuje alternativní soubor sady nástrojů CMake, který se má použít.
Tato možnost (pokud je nastavená) přepíše všechny ostatní logiky detekce kompilátoru. Ve výchozím nastavení je soubor sady nástrojů vybraný z scripts/toolchains/
příslušné platformy.
Poznámka:
Pokud chcete vytvořit vlastní soubor sady nástrojů, je nejlepší začít tím, že z ${VCPKG_ROOT}/scripts/toolchains
něj zahrnete existující sadu nástrojů a rozšíříte ji. Tím se zajistí, že se základní proměnné nastavené spustitelným souborem vcpkg, například VCPKG_TARGET_ARCHITECTURE
, VCPKG_CXX_FLAGS
, VCPKG_LINKER_FLAGS
a další proměnné předávají do CMake.
Viz také dokumentace KMake pro soubory toolchain.
VCPKG_CXX_FLAGS
Nastaví další příznaky kompilátoru, které se použijí při použití VCPKG_CHAINLOAD_TOOLCHAIN_FILE
.
Tato možnost má také formuláře pro příznaky specifické pro konfiguraci a příznaky jazyka C:
VCPKG_CXX_FLAGS
VCPKG_CXX_FLAGS_DEBUG
VCPKG_CXX_FLAGS_RELEASE
VCPKG_C_FLAGS
VCPKG_C_FLAGS_DEBUG
VCPKG_C_FLAGS_RELEASE
Pokud nastavíte VCPKG_CXX_FLAGS
, musíte také nastavit VCPKG_C_FLAGS
a naopak.
Totéž platí pro příznaky specifické pro konfiguraci. Tyto proměnné přijímají řetězec příznaků kompilátoru oddělených mezerami:
set(VCPKG_CXX_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
set(VCPKG_C_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
VCPKG_LINKER_FLAGS
Nastaví další příznaky linkeru, které se mají použít při vytváření dynamických knihoven a spustitelných souborů v nepřítomnosti VCPKG_CHAINLOAD_TOOLCHAIN_FILE
.
Tato možnost má také formuláře pro příznaky specifické pro konfiguraci:
VCPKG_LINKER_FLAGS
VCPKG_LINKER_FLAGS_DEBUG
VCPKG_LINKER_FLAGS_RELEASE
VCPKG_MESON_CONFIGURE_OPTIONS
Nastavte další možnosti konfigurace Mesonu, které jsou připojeny k příkazu configure (v vcpkg_configure_meson
).
Toto pole je nepovinné.
K dispozici také jako specifické pro VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG
typ sestavení a VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE
proměnné.
VCPKG_MESON_NATIVE_FILE_RELEASE
Zadejte další závislý konfigurační soubor jako mesonový křížový/nativní soubor. Dá se použít k přepsání nastavení poskytovaného nástrojem vcpkg, protože se předá po předání vygenerovaných křížových nebo nativních souborů vcpkg.
Zvláště užitečné poskytnout vlastní build_machine a host_machine položky.
VCPKG_MESON_NATIVE_FILE_DEBUG
Viz VCPKG_MESON_NATIVE_FILE_RELEASE.
VCPKG_MESON_CROSS_FILE_RELEASE
Viz VCPKG_MESON_NATIVE_FILE_RELEASE.
VCPKG_MESON_CROSS_FILE_DEBUG
Viz VCPKG_MESON_NATIVE_FILE_RELEASE.
VCPKG_CMAKE_CONFIGURE_OPTIONS
Nastaví další možnosti konfigurace CMake, které jsou připojeny k příkazu configure (v vcpkg_cmake_configure
).
Toto pole je nepovinné.
K dispozici také jako specifické pro VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG
typ sestavení a VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE
proměnné.
VCPKG_CONFIGURE_MAKE_OPTIONS
Nastavte další možnosti konfigurace automake/autoconf, které jsou připojené k příkazu configure (v vcpkg_configure_make
).
Toto pole je nepovinné.
Pokud například chcete přeskočit určité kontroly nástroje libtool, které můžou být neúspěšné:
set(VCPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")
K dispozici také jako specifické pro VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG
typ sestavení a VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE
proměnné.
VCPKG_HASH_ADDITIONAL_FILES
Toto pole je nepovinné.
Deklarujte všechny soubory, které mají vliv na obsah balíčku, a měly by být začleněny do výpočtu hodnoty hash ABI. Příklad:
- Soubory, které jsou zahrnuté (prostřednictvím
include(filepath)
) ve vlastních trojitých a toolchains. - Soubory definované v
VCPKG_MESON_(NATIVE|CROSS)_FILE_<CONFIG>
Zvažují se pouze obsah a pořadí souborů, cesty k souborům nemají vliv na hodnotu hash ABI.
set(VCPKG_HASH_ADDITIONAL_FILES
"${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
"${CMAKE_CURRENT_LIST_DIR}/meson-cross.txt"
)
VCPKG_POST_PORTFILE_INCLUDES
Seznam souborů CMake, které se mají zahrnout po spuštění souboru portfile.cmake.
Toto pole je nepovinné.
Obsah a pořadí souborů se používají pro hodnotu hash ABI, cesty k souborům nemají vliv na hodnotu hash ABI.
set(VCPKG_POST_PORTFILE_INCLUDES
"${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
"${CMAKE_CURRENT_LIST_DIR}/file2.cmake"
)
VCPKG_DEP_INFO_OVERRIDE_VARS
Poznámka:
Tato část popisuje experimentální funkci vcpkg, která se může kdykoli změnit nebo odebrat.
Nahradí výchozí vypočítaný seznam termínů "Supports" (Podporuje).
Tato možnost (pokud je nastavená) přepíše výchozí sadu termínů použitých pro vyhodnocení výrazu platformy.
Další podrobnosti najdete v "supports"
dokumentaci k poli souboru manifestu.
Poznámka:
Tento seznam se extrahuje prostřednictvím vcpkg_get_dep_info
pomocné funkce.
VCPKG_DISABLE_COMPILER_TRACKING
Upozorňující
Povolení této možnosti se nedoporučuje, protože může vést k nekompatibilitě ABI v obnovených binárních balíčcích. Další informace najdete v dokumentaci k binární mezipaměti.
Pokud je tato možnost nastavena na TRUE
hodnotu , ON
nebo 1
, kompilátor nebude sledován jako součást balíčku abis.
To způsobí, že binární ukládání do mezipaměti znovu použije sestavení ze starších nebo novějších kompilátorů.
Proměnné specifické pro Windows
VCPKG_ENV_PASSTHROUGH
Dává vcpkg pokyn, aby do procesu sestavení povolil další proměnné prostředí.
V systému Windows vytváří vcpkg balíčky ve speciálním čistém prostředí, které je izolované od aktuálního příkazového řádku, aby se zajistila spolehlivost a konzistence sestavení. Tuto trojitou možnost lze nastavit na seznam dalších proměnných prostředí, které se přidají do čistého prostředí. Hodnoty těchto proměnných prostředí budou hashovány do balíčku abi – pro předávání proměnných prostředí bez sledování abi, viz VCPKG_ENV_PASSTHROUGH_UNTRACKED
.
Podívejte se také na vcpkg env
příkaz, jak můžete zkontrolovat přesné prostředí, které se použije.
Poznámka:
Tento seznam se extrahuje prostřednictvím vcpkg_get_tags
pomocné funkce.
VCPKG_ENV_PASSTHROUGH_UNTRACKED
Dává vcpkg pokyn, aby umožnil další proměnné prostředí do procesu sestavení bez sledování abi.
Viz třída VCPKG_ENV_PASSTHROUGH
.
VCPKG_VISUAL_STUDIO_PATH
Určuje instalaci sady Visual Studio, která se má použít.
Pokud chcete vybrat přesnou kombinaci instance sady Visual Studio a verze sady nástrojů, projdeme si následující algoritmus:
- Určení nastavení z
VCPKG_VISUAL_STUDIO_PATH
tripletu nebo proměnnéVCPKG_VISUAL_STUDIO_PATH
prostředí nebo zvážení jeho zrušení - Určení nastavení z
VCPKG_PLATFORM_TOOLSET
trojité hodnoty nebo jeho zrušení - Shromáždění seznamu všech párů instancí sady Visual Studio se všemi sadami nástrojů dostupnými v těchto instancích
- Toto je seřazeno nejprve podle typu instance (Stable, Prerelease, Legacy) a potom podle verze sady nástrojů (v143, v142, v141, v140)
- Vyfiltrujte seznam na základě nastavení a
VCPKG_VISUAL_STUDIO_PATH
VCPKG_PLATFORM_TOOLSET
. - Výběr nejlepší zbývající možnosti
Cesta by měla být absolutní, formátovaná zpětnými lomítky a nemá koncové lomítko:
set(VCPKG_VISUAL_STUDIO_PATH "C:\\Program Files (x86)\\Microsoft Visual Studio\\Preview\\Community")
VCPKG_PLATFORM_TOOLSET
Určuje sadu nástrojů kompilátoru C/C++ založené na sadě Visual Studio, která se má použít.
Podívejte VCPKG_VISUAL_STUDIO_PATH
se na úplný algoritmus výběru.
Platná nastavení:
- Sada nástrojů platformy Visual Studio 2022 je
v143
. - Sada nástrojů platformy Visual Studio 2019 je
v142
. - Sada nástrojů platformy Visual Studio 2017 je
v141
. - Sada nástrojů platformy Visual Studio 2015 je
v140
.
VCPKG_PLATFORM_TOOLSET_VERSION
Určuje podrobnou sadu nástrojů kompilátoru JAZYKA C/C++ MSVC, která se má použít.
Ve výchozím nastavení VCPKG_PLATFORM_TOOLSET
vždy zvolí nejnovější nainstalovanou podverzi vybrané sady nástrojů. Pokud potřebujete podrobnější úroveň, můžete tuto proměnnou použít. Můžete zadat buď částečné, nebo úplné číslo verze. Platné hodnoty jsou například 14.25
nebo 14.27.29110
.
VCPKG_LOAD_VCVARS_ENV
Určuje, zda bude vcpkg hledat a používat instanci sady Visual Studio jako součást prostředí triplet.
Ve výchozím nastavení se jedná ON
o trojité tečky systému Windows, které nezadávají VCPKG_CHAINLOAD_TOOLCHAIN_FILE
. U trojitých a trojitých a trojitých systémů, které nezadávají VCPKG_CHAINLOAD_TOOLCHAIN_FILE
systém Windows, se toto výchozí nastavení nastaví na OFF
hodnotu .
Proměnné Linuxu
VCPKG_FIXUP_ELF_RPATH
Pokud je tato možnost nastavená na hodnotu (true|1|on), přidá $ORIGIN
vcpkg hlavičku RUNPATH
spustitelných souborů a sdílených knihoven a $ORIGIN/<path_relative_to_lib>
do záhlaví. To umožňuje přemístit balíčky v Linuxu.
Proměnné macOS
VCPKG_INSTALL_NAME_DIR
Nastaví název instalace použitý při vytváření dynamických knihoven systému macOS. Výchozí hodnota je @rpath
. Další informace najdete v dokumentaci k CMake pro CMAKE_INSTALL_NAME_DIR .
VCPKG_FIXUP_MACHO_RPATH
Zajišťuje, aby se binární soubory Mach-O vytvořené nástrojem vcpkg znovu přidělily pomocí relativních názvů instalací a cest spuštění.
Při nastavení na ON
:
- Upraví absolutní
LC_LC_ID_DYLIB
pole pro@rpath/<library>
binární soubory sdílené knihovny; - Upraví absolutní
LC_RPATH
pole vzhledem@loader_path/<relative/path/to/library>
ke spustitelným souborům a binárním souborům sdílené knihovny.
Důležité
Tato funkce je ve výchozím nastavení povolena, pokud VCPKG_TARGET_IS_OSX
je TRUE
. Pokud chcete zakázat explicitní nastavení VCPKG_FIXUP_MACHO_RPATH
OFF
v trojitém souboru.
Další informace o dynamických knihovnách v systému macOS najdete na následujících odkazech:
- Identifikace dynamické knihovny
- Standardní nastavení dynamické knihovny pro aplikace
- Alternativa úplné cesty dynamické knihovny
- Vkládání nestandardních struktur kódu do sady
VCPKG_OSX_DEPLOYMENT_TARGET
Nastaví minimální verzi macOS pro kompilované binární soubory. Tím se také změní, jaké verze sady SDK platformy macOS CMake budou hledat. Další informace najdete v dokumentaci k CMake pro CMAKE_OSX_DEPLOYMENT_TARGET .
VCPKG_OSX_SYSROOT
Nastavte název nebo cestu sady SDK platformy macOS, kterou bude CMake používat. Další informace najdete v dokumentaci k CMake pro CMAKE_OSX_SYSROOT .
VCPKG_OSX_ARCHITECTURES
Nastavte cílovou architekturu macOS nebo iOS, kterou bude CMake používat. Další informace najdete v dokumentaci k CMake pro CMAKE_OSX_ARCHITECTURES .
Přizpůsobení jednotlivých portů
Proměnná PORT
CMake se nastaví při interpretaci souboru triplet. Dá se použít ke změně nastavení (například VCPKG_LIBRARY_LINKAGE
) pro jednotlivé porty.
Příklad:
set(VCPKG_LIBRARY_LINKAGE static)
if(PORT MATCHES "qt5-")
set(VCPKG_LIBRARY_LINKAGE dynamic)
endif()
Tím se vytvoří všechny qt5-*
porty jako dynamické knihovny, ale každý druhý port jako statická knihovna.
Příklad v reálném projektu najdete v tématu https://github.com/Intelight/vcpkg/blob/master/triplets/x86-windows-mixed.cmake.