Variabel triplet

Artikel ini menjelaskan variabel vcpkg yang tersedia untuk file triplet. File triplet juga dapat menyertakan variabel yang ditentukan pengguna.

Lihat dokumentasi konsep triplet untuk tampilan kemampuan triplet tingkat tinggi.

Variabel

VCPKG_TARGET_ARCHITECTURE

Menentukan arsitektur komputer target.

Opsi yang valid meliputi x86, , x64arm, arm64, arm64ec, s390x, ppc64le, riscv32, riscv64, loongarch32, loongarch64, mips64, dan wasm32.

VCPKG_CRT_LINKAGE

Menentukan tautan CRT yang diinginkan (untuk MSVC).

Opsi yang valid adalah dynamic dan static.

VCPKG_LIBRARY_LINKAGE

Menentukan tautan pustaka pilihan.

Opsi yang valid adalah dynamic dan static. Pustaka dapat mengabaikan pengaturan ini jika tidak mendukung jenis tautan pilihan.

VCPKG_BUILD_TYPE

Anda dapat mengatur nilai ini ke release untuk membangun versi port khusus rilis. Secara default nilai ini kosong. Ketika nilai ini kosong vcpkg membangun rilis dan konfigurasi debug port.

VCPKG_CMAKE_SYSTEM_NAME

Menentukan platform target.

Opsi yang valid mencakup nama sistem CMake apa pun, seperti:

  • Kosong (Windows Desktop karena alasan warisan)
  • WindowsStore(Platform Windows Universal)
  • MinGW(Minimalis GNU untuk Windows)
  • Darwin (Mac OSX)
  • iOS (iOS)
  • Linux (Linux)
  • Emscripten (WebAssembly)

VCPKG_CMAKE_SYSTEM_VERSION

Menentukan versi sistem platform target.

Bidang ini bersifat opsional dan, jika ada, akan diteruskan ke dalam build sebagai CMAKE_SYSTEM_VERSION.

Lihat juga dokumentasi CMake untuk CMAKE_SYSTEM_VERSION

VCPKG_CHAINLOAD_TOOLCHAIN_FILE

Menentukan file toolchain CMake alternatif yang akan digunakan.

Ini (jika diatur) akan mengambil alih semua logika deteksi kompilator lainnya. Secara default, file toolchain dipilih dari scripts/toolchains/ yang sesuai ke platform.

Note

Untuk membuat file toolchain kustom, yang terbaik adalah memulai dengan menyertakan toolchain yang ada dari ${VCPKG_ROOT}/scripts/toolchains dan memperluasnya. Ini memastikan bahwa variabel penting yang ditetapkan oleh vcpkg executable, seperti VCPKG_TARGET_ARCHITECTURE, , VCPKG_CXX_FLAGSVCPKG_LINKER_FLAGS, dan variabel lainnya diteruskan ke CMake.

Lihat juga dokumentasi CMake untuk file toolchain.

VCPKG_PROVIDED_FORTRAN

Mengontrol apakah vcpkg memasok kompilator Fortran tetap untuk port yang menggunakan vcpkg_find_fortran().

Ketika diatur ke ON, vcpkg menggunakan MinGW gfortran yang cocok dengan arsitektur alih-alih mencari lingkungan host untuk kompilator Fortran. Ini membuat build paket independen dari kompilator Fortran lainnya yang diinstal pada host.

Kembung Windows x86 dan x64 bawaan mengatur opsi ini ke ON. MinGW dan triplet lainnya membiarkannya OFF secara default. Untuk memilih kompilator Fortran yang berbeda dalam triplet kustom, atur opsi ini ke OFF dan konfigurasikan pengkompilasi di VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

VCPKG_CXX_FLAGS

Mengatur bendera pengkompilasi tambahan yang akan digunakan saat tidak menggunakan VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

Opsi ini juga memiliki formulir untuk bendera khusus konfigurasi dan bendera bahasa C:

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

Jika Anda mengatur VCPKG_CXX_FLAGS, Anda juga harus mengatur VCPKG_C_FLAGS, dan sebaliknya. Hal yang sama berlaku untuk bendera khusus konfigurasi. Variabel ini menerima string bendera pengkompilasi yang dibatasi spasi:

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

VCPKG_LINKER_FLAGS

Mengatur bendera linker tambahan yang akan digunakan saat membangun pustaka dinamis dan dapat dieksekusi tanpa adanya VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

Opsi ini juga memiliki formulir untuk bendera khusus konfigurasi:

  • VCPKG_LINKER_FLAGS
  • VCPKG_LINKER_FLAGS_DEBUG
  • VCPKG_LINKER_FLAGS_RELEASE

VCPKG_MESON_CONFIGURE_OPTIONS

Atur opsi konfigurasi Meson tambahan yang ditambahkan ke perintah konfigurasi (di vcpkg_configure_meson).

Bidang ini bersifat opsional.

Juga tersedia sebagai jenis build spesifik VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG dan VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE variabel.

VCPKG_MESON_NATIVE_FILE_RELEASE

Berikan file dependen konfigurasi tambahan sebagai file lintas/asli meson. Dapat digunakan untuk mengambil alih pengaturan yang disediakan oleh vcpkg karena akan diteruskan setelah file silang/asli yang dihasilkan vcpkg diteruskan.

Sangat berguna untuk menyediakan entri build_machine dan host_machine Anda sendiri.

VCPKG_MESON_NATIVE_FILE_DEBUG

Lihat VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_RELEASE

Lihat VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_DEBUG

Lihat VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_CMAKE_CONFIGURE_OPTIONS

Mengatur opsi konfigurasi CMake tambahan yang ditambahkan ke perintah konfigurasi (di vcpkg_cmake_configure).

Bidang ini bersifat opsional.

Juga tersedia sebagai jenis build spesifik VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG dan VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE variabel.

VCPKG_CONFIGURE_MAKE_OPTIONS

Atur opsi konfigurasi automake/autoconf tambahan yang ditambahkan ke perintah konfigurasi (di vcpkg_configure_make).

Bidang ini bersifat opsional.

Misalnya, untuk melewati pemeriksaan libtool tertentu yang mungkin gagal:

set(VCPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")

Juga tersedia sebagai jenis build spesifik VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG dan VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE variabel.

VCPKG_HASH_ADDITIONAL_FILES

Daftar file yang akan disertakan dalam perhitungan hash ABI paket.

Bidang ini bersifat opsional.

Deklarasikan file apa pun yang memengaruhi konten paket dan harus diperhitungkan ke dalam perhitungan hash ABI. Contohnya:

  • File yang disertakan (melalui include(filepath)) dalam triplet kustom dan toolchain.
  • File yang didefinisikan dalam VCPKG_MESON_(NATIVE|CROSS)_FILE_<CONFIG>

Hanya konten dan urutan file yang dipertimbangkan, jalur file tidak memengaruhi hash ABI.

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

VCPKG_POST_PORTFILE_INCLUDES

Daftar file CMake yang akan disertakan setelah eksekusi portfile.cmake.

Bidang ini bersifat opsional.

Konten dan urutan file digunakan untuk hash ABI, jalur file tidak memengaruhi hash ABI.

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

VCPKG_DEP_INFO_OVERRIDE_VARS

Note

Bagian ini mencakup fitur eksperimental vcpkg yang dapat berubah atau dihapus kapan saja.

Menggantikan daftar komputasi default istilah "Dukungan" triplet.

Opsi ini (jika diatur) akan mengambil alih kumpulan istilah default yang digunakan untuk evaluasi Ekspresi Platform .

"supports" Lihat dokumentasi bidang file manifes untuk detail selengkapnya.

Note

Daftar ini diekstrak melalui fungsi pembantu vcpkg_get_dep_info .

VCPKG_DISABLE_COMPILER_TRACKING

Warning

Mengaktifkan opsi ini tidak disarankan karena dapat menyebabkan ketidaksesuaian ABI dalam paket biner yang dipulihkan. Lihat dokumentasi penembolokan biner untuk mempelajari selengkapnya

Ketika opsi ini diatur ke TRUE, ON, atau 1, pengkompilasi tidak akan dilacak sebagai bagian dari paket abis.

Ini akan menyebabkan penembolokan biner menggunakan kembali build dari pengkompilasi yang lebih lama atau yang lebih baru.

Variabel khusus Windows

VCPKG_ENV_PASSTHROUGH

Menginstruksikan vcpkg untuk memungkinkan variabel lingkungan tambahan ke dalam proses build.

Pada Windows, vcpkg membangun paket di lingkungan bersih khusus yang diisolasi dari prompt perintah saat ini untuk memastikan keandalan dan konsistensi build. Opsi triplet ini dapat diatur ke daftar variabel lingkungan tambahan yang akan ditambahkan ke lingkungan yang bersih. Nilai variabel lingkungan ini akan di-hash ke dalam paket abi -- untuk melewati variabel lingkungan tanpa pelacakan abi, lihat VCPKG_ENV_PASSTHROUGH_UNTRACKED.

Lihat juga vcpkg env perintah tentang bagaimana Anda dapat memeriksa lingkungan yang tepat yang akan digunakan.

Note

Daftar ini diekstrak melalui fungsi pembantu vcpkg_get_tags .

VCPKG_ENV_PASSTHROUGH_UNTRACKED

Menginstruksikan vcpkg untuk memungkinkan variabel lingkungan tambahan ke dalam proses build tanpa pelacakan abi.

Lihat VCPKG_ENV_PASSTHROUGH.

VCPKG_VISUAL_STUDIO_PATH

Menentukan penginstalan Visual Studio yang akan digunakan.

Untuk memilih kombinasi yang tepat dari instans Visual Studio dan versi toolset, kami menelusuri algoritma berikut:

  1. Tentukan pengaturan untuk VCPKG_VISUAL_STUDIO_PATH dari triplet, atau variabel VCPKG_VISUAL_STUDIO_PATHlingkungan , atau pertimbangkan untuk membatalkan set
  2. Tentukan pengaturan untuk VCPKG_PLATFORM_TOOLSET dari triplet atau pertimbangkan untuk membatalkan pengaturan
  3. Kumpulkan daftar semua pasangan instans Visual Studio dengan semua toolset yang tersedia dalam instans tersebut
    • Ini diurutkan terlebih dahulu berdasarkan jenis instans (Stabil, Prarilis, Warisan) dan kemudian dengan versi toolset (v143, v142, v141, v140)
  4. Filter daftar berdasarkan pengaturan untuk VCPKG_VISUAL_STUDIO_PATH dan VCPKG_PLATFORM_TOOLSET.
  5. Pilih opsi terbaik yang tersisa

Jalur harus absolut, diformat dengan garis miring terbalik, dan tidak memiliki garis miring berikutnya:

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

VCPKG_PLATFORM_TOOLSET

Menentukan toolchain pengkompilasi C/C++ berbasis Visual Studio untuk digunakan.

Lihat VCPKG_VISUAL_STUDIO_PATH untuk algoritma pilihan lengkap.

Pengaturan yang valid:

  • Toolset platform Visual Studio 2026 adalah v145.
  • Toolset platform Visual Studio 2022 adalah v143.
  • Toolset platform Visual Studio 2019 adalah v142.
  • Toolset platform Visual Studio 2017 adalah v141.

VCPKG_PLATFORM_TOOLSET_VERSION

Menentukan toolchain pengkompilasi MSVC C/C++ terperinci untuk digunakan.

Secara default, VCPKG_PLATFORM_TOOLSET selalu memilih versi minor terbaru dari toolset yang dipilih. Jika Anda membutuhkan lebih banyak granularitas, Anda dapat menggunakan variabel ini. Anda dapat menentukan nomor versi parsial atau lengkap. Nilai yang valid adalah, misalnya, 14.25 atau 14.27.29110.

VCPKG_LOAD_VCVARS_ENV

Menentukan apakah vcpkg akan mencari dan menggunakan instans Visual Studio sebagai bagian dari lingkungan triplet.

Secara default, ini ON untuk Windows kembung yang tidak menentukan VCPKG_CHAINLOAD_TOOLCHAIN_FILE. Untuk kembung non-Windows dan kembung yang menentukan VCPKG_CHAINLOAD_TOOLCHAIN_FILE, ini default ke OFF.

Variabel Linux

VCPKG_FIXUP_ELF_RPATH

Ketika opsi ini diatur ke (true|1|on), vcpkg akan menambahkan $ORIGIN dan $ORIGIN/<path_relative_to_lib> ke RUNPATH header yang dapat dieksekusi dan pustaka bersama. Ini memungkinkan paket untuk direlokasi di Linux.

Variabel MacOS

VCPKG_INSTALL_NAME_DIR

Mengatur nama penginstalan yang digunakan saat membangun pustaka dinamis macOS. Nilai defaultnya adalah @rpath. Lihat dokumentasi CMake untuk CMAKE_INSTALL_NAME_DIR untuk informasi selengkapnya.

VCPKG_FIXUP_MACHO_RPATH

Memastikan biner Mach-O yang dibangun oleh vcpkg dapat direlokasi dengan menggunakan nama penginstalan relatif dan jalur eksekusi.

Ketika diatur ke ON:

  • Memodifikasi bidang absolut LC_LC_ID_DYLIB menjadi @rpath/<library> untuk biner pustaka bersama;
  • Memodifikasi bidang absolut LC_RPATH menjadi relatif @loader_path/<relative/path/to/library> untuk biner pustaka yang dapat dieksekusi dan dibagikan.

Important

Fungsionalitas ini diaktifkan secara default ketika VCPKG_TARGET_IS_OSX adalah TRUE. Untuk menonaktifkan, secara eksplisit diatur VCPKG_FIXUP_MACHO_RPATH ke OFF dalam file triplet.

Untuk informasi selengkapnya tentang pustaka dinamis di macOS, lihat tautan berikut:

VCPKG_OSX_DEPLOYMENT_TARGET

Mengatur versi macOS minimum untuk biner yang dikompilasi. Ini juga mengubah versi platform macOS yang akan dicari SDK CMake. Lihat dokumentasi CMake untuk CMAKE_OSX_DEPLOYMENT_TARGET untuk informasi selengkapnya.

VCPKG_OSX_SYSROOT

Atur nama atau jalur SDK platform macOS yang akan digunakan oleh CMake. Lihat dokumentasi CMake untuk CMAKE_OSX_SYSROOT untuk informasi selengkapnya.

VCPKG_OSX_ARCHITECTURES

Atur arsitektur target macOS / iOS yang akan digunakan oleh CMake. Lihat dokumentasi CMake untuk CMAKE_OSX_ARCHITECTURES untuk informasi selengkapnya.

Kustomisasi per port

Variabel CMake PORT akan diatur saat menginterpretasikan file triplet. Ini dapat digunakan untuk mengubah pengaturan (seperti VCPKG_LIBRARY_LINKAGE) berdasarkan per port.

Contoh:

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

Ini akan membangun semua qt5-* port sebagai pustaka dinamis, tetapi setiap port lain sebagai pustaka statis.

Untuk contoh dalam proyek nyata, lihat https://github.com/Intelight/vcpkg/blob/master/triplets/x86-windows-mixed.cmake.