Variabili Triplet
Questo articolo descrive le variabili vcpkg disponibili per i file triplet. Un file triplet può includere anche variabili definite dall'utente.
Per una panoramica generale delle funzionalità triplet, vedere la documentazione del concetto di triplette.
Specifica l'architettura del computer di destinazione.
Le opzioni valide includono x86
, x64
, arm
arm64
, arm64ec
, ppc64le
riscv64
s390x
loongarch32
loongarch64
riscv32
mips64
, e .wasm32
Specifica il collegamento CRT desiderato (per MSVC).
Le opzioni valide sono dynamic
e static
.
Specifica il collegamento alla libreria preferito.
Le opzioni valide sono dynamic
e static
. Le librerie possono ignorare questa impostazione se non supportano il tipo di collegamento preferito.
È possibile impostare questo valore su release
per compilare versioni di sola versione delle porte.
Per impostazione predefinita, questo valore è vuoto. Quando questo valore è vuoto vcpkg compila le configurazioni di rilascio e debug delle porte.
Specifica la piattaforma di destinazione.
Le opzioni valide includono qualsiasi nome di sistema CMake, ad esempio:
- Vuoto (Desktop di Windows per motivi legacy)
WindowsStore
(piattaforma UWP (Universal Windows Platform))MinGW
(GNU minimalista per Windows)Darwin
(Mac OSX)iOS
(iOS)Linux
(Linux)Emscripten
(WebAssembly)
Specifica la versione del sistema della piattaforma di destinazione.
Questo campo è facoltativo e, se presente, verrà passato alla compilazione come CMAKE_SYSTEM_VERSION
.
Vedere anche la documentazione di CMake per CMAKE_SYSTEM_VERSION
Specifica un file della toolchain CMake alternativo da usare.
Questo (se impostato) eseguirà l'override di tutte le altre logiche di rilevamento del compilatore. Per impostazione predefinita, un file toolchain viene selezionato dal scripts/toolchains/
file appropriato alla piattaforma.
Nota
Per creare un file toolchain personalizzato, è consigliabile iniziare includendo una toolchain esistente da ${VCPKG_ROOT}/scripts/toolchains
ed estenderla. In questo modo, le variabili essenziali impostate dall'eseguibile vcpkg, ad esempio VCPKG_TARGET_ARCHITECTURE
, VCPKG_CXX_FLAGS
VCPKG_LINKER_FLAGS
, e altre variabili, vengono inoltrate a CMake.
Vedere anche la documentazione di CMake per i file toolchain.
Imposta flag del compilatore aggiuntivi da usare quando non si usa VCPKG_CHAINLOAD_TOOLCHAIN_FILE
.
Questa opzione include anche moduli per flag specifici della configurazione e flag del linguaggio C:
VCPKG_CXX_FLAGS
VCPKG_CXX_FLAGS_DEBUG
VCPKG_CXX_FLAGS_RELEASE
VCPKG_C_FLAGS
VCPKG_C_FLAGS_DEBUG
VCPKG_C_FLAGS_RELEASE
Se si imposta VCPKG_CXX_FLAGS
, è necessario impostare VCPKG_C_FLAGS
anche e viceversa.
Lo stesso vale per i flag specifici della configurazione. Queste variabili accettano una stringa delimitata da spazi dei flag del compilatore:
set(VCPKG_CXX_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
set(VCPKG_C_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
Imposta flag del linker aggiuntivi da usare durante la creazione di librerie dinamiche ed eseguibili in assenza di VCPKG_CHAINLOAD_TOOLCHAIN_FILE
.
Questa opzione include anche moduli per flag specifici della configurazione:
VCPKG_LINKER_FLAGS
VCPKG_LINKER_FLAGS_DEBUG
VCPKG_LINKER_FLAGS_RELEASE
Impostare opzioni di configurazione meson aggiuntive aggiunte al comando configure (in vcpkg_configure_meson
).
Questo campo è facoltativo.
Disponibile anche come variabili e VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE
specifiche VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG
del tipo di compilazione.
Specificare un file dipendente dalla configurazione aggiuntivo come file cross/native meson. Può essere usato per eseguire l'override delle impostazioni fornite da vcpkg perché verrà passato dopo che vengono passati i file incrociati/nativi generati da vcpkg.
Particolarmente utile per fornire le proprie build_machine e host_machine voci.
Vedere VCPKG_MESON_NATIVE_FILE_RELEASE.
Vedere VCPKG_MESON_NATIVE_FILE_RELEASE.
Vedere VCPKG_MESON_NATIVE_FILE_RELEASE.
Imposta opzioni di configurazione aggiuntive di CMake aggiunte al comando configure (in vcpkg_cmake_configure
).
Questo campo è facoltativo.
Disponibile anche come variabili e VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE
specifiche VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG
del tipo di compilazione.
Impostare opzioni di configurazione aggiuntive di automake/autoconf aggiunte al comando configure (in vcpkg_configure_make
).
Questo campo è facoltativo.
Ad esempio, per ignorare determinati controlli libtool che potrebbero avere esito negativo:
set(VCPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")
Disponibile anche come variabili e VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE
specifiche VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG
del tipo di compilazione.
Elenco di file da includere nel calcolo degli hash ABI del pacchetto.
Questo campo è facoltativo.
Dichiarare tutti i file che influiscono sul contenuto di un pacchetto e devono essere inseriti nel calcolo dell'hash ABI. Ad esempio:
- File inclusi (tramite
include(filepath)
) in triplette personalizzate e toolchain. - File definiti in
VCPKG_MESON_(NATIVE|CROSS)_FILE_<CONFIG>
Vengono considerati solo il contenuto e l'ordine dei file, i percorsi dei file non influiscono sull'hash ABI.
set(VCPKG_HASH_ADDITIONAL_FILES
"${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
"${CMAKE_CURRENT_LIST_DIR}/meson-cross.txt"
)
Elenco di file CMake da includere dopo l'esecuzione di portfile.cmake.
Questo campo è facoltativo.
Il contenuto e l'ordine dei file vengono usati per l'hash ABI, i percorsi dei file non influiscono sull'hash ABI.
set(VCPKG_POST_PORTFILE_INCLUDES
"${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
"${CMAKE_CURRENT_LIST_DIR}/file2.cmake"
)
Nota
Questa sezione illustra una funzionalità sperimentale di vcpkg che può cambiare o essere rimossa in qualsiasi momento.
Sostituisce l'elenco calcolato predefinito dei termini "Supports" di triplet.
Questa opzione (se impostata) sostituirà il set predefinito di termini usati per la valutazione di Platform Expression .
Per altri dettagli, vedere la "supports"
documentazione sul campo del file manifesto.
Nota
Questo elenco viene estratto tramite la vcpkg_get_dep_info
funzione helper.
Avviso
L'abilitazione di questa opzione non è consigliata perché può causare incompatibilità ABI nei pacchetti binari ripristinati. Per altre informazioni, vedere la documentazione sulla memorizzazione nella cache binaria
Quando questa opzione è impostata su TRUE
, ON
o 1
, il compilatore non verrà rilevato come parte del pacchetto abis.
Ciò causerà il riutilizzo della memorizzazione nella cache binaria da compilatori meno recenti o più recenti.
Indica a vcpkg di consentire variabili di ambiente aggiuntive nel processo di compilazione.
In Windows vcpkg compila pacchetti in un ambiente pulito speciale isolato dal prompt dei comandi corrente per garantire affidabilità e coerenza della compilazione. Questa opzione triplet può essere impostata su un elenco di variabili di ambiente aggiuntive che verranno aggiunte all'ambiente pulito. I valori di queste variabili di ambiente verranno sottoposti a hashing nel pacchetto abi: per passare le variabili di ambiente senza rilevamento abi, vedere VCPKG_ENV_PASSTHROUGH_UNTRACKED
.
Vedere anche il vcpkg env
comando per informazioni su come esaminare l'ambiente preciso che verrà usato.
Nota
Questo elenco viene estratto tramite la vcpkg_get_tags
funzione helper.
Indica a vcpkg di consentire variabili di ambiente aggiuntive nel processo di compilazione senza tracciare abi.
Vedere VCPKG_ENV_PASSTHROUGH
.
Specifica l'installazione di Visual Studio da usare.
Per selezionare la combinazione precisa dell'istanza di Visual Studio e della versione del set di strumenti, viene illustrato l'algoritmo seguente:
- Determinare l'impostazione per
VCPKG_VISUAL_STUDIO_PATH
dalla tripletta o dalla variabileVCPKG_VISUAL_STUDIO_PATH
di ambiente oppure considerarla unset - Determinare l'impostazione per
VCPKG_PLATFORM_TOOLSET
dalla tripletta o considerarla non impostata - Raccogliere un elenco di tutte le coppie di istanze di Visual Studio con tutti i set di strumenti disponibili in tali istanze
- Viene ordinato per primo per tipo di istanza (Stable, Prerelease, Legacy) e quindi per versione del set di strumenti (v143, v142, v141, v140)
- Filtrare l'elenco in base alle impostazioni per
VCPKG_VISUAL_STUDIO_PATH
eVCPKG_PLATFORM_TOOLSET
. - Selezionare l'opzione rimanente migliore
Il percorso deve essere assoluto, formattato con barre rovesciate e senza barra finale:
set(VCPKG_VISUAL_STUDIO_PATH "C:\\Program Files (x86)\\Microsoft Visual Studio\\Preview\\Community")
Specifica la toolchain del compilatore C/C++ basata su Visual Studio da usare.
Vedere VCPKG_VISUAL_STUDIO_PATH
per l'algoritmo di selezione completo.
Impostazioni valide:
- Il set di strumenti della piattaforma di Visual Studio 2022 è
v143
. - Il set di strumenti della piattaforma di Visual Studio 2019 è
v142
. - Il set di strumenti della piattaforma di Visual Studio 2017 è
v141
. - Il set di strumenti della piattaforma di Visual Studio 2015 è
v140
.
Specifica la toolchain dettagliata del compilatore MSVC C/C++ da usare.
Per impostazione predefinita, VCPKG_PLATFORM_TOOLSET
sceglie sempre la versione secondaria installata più recente del set di strumenti selezionato. Se è necessaria una maggiore granularità, è possibile usare questa variabile. È possibile specificare un numero di versione parziale o completo. I valori validi sono, ad esempio, 14.25
o 14.27.29110
.
Determina se vcpkg cercherà e userà un'istanza di Visual Studio come parte dell'ambiente triplet.
Per impostazione predefinita, si tratta ON
di triplette di Windows che non specificano VCPKG_CHAINLOAD_TOOLCHAIN_FILE
. Per i tripli e le triplette non Windows che specificano VCPKG_CHAINLOAD_TOOLCHAIN_FILE
, per impostazione predefinita è OFF
.
Quando questa opzione è impostata su (true|1|on), vcpkg aggiungerà $ORIGIN
e $ORIGIN/<path_relative_to_lib>
all'intestazione RUNPATH
di eseguibili e librerie condivise. In questo modo i pacchetti possono essere rilocati in Linux.
Imposta il nome di installazione usato per la compilazione di librerie dinamiche macOS. Il valore predefinito è @rpath
. Per altre informazioni, vedere la documentazione di CMake per CMAKE_INSTALL_NAME_DIR .
Garantisce che i file binari Mach-O compilati da vcpkg siano rilocabili usando nomi di installazione relativi e percorsi di esecuzione.
Se impostato su ON
:
- Modifica il campo assoluto
LC_LC_ID_DYLIB
in@rpath/<library>
per i file binari della libreria condivisa; - Modifica i campi assoluti
LC_RPATH
in relazione@loader_path/<relative/path/to/library>
ai file binari della libreria eseguibile e condivisa.
Importante
Questa funzionalità è abilitata per impostazione predefinita quando VCPKG_TARGET_IS_OSX
è TRUE
. Per disabilitare, impostare in modo esplicito su VCPKG_FIXUP_MACHO_RPATH
OFF
in un file triplet.
Per altre informazioni sulle librerie dinamiche in macOS, vedere i collegamenti seguenti:
- Identificazione della libreria dinamica
- Configurazione standard della libreria dinamica per le app
- Alternativa al percorso completo della libreria dinamica
- Incorporamento di strutture di codice non standard in un bundle
Imposta la versione minima di macOS per i file binari compilati. Ciò cambia anche le versioni di macOS platform SDK CMake che cercheranno. Per altre informazioni, vedere la documentazione di CMake per CMAKE_OSX_DEPLOYMENT_TARGET .
Impostare il nome o il percorso dell'SDK della piattaforma macOS che verrà usato da CMake. Per altre informazioni, vedere la documentazione di CMake per CMAKE_OSX_SYSROOT .
Impostare l'architettura di destinazione macOS/iOS che verrà usata da CMake. Per altre informazioni, vedere la documentazione di CMake per CMAKE_OSX_ARCHITECTURES .
La variabile PORT
CMake verrà impostata durante l'interpretazione del file triplet. Può essere usato per modificare le impostazioni, ad esempio VCPKG_LIBRARY_LINKAGE
, per ogni porta.
Esempio:
set(VCPKG_LIBRARY_LINKAGE static)
if(PORT MATCHES "qt5-")
set(VCPKG_LIBRARY_LINKAGE dynamic)
endif()
Verranno compilate tutte le qt5-*
porte come librerie dinamiche, ma ogni altra porta come libreria statica.
Per un esempio in un progetto reale, vedere https://github.com/Intelight/vcpkg/blob/master/triplets/x86-windows-mixed.cmake.
Feedback su vcpkg
vcpkg è un progetto di open source. Selezionare un collegamento per fornire feedback: