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ů.
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
Určuje požadované propojení CRT (pro MSVC).
Platné možnosti jsou dynamic
a static
.
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í.
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.
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)
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
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.
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")
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
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é.
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.
Viz VCPKG_MESON_NATIVE_FILE_RELEASE.
Viz VCPKG_MESON_NATIVE_FILE_RELEASE.
Viz VCPKG_MESON_NATIVE_FILE_RELEASE.
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é.
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é.
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"
)
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"
)
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.
Upozornění
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ů.
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.
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
.
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")
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
.
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
.
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 .
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.
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 .
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
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 .
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 .
Nastavte cílovou architekturu macOS nebo iOS, kterou bude CMake používat. Další informace najdete v dokumentaci k CMake pro CMAKE_OSX_ARCHITECTURES .
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.
Zpětná vazba k produktu vcpkg
vcpkg je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: