Tripletvariabler

I den här artikeln beskrivs de vcpkg-variabler som är tillgängliga för trillingfiler. En trillingfil kan också innehålla användardefinierade variabler.

Se dokumentationen för trillingkonceptet för en översikt över tripletfunktioner.

Variables

VCPKG_TARGET_ARCHITECTURE

Anger måldatorarkitekturen.

Giltiga alternativ är x86, x64, arm, arm64, arm64ec, s390x, ppc64le, riscv32, riscv64, loongarch32, , loongarch64, mips64och wasm32.

VCPKG_CRT_LINKAGE

Anger önskad CRT-länkning (för MSVC).

Giltiga alternativ är dynamic och static.

VCPKG_LIBRARY_LINKAGE

Anger önskad bibliotekslänkage.

Giltiga alternativ är dynamic och static. Bibliotek kan ignorera den här inställningen om de inte stöder den önskade länkningstypen.

VCPKG_BUILD_TYPE

Du kan ange det här värdet till release för att skapa versionsversioner av portarna. Som standard är det här värdet tomt. När det här värdet är tomt skapar vcpkg versions- och felsökningskonfigurationer för portar.

VCPKG_CMAKE_SYSTEM_NAME

Anger målplattformen.

Giltiga alternativ inkluderar valfritt CMake-systemnamn, till exempel:

  • Tom (Windows Desktop av äldre skäl)
  • WindowsStore(Universell Windows-plattform)
  • MinGW(Minimalistisk GNU för Windows)
  • Darwin (Mac OSX)
  • iOS (iOS)
  • Linux(Linux)
  • Emscripten (WebAssembly)

VCPKG_CMAKE_SYSTEM_VERSION

Anger målplattformens systemversion.

Det här fältet är valfritt och skickas, om det finns, till bygget som CMAKE_SYSTEM_VERSION.

Se även CMake-dokumentationen för CMAKE_SYSTEM_VERSION

VCPKG_CHAINLOAD_TOOLCHAIN_FILE

Anger en alternativ CMake-verktygskedja som ska användas.

Detta (om det anges) åsidosätter all annan logik för kompilatoridentifiering. Som standard väljs en verktygskedjafil från scripts/toolchains/ lämplig till plattformen.

Note

Om du vill skapa en anpassad verktygskedja är det bäst att börja med att inkludera en befintlig verktygskedja från ${VCPKG_ROOT}/scripts/toolchains och utöka den. Detta säkerställer att viktiga variabler som anges av den körbara filen vcpkg, till exempel VCPKG_TARGET_ARCHITECTURE, VCPKG_CXX_FLAGS, VCPKG_LINKER_FLAGSoch andra variabler, vidarebefordras till CMake.

Se även CMake-dokumentationen för verktygskedjafiler.

VCPKG_PROVIDED_FORTRAN

Styr om vcpkg tillhandahåller en fast Fortran-kompilator för portar som använder vcpkg_find_fortran().

När värdet är inställt på ONanvänder vcpkg en arkitekturmatchad MinGW gfortran i stället för att söka i värdmiljön efter en Fortran-kompilator. Detta gör paketversioner oberoende av andra Fortran-kompilatorer som är installerade på värden.

De inbyggda x86- och x64-Windows trillingarna anger det här alternativet till ON. MinGW och andra trillingar lämnar den OFF som standard. Om du vill välja en annan Fortran-kompilator i en anpassad trilling anger du det här alternativet till OFF och konfigurerar kompilatorn i VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

VCPKG_CXX_FLAGS

Anger ytterligare kompileringsflaggor som ska användas när du inte använder VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

Det här alternativet har också formulär för konfigurationsspecifika flaggor och C-språkflaggor:

  • VCPKG_CXX_FLAGS
  • VCPKG_CXX_FLAGS_DEBUG
  • VCPKG_CXX_FLAGS_RELEASE
  • VCPKG_C_FLAGS
  • VCPKG_C_FLAGS_DEBUG
  • VCPKG_C_FLAGS_RELEASE

Om du anger VCPKG_CXX_FLAGSmåste du också ange VCPKG_C_FLAGS, och vice versa. Detsamma gäller för de konfigurationsspecifika flaggorna. Dessa variabler accepterar en blankstegsavgränsad sträng med kompilatorflaggor:

set(VCPKG_CXX_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
set(VCPKG_C_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")

VCPKG_LINKER_FLAGS

Anger ytterligare länkflaggor som ska användas när dynamiska bibliotek och körbara filer skapas i avsaknad av VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

Det här alternativet har också formulär för konfigurationsspecifika flaggor:

  • VCPKG_LINKER_FLAGS
  • VCPKG_LINKER_FLAGS_DEBUG
  • VCPKG_LINKER_FLAGS_RELEASE

VCPKG_MESON_CONFIGURE_OPTIONS

Ange ytterligare Meson-konfigurationsalternativ som läggs till i kommandot configure (i vcpkg_configure_meson).

Det här fältet är valfritt.

Finns även som build-type specific VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG och VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE variables.

VCPKG_MESON_NATIVE_FILE_RELEASE

Ange ytterligare en konfigurationsberoende fil som en kors-/intern mesonfil. Kan användas för att åsidosätta inställningar som tillhandahålls av vcpkg eftersom det skickas efter att vcpkgs genererade kors/interna filer har skickats.

Särskilt användbart för att ange egna build_machine- och host_machine poster.

VCPKG_MESON_NATIVE_FILE_DEBUG

Se VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_RELEASE

Se VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_DEBUG

Se VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_CMAKE_CONFIGURE_OPTIONS

Anger ytterligare CMake-konfigurationsalternativ som läggs till i kommandot configure (i vcpkg_cmake_configure).

Det här fältet är valfritt.

Finns även som build-type specific VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG och VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE variables.

VCPKG_CONFIGURE_MAKE_OPTIONS

Ange ytterligare alternativ för automatisk konfiguration/automatisk konfiguration som läggs till i kommandot configure (i vcpkg_configure_make).

Det här fältet är valfritt.

Om du till exempel vill hoppa över vissa libtool-kontroller som felaktigt misslyckas:

set(VCPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")

Finns även som build-type specific VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG och VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE variables.

VCPKG_HASH_ADDITIONAL_FILES

En lista över filer som ska inkluderas i beräkningen av paket-ABI-hashvärden.

Det här fältet är valfritt.

Deklarera alla filer som påverkar innehållet i ett paket och bör beaktas i beräkningen av ABI-hashen. Ett exempel:

  • Filer som ingår (via include(filepath)) i anpassade trillingar och verktygskedjor.
  • Filer som har definierats i VCPKG_MESON_(NATIVE|CROSS)_FILE_<CONFIG>

Endast innehållet och ordningen på filerna beaktas, sökvägarna för filerna påverkar inte ABI-hashen.

set(VCPKG_HASH_ADDITIONAL_FILES
  "${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
  "${CMAKE_CURRENT_LIST_DIR}/meson-cross.txt"
)

VCPKG_POST_PORTFILE_INCLUDES

En lista över CMake-filer som ska inkluderas efter körningen av portfile.cmake.

Det här fältet är valfritt.

Innehållet och ordningen på filerna används för ABI-hashen, sökvägarna för filerna påverkar inte ABI-hashen.

set(VCPKG_POST_PORTFILE_INCLUDES
  "${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
  "${CMAKE_CURRENT_LIST_DIR}/file2.cmake"
)

VCPKG_DEP_INFO_OVERRIDE_VARS

Note

Det här avsnittet beskriver en experimentell funktion av vcpkg som kan ändras eller tas bort när som helst.

Ersätter den beräknade standardlistan med tredubblade "Supports"-termer.

Det här alternativet (om det anges) åsidosätter standarduppsättningen med termer som används för utvärdering av plattformsuttryck .

Mer information finns i dokumentationen för "supports" manifestfilfältet.

Note

Den här listan extraheras via vcpkg_get_dep_info hjälpfunktionen.

VCPKG_DISABLE_COMPILER_TRACKING

Varning

Att aktivera det här alternativet rekommenderas inte eftersom det kan leda till ABI-inkompatibilitet i återställde binära paket. Mer information finns i dokumentationen om binär cachelagring

När det här alternativet är inställt på TRUE, ONeller 1, spåras inte kompilatorn som en del av paket-abis.

Detta gör att binär cachelagring återanvänder versioner från äldre eller nyare kompilatorer.

Windows-specifika variabler

VCPKG_ENV_PASSTHROUGH

Instruerar vcpkg att tillåta ytterligare miljövariabler i byggprocessen.

På Windows skapar vcpkg paket i en speciell ren miljö som är isolerad från den aktuella kommandotolken för att säkerställa tillförlitlighet och konsekvens i bygget. Det här trillingalternativet kan ställas in på en lista över ytterligare miljövariabler som ska läggas till i den rena miljön. Värdena för dessa miljövariabler hashas in i paket-abi – för att passera genom miljövariabler utan abispårning, se VCPKG_ENV_PASSTHROUGH_UNTRACKED.

Se även vcpkg env kommandot för hur du kan inspektera den exakta miljön som ska användas.

Note

Den här listan extraheras via vcpkg_get_tags hjälpfunktionen.

VCPKG_ENV_PASSTHROUGH_UNTRACKED

Instruerar vcpkg att tillåta ytterligare miljövariabler i byggprocessen utan abispårning.

Se även VCPKG_ENV_PASSTHROUGH.

VCPKG_VISUAL_STUDIO_PATH

Anger den Visual Studio installation som ska användas.

För att välja den exakta kombinationen av Visual Studio instans och verktygsuppsättningsversion går vi igenom följande algoritm:

  1. Fastställ inställningen för VCPKG_VISUAL_STUDIO_PATH från trillingen eller miljövariabeln VCPKG_VISUAL_STUDIO_PATH, eller överväg att den tas bort
  2. Fastställ inställningen för VCPKG_PLATFORM_TOOLSET från trillingen eller överväg att den är oet
  3. Samla in en lista över alla par med Visual Studio-instanser med alla verktygsuppsättningar som är tillgängliga i dessa instanser
    • Detta sorteras först efter instanstyp (Stable, Prerelease, Legacy) och sedan efter verktygsuppsättningsversion (v143, v142, v141, v140)
  4. Filtrera listan baserat på inställningarna för VCPKG_VISUAL_STUDIO_PATH och VCPKG_PLATFORM_TOOLSET.
  5. Välj det bästa återstående alternativet

Sökvägen ska vara absolut, formaterad med omvänt snedstreck och har inget avslutande snedstreck:

set(VCPKG_VISUAL_STUDIO_PATH "C:\\Program Files\\Microsoft Visual Studio\\2022\\Preview")

VCPKG_PLATFORM_TOOLSET

Anger den Visual Studio-baserade C/C++-kompileringsverktygskedjan som ska användas.

Se VCPKG_VISUAL_STUDIO_PATH för den fullständiga markeringsalgoritmen.

Giltiga inställningar:

  • Plattformsverktygsuppsättningen Visual Studio 2026 är v145.
  • Plattformsverktygsuppsättningen Visual Studio 2022 är v143.
  • Plattformsverktygsuppsättningen Visual Studio 2019 är v142.
  • Plattformsverktygsuppsättningen Visual Studio 2017 är v141.

VCPKG_PLATFORM_TOOLSET_VERSION

Anger den detaljerade MSVC C/C++-kompilatorverktygskedja som ska användas.

Som standard VCPKG_PLATFORM_TOOLSET väljer du alltid den senaste installerade delversionen av den valda verktygsuppsättningen. Om du behöver mer kornighet kan du använda den här variabeln. Du kan ange antingen ett partiellt eller ett fullständigt versionsnummer. Giltiga värden är till exempel 14.25 eller 14.27.29110.

VCPKG_LOAD_VCVARS_ENV

Avgör om vcpkg söker efter och använder en instans av Visual Studio som en del av trippelmiljön.

Som standard gäller ON detta för Windows trillingar som inte anger VCPKG_CHAINLOAD_TOOLCHAIN_FILE. För icke-Windows trillingar och trillingar som VCPKG_CHAINLOAD_TOOLCHAIN_FILEanger , är detta standardvärdet OFF.

Linux-variabler

VCPKG_FIXUP_ELF_RPATH

När det här alternativet är inställt på (true|1|on) kommer vcpkg att lägga till $ORIGIN och $ORIGIN/<path_relative_to_lib> till RUNPATH huvudet för körbara filer och delade bibliotek. Detta gör att paket kan flyttas i Linux.

MacOS-variabler

VCPKG_INSTALL_NAME_DIR

Anger installationsnamnet som används när du skapar dynamiska macOS-bibliotek. Standardvärdet är @rpath. Mer information finns i CMake-dokumentationen för CMAKE_INSTALL_NAME_DIR .

VCPKG_FIXUP_MACHO_RPATH

Säkerställer Mach-O binärfiler som skapats av vcpkg kan flyttas med hjälp av relativa installationsnamn och sökvägar.

När det är inställt på ON:

  • Ändrar absolut fält LC_LC_ID_DYLIB till @rpath/<library> för delade biblioteksbinärfiler.
  • Ändrar absoluta LC_RPATH fält till relativt @loader_path/<relative/path/to/library> för binärfiler för körbara och delade bibliotek.

Important

Den här funktionen är aktiverad som standard när VCPKG_TARGET_IS_OSX är TRUE. Om du vill inaktivera anger du VCPKG_FIXUP_MACHO_RPATH uttryckligen till OFF i en trillingfil.

Mer information om dynamiska bibliotek på macOS finns i följande länkar:

VCPKG_OSX_DEPLOYMENT_TARGET

Anger den lägsta macOS-versionen för kompilerade binärfiler. Detta ändrar också vilka versioner av macOS-plattformenSDK CMake kommer att söka efter. Mer information finns i CMake-dokumentationen för CMAKE_OSX_DEPLOYMENT_TARGET .

VCPKG_OSX_SYSROOT

Ange namnet eller sökvägen för den macOS-plattforms-SDK som ska användas av CMake. Mer information finns i CMake-dokumentationen för CMAKE_OSX_SYSROOT .

VCPKG_OSX_ARCHITECTURES

Ange den macOS/iOS-målarkitektur som ska användas av CMake. Mer information finns i CMake-dokumentationen för CMAKE_OSX_ARCHITECTURES .

Anpassning per port

CMake-variabeln PORT anges när du tolkar trillingfilen. Den kan användas för att ändra inställningar (till exempel VCPKG_LIBRARY_LINKAGE) per port.

Exempel:

set(VCPKG_LIBRARY_LINKAGE static)
if(PORT MATCHES "qt5-")
    set(VCPKG_LIBRARY_LINKAGE dynamic)
endif()

Detta skapar alla qt5-* portar som dynamiska bibliotek, men alla andra portar som ett statiskt bibliotek.

Ett exempel i ett verkligt projekt finns https://github.com/Intelight/vcpkg/blob/master/triplets/x86-windows-mixed.cmakei .