Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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_FLAGSVCPKG_CXX_FLAGS_DEBUGVCPKG_CXX_FLAGS_RELEASEVCPKG_C_FLAGSVCPKG_C_FLAGS_DEBUGVCPKG_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_FLAGSVCPKG_LINKER_FLAGS_DEBUGVCPKG_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:
- Tentukan pengaturan untuk
VCPKG_VISUAL_STUDIO_PATHdari triplet, atau variabelVCPKG_VISUAL_STUDIO_PATHlingkungan , atau pertimbangkan untuk membatalkan set - Tentukan pengaturan untuk
VCPKG_PLATFORM_TOOLSETdari triplet atau pertimbangkan untuk membatalkan pengaturan - 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)
- Filter daftar berdasarkan pengaturan untuk
VCPKG_VISUAL_STUDIO_PATHdanVCPKG_PLATFORM_TOOLSET. - 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_DYLIBmenjadi@rpath/<library>untuk biner pustaka bersama; - Memodifikasi bidang absolut
LC_RPATHmenjadi 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:
- Identifikasi Pustaka Dinamis
- Penyiapan Standar Pustaka Dinamis untuk Aplikasi
- Alternatif Jalur Lengkap Pustaka Dinamis
- Menyematkan struktur kode nonstandar dalam bundel
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.