Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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_FLAGSVCPKG_CXX_FLAGS_DEBUGVCPKG_CXX_FLAGS_RELEASEVCPKG_C_FLAGSVCPKG_C_FLAGS_DEBUGVCPKG_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_FLAGSVCPKG_LINKER_FLAGS_DEBUGVCPKG_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.
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:
- Bepaal de instelling voor
VCPKG_VISUAL_STUDIO_PATHde triplet of de omgevingsvariabeleVCPKG_VISUAL_STUDIO_PATH, of overweeg de instelling ongedaan te maken - Bepaal de instelling voor
VCPKG_PLATFORM_TOOLSETde drievoudige waarde of overweeg de instelling ongedaan te maken - 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)
- Filter de lijst op basis van de instellingen voor
VCPKG_VISUAL_STUDIO_PATHenVCPKG_PLATFORM_TOOLSET. - 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_DYLIBveld voor@rpath/<library>binaire bestanden van gedeelde bibliotheken; - Hiermee worden absolute
LC_RPATHvelden 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:
- Dynamische bibliotheekidentificatie
- Standaardinstellingen voor dynamische bibliotheek voor apps
- Alternatief voor volledig pad voor dynamische bibliotheek
- Niet-standaardcodestructuren insluiten in een bundel
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.