Drievoudige variabelen

In dit artikel worden de vcpkg-variabelen beschreven die beschikbaar zijn voor drievoudige bestanden. Een triplet-bestand kan ook door de gebruiker gedefinieerde variabelen bevatten.

Zie de conceptdocumentatie voor driedubbele drievoudige mogelijkheden voor een algemeen overzicht.

Variabelen

VCPKG_TARGET_ARCHITECTURE

Hiermee geeft u de doelmachinearchitectuur.

Geldige opties zijn onder anderex86, x64, armarm64, , arm64ec, s390xppc64leriscv32, riscv64, loongarch32, loongarch64mips64en .wasm32

VCPKG_CRT_LINKAGE

Hiermee geeft u de gewenste CRT-koppeling (voor MSVC).

Geldige opties zijn dynamic en static.

VCPKG_LIBRARY_LINKAGE

Hiermee geeft u de voorkeur bibliotheekkoppeling.

Geldige opties zijn dynamic en static. Bibliotheken kunnen deze instelling negeren als ze het voorkeurskoppelingstype niet ondersteunen.

VCPKG_BUILD_TYPE

U kunt deze waarde instellen op release het bouwen van alleen-releaseversies van de poorten. Deze waarde is standaard leeg. Wanneer deze waarde leeg is, worden vcpkg-builds uitgebracht en foutopsporingsconfiguraties van poorten opgespoord.

VCPKG_CMAKE_SYSTEM_NAME

Hiermee geeft u het doelplatform.

Geldige opties zijn een CMake-systeemnaam, zoals:

  • Leeg (Windows Desktop om verouderde redenen)
  • WindowsStore(Universeel Windows-platform)
  • MinGW(Minimalistische GNU voor Windows)
  • Darwin (Mac OSX)
  • iOS (iOS)
  • Linux (Linux)
  • Emscripten (WebAssembly)

VCPKG_CMAKE_SYSTEM_VERSION

Hiermee geeft u de versie van het doelplatformsysteem op.

Dit veld is optioneel en, indien aanwezig, wordt doorgegeven aan de build als CMAKE_SYSTEM_VERSION.

Zie ook de CMake-documentatie voor CMAKE_SYSTEM_VERSION

VCPKG_CHAINLOAD_TOOLCHAIN_FILE

Hiermee geeft u een alternatief CMake-hulpprogrammaketenbestand te gebruiken.

Met deze optie (indien ingesteld) worden alle andere logica voor compilerdetectie overschreven. Standaard wordt een hulpprogrammaketenbestand geselecteerd van scripts/toolchains/ toepassing op het platform.

Opmerking

Als u een aangepast hulpprogrammaketenbestand wilt maken, kunt u het beste beginnen met het opnemen van een bestaande hulpprogrammaketen van ${VCPKG_ROOT}/scripts/toolchains en het uitbreiden ervan. Dit zorgt ervoor dat essentiële variabelen die zijn ingesteld door het uitvoerbare bestand vcpkg, zoals VCPKG_TARGET_ARCHITECTURE, VCPKG_CXX_FLAGSVCPKG_LINKER_FLAGSen andere variabelen worden doorgestuurd naar CMake.

Zie ook de CMake-documentatie voor hulpprogrammaketenbestanden.

VCPKG_PROVIDED_FORTRAN

Bepaalt of vcpkg een vaste Fortran-compiler levert voor poorten die gebruikmaken van vcpkg_find_fortran().

Als dit is ingesteld ON, gebruikt vcpkg een architectuur-overeenkomende MinGW gfortran in plaats van de hostomgeving te doorzoeken naar een Fortran-compiler. Hierdoor worden pakketcompilaties onafhankelijk van andere Fortran-compilers geïnstalleerd op de host.

De ingebouwde x86- en x64-Windows drietallen stellen deze optie in op ON. MinGW en andere tripletten laten deze OFF standaard staan. Als u een andere Fortran-compiler in een aangepaste triplet wilt selecteren, stelt u deze optie OFF in en configureert u de compiler in VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

VCPKG_CXX_FLAGS

Hiermee stelt u extra compilervlagmen in die moeten worden gebruikt wanneer u deze niet gebruikt VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

Deze optie bevat ook formulieren voor configuratiespecifieke vlaggen en C-taalvlagmen:

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

Als u instelt, moet u ook instellen VCPKG_CXX_FLAGSVCPKG_C_FLAGSen vice versa. Hetzelfde geldt voor de configuratiespecifieke vlaggen. Deze variabelen accepteren een door spaties gescheiden tekenreeks met compilervlagmen:

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

VCPKG_LINKER_FLAGS

Hiermee stelt u extra linkervlagmen in die moeten worden gebruikt tijdens het bouwen van VCPKG_CHAINLOAD_TOOLCHAIN_FILEdynamische bibliotheken en uitvoerbare bestanden als deze niet aanwezig zijn.

Deze optie bevat ook formulieren voor configuratiespecifieke vlaggen:

  • VCPKG_LINKER_FLAGS
  • VCPKG_LINKER_FLAGS_DEBUG
  • VCPKG_LINKER_FLAGS_RELEASE

VCPKG_MESON_CONFIGURE_OPTIONS

Stel extra meson-configuratieopties in die worden toegevoegd aan de opdracht Configureren (in vcpkg_configure_meson).

Dit veld is optioneel.

Ook beschikbaar als build-type specifiek VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG en VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE variabelen.

VCPKG_MESON_NATIVE_FILE_RELEASE

Geef een extra configuratieafhankelijk bestand op als een cross-/native bestand van meson. Kan worden gebruikt om instellingen van vcpkg te overschrijven, omdat deze worden doorgegeven nadat de gegenereerde cross/native bestanden van vcpkg zijn doorgegeven.

Vooral handig om uw eigen build_machine en host_machine vermeldingen te bieden.

VCPKG_MESON_NATIVE_FILE_DEBUG

Zie VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_RELEASE

Zie VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_DEBUG

Zie VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_CMAKE_CONFIGURE_OPTIONS

Hiermee stelt u extra CMake-configuratieopties in die worden toegevoegd aan de opdracht Configureren (in vcpkg_cmake_configure).

Dit veld is optioneel.

Ook beschikbaar als build-type specifiek VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG en VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE variabelen.

VCPKG_CONFIGURE_MAKE_OPTIONS

Stel extra opties voor automake/autoconf-configuratie in die worden toegevoegd aan de opdracht Configureren (in vcpkg_configure_make).

Dit veld is optioneel.

Als u bijvoorbeeld bepaalde libtool-controles wilt overslaan die mogelijk foutloos mislukken:

set(VCPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")

Ook beschikbaar als build-type specifiek VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG en VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE variabelen.

VCPKG_HASH_ADDITIONAL_FILES

Een lijst met bestanden die moeten worden opgenomen in de berekening van pakket-ABI-hashes.

Dit veld is optioneel.

Declareer bestanden die van invloed zijn op de inhoud van een pakket en moet worden meegenomen in de berekening van de ABI-hash. Voorbeeld:

  • Bestanden die zijn opgenomen (via include(filepath)) in aangepaste triplets en toolchains.
  • Bestanden die zijn gedefinieerd in VCPKG_MESON_(NATIVE|CROSS)_FILE_<CONFIG>

Alleen de inhoud en volgorde van de bestanden worden overwogen, de paden van de bestanden hebben geen invloed op de ABI-hash.

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

VCPKG_POST_PORTFILE_INCLUDES

Een lijst met CMake-bestanden die moeten worden opgenomen na de uitvoering van portfile.cmake.

Dit veld is optioneel.

De inhoud en volgorde van de bestanden worden gebruikt voor de ABI-hash, de paden van de bestanden hebben geen invloed op de ABI-hash.

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

VCPKG_DEP_INFO_OVERRIDE_VARS

Opmerking

In deze sectie wordt een experimentele functie van vcpkg behandeld die op elk gewenst moment kan worden gewijzigd of verwijderd.

Vervangt de standaard berekende lijst met drievoudige termen 'Ondersteunt'.

Met deze optie (indien ingesteld) wordt de standaardset termen overschreven die worden gebruikt voor de evaluatie van platformexpressie .

Zie de documentatie voor het "supports" manifestbestandsveld voor meer informatie.

Opmerking

Deze lijst wordt geëxtraheerd via de vcpkg_get_dep_info helperfunctie.

VCPKG_DISABLE_COMPILER_TRACKING

Warning

Het inschakelen van deze optie wordt niet aanbevolen omdat dit kan leiden tot incompatibiliteit van ABI in herstelde binaire pakketten. Zie de documentatie voor binaire caching voor meer informatie

Wanneer deze optie is ingesteld op TRUE, ONof 1, wordt de compiler niet bijgehouden als onderdeel van het pakket abis.

Dit zorgt ervoor dat binaire caching builds van oudere of nieuwere compilers hergebruikt.

Windows-specifieke variabelen

VCPKG_ENV_PASSTHROUGH

Hiermee wordt vcpkg geïnstrueerd om extra omgevingsvariabelen toe te staan in het buildproces.

Op Windows bouwt vcpkg pakketten in een speciale schone omgeving die is geïsoleerd van de huidige opdrachtprompt om de betrouwbaarheid en consistentie van de build te garanderen. Deze drievoudige optie kan worden ingesteld op een lijst met aanvullende omgevingsvariabelen die worden toegevoegd aan de schone omgeving. De waarden van deze omgevingsvariabelen worden gehasht in de pakket-abi. Zie VCPKG_ENV_PASSTHROUGH_UNTRACKED om omgevingsvariabelen door te geven zonder abi-tracering.

Zie ook de vcpkg env opdracht voor het controleren van de exacte omgeving die wordt gebruikt.

Opmerking

Deze lijst wordt geëxtraheerd via de vcpkg_get_tags helperfunctie.

VCPKG_ENV_PASSTHROUGH_UNTRACKED

Hiermee wordt vcpkg geïnstrueerd om extra omgevingsvariabelen toe te staan in het buildproces zonder abi-tracering.

Zie VCPKG_ENV_PASSTHROUGH.

VCPKG_VISUAL_STUDIO_PATH

Hiermee geeft u de Visual Studio installatie te gebruiken.

Om de exacte combinatie van Visual Studio exemplaar en toolsetversie te selecteren, doorlopen we het volgende algoritme:

  1. Bepaal de instelling voor VCPKG_VISUAL_STUDIO_PATH de triplet of de omgevingsvariabele VCPKG_VISUAL_STUDIO_PATH, of overweeg de instelling ongedaan te maken
  2. Bepaal de instelling voor VCPKG_PLATFORM_TOOLSET de drievoudige waarde of overweeg de instelling ongedaan te maken
  3. Een lijst met alle paren van Visual Studio exemplaren verzamelen met alle hulpprogramma's die beschikbaar zijn in deze exemplaren
    • Dit wordt eerst gerangschikt op instantietype (Stable, Prerelease, Legacy) en vervolgens op toolset-versie (v143, v142, v141, v140)
  4. Filter de lijst op basis van de instellingen voor VCPKG_VISUAL_STUDIO_PATH en VCPKG_PLATFORM_TOOLSET.
  5. Selecteer de beste resterende optie

Het pad moet absoluut zijn, opgemaakt met backslashes en geen afsluitende slash hebben:

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

VCPKG_PLATFORM_TOOLSET

Hiermee geeft u de Visual Studio-gebaseerde C/C++ compiler toolchain te gebruiken.

Zie VCPKG_VISUAL_STUDIO_PATH voor het volledige selectie-algoritme.

Geldige instellingen:

  • De platformhulpprogrammaset Visual Studio 2026 is v145.
  • De platformhulpprogrammaset Visual Studio 2022 is v143.
  • De platformhulpprogrammaset Visual Studio 2019 is v142.
  • De platformhulpprogrammaset Visual Studio 2017 is v141.

VCPKG_PLATFORM_TOOLSET_VERSION

Hiermee geeft u de gedetailleerde MSVC C/C++ compiler toolchain te gebruiken.

VCPKG_PLATFORM_TOOLSET Standaard kiest u altijd de meest recente geïnstalleerde secundaire versie van de geselecteerde toolset. Als u meer granulariteit nodig hebt, kunt u deze variabele gebruiken. U kunt een gedeeltelijk of volledig versienummer opgeven. Geldige waarden zijn bijvoorbeeld 14.25 of 14.27.29110.

VCPKG_LOAD_VCVARS_ENV

Bepaalt of vcpkg een exemplaar van Visual Studio zoekt en gebruikt als onderdeel van de triplet-omgeving.

Dit is ON standaard bedoeld voor Windows drietallen die niet worden opgegevenVCPKG_CHAINLOAD_TOOLCHAIN_FILE. Voor niet-Windows drietallen en drietallen die VCPKG_CHAINLOAD_TOOLCHAIN_FILEworden opgegeven, wordt dit standaard ingesteld OFFop .

Linux-variabelen

VCPKG_FIXUP_ELF_RPATH

Wanneer deze optie is ingesteld op (true|1|on), voegt $ORIGIN vcpkg toe en $ORIGIN/<path_relative_to_lib> aan de RUNPATH header van uitvoerbare bestanden en gedeelde bibliotheken. Hierdoor kunnen pakketten worden verplaatst op Linux.

MacOS-variabelen

VCPKG_INSTALL_NAME_DIR

Hiermee stelt u de installatienaam in die wordt gebruikt bij het bouwen van dynamische macOS-bibliotheken. De standaardwaarde is @rpath. Zie de CMake-documentatie voor CMAKE_INSTALL_NAME_DIR voor meer informatie.

VCPKG_FIXUP_MACHO_RPATH

Zorgt ervoor dat Mach-O binaire bestanden die zijn gebouwd door vcpkg, kunnen worden hersteld met behulp van relatieve installatienamen en run-paden.

Als dit is ingesteld op ON:

  • Hiermee wijzigt u het absolute LC_LC_ID_DYLIB veld voor @rpath/<library> binaire bestanden van gedeelde bibliotheken;
  • Hiermee worden absolute LC_RPATH velden gewijzigd in relatieve voor @loader_path/<relative/path/to/library> binaire bestanden van uitvoerbare en gedeelde bibliotheken.

Belangrijk

Deze functionaliteit is standaard ingeschakeld wanneer VCPKG_TARGET_IS_OSX dit is TRUE. Als u dit wilt uitschakelen, moet u deze expliciet instellen VCPKG_FIXUP_MACHO_RPATHOFF in een drievoudig bestand.

Raadpleeg de volgende koppelingen voor meer informatie over dynamische bibliotheken in macOS:

VCPKG_OSX_DEPLOYMENT_TARGET

Hiermee stelt u de minimale macOS-versie in voor gecompileerde binaire bestanden. Hiermee wordt ook gewijzigd naar welke versies van de macOS-platform-SDK CMake wordt gezocht. Zie de CMake-documentatie voor CMAKE_OSX_DEPLOYMENT_TARGET voor meer informatie.

VCPKG_OSX_SYSROOT

Stel de naam of het pad in van de macOS-platform-SDK die door CMake wordt gebruikt. Zie de CMake-documentatie voor CMAKE_OSX_SYSROOT voor meer informatie.

VCPKG_OSX_ARCHITECTURES

Stel de macOS-/iOS-doelarchitectuur in die door CMake wordt gebruikt. Zie de CMake-documentatie voor CMAKE_OSX_ARCHITECTURES voor meer informatie.

Aanpassing per poort

De variabele PORT CMake wordt ingesteld bij het interpreteren van het drievoudige bestand. Het kan worden gebruikt om instellingen (zoals VCPKG_LIBRARY_LINKAGE) per poort te wijzigen.

Voorbeeld:

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

Hiermee worden alle qt5-* poorten gebouwd als dynamische bibliotheken, maar elke andere poort als een statische bibliotheek.

Zie voor een voorbeeld in een echt project https://github.com/Intelight/vcpkg/blob/master/triplets/x86-windows-mixed.cmake.