Üçlü değişkenler
Bu makalede, üçlü dosyalar için kullanılabilen vcpkg değişkenleri açıklanmaktadır. Üçlü dosya, kullanıcı tanımlı değişkenleri de içerebilir.
Üçlü özelliklerin üst düzey bir görünümü için üçlü kavram belgelerine bakın.
Değişkenler
VCPKG_TARGET_ARCHITECTURE
Hedef makine mimarisini belirtir.
Geçerli seçenekler şunlardır: x86
, x64
, arm
, arm64
, arm64ec
, s390x
, , ppc64le
, , mips64
loongarch32
loongarch64
riscv32
riscv64
ve .wasm32
VCPKG_CRT_LINKAGE
İstenen CRT bağlantısını belirtir (MSVC için).
Geçerli seçenekler şunlardır: dynamic
ve static
.
VCPKG_LIBRARY_LINKAGE
Tercih edilen kitaplık bağlantısını belirtir.
Geçerli seçenekler şunlardır: dynamic
ve static
. Kitaplıklar tercih edilen bağlantı türünü desteklemiyorsa bu ayarı yoksayabilir.
VCPKG_BUILD_TYPE
Bağlantı noktalarının yalnızca yayın sürümlerini oluşturmak için bu değeri release
olarak ayarlayabilirsiniz.
Varsayılan olarak bu değer boş olur. Bu değer boş olduğunda vcpkg derlemeleri bağlantı noktalarının yayın ve hata ayıklama yapılandırmalarını oluşturur.
VCPKG_CMAKE_SYSTEM_NAME
Hedef platformu belirtir.
Geçerli seçenekler şunlar gibi herhangi bir CMake sistem adını içerir:
- Boş (eski nedenlerden dolayı Windows Masaüstü)
WindowsStore
(Evrensel Windows Platformu)MinGW
(Windows için Minimalist GNU)Darwin
(Mac OSX)iOS
(iOS)Linux
(Linux)Emscripten
(WebAssembly)
VCPKG_CMAKE_SYSTEM_VERSION
Hedef platform sistem sürümünü belirtir.
Bu alan isteğe bağlıdır ve varsa derlemeye olarak CMAKE_SYSTEM_VERSION
geçirilir.
Ayrıca bkz. CMake belgeleri CMAKE_SYSTEM_VERSION
VCPKG_CHAINLOAD_TOOLCHAIN_FILE
Kullanılacak alternatif bir CMake araç zinciri dosyası belirtir.
Bu (ayarlanırsa), diğer tüm derleyici algılama mantığını geçersiz kılar. Varsayılan olarak, platforma uygun olan bir araç zinciri dosyası seçilir scripts/toolchains/
.
Not
Özel bir araç zinciri dosyası oluşturmak için en iyisi mevcut bir araç zincirini ${VCPKG_ROOT}/scripts/toolchains
dahil etmek ve genişletmektir. Bu, vcpkg yürütülebilir dosyası tarafından ayarlanan , VCPKG_CXX_FLAGS
, VCPKG_LINKER_FLAGS
ve gibi VCPKG_TARGET_ARCHITECTURE
diğer değişkenlerin CMake'ye iletilmesini sağlar.
Araç zinciri dosyaları için CMake belgelerine de bakın.
VCPKG_CXX_FLAGS
kullanılmadığında VCPKG_CHAINLOAD_TOOLCHAIN_FILE
kullanılacak ek derleyici bayraklarını ayarlar.
Bu seçenek ayrıca yapılandırmaya özgü bayraklar ve C dili bayrakları için formlar da vardır:
VCPKG_CXX_FLAGS
VCPKG_CXX_FLAGS_DEBUG
VCPKG_CXX_FLAGS_RELEASE
VCPKG_C_FLAGS
VCPKG_C_FLAGS_DEBUG
VCPKG_C_FLAGS_RELEASE
ayarlarsanız VCPKG_CXX_FLAGS
, öğesini de ayarlamanız VCPKG_C_FLAGS
gerekir ve tam tersi de geçerlidir.
Yapılandırmaya özgü bayraklar için de aynı durum geçerlidir. Bu değişkenler, derleyici bayraklarının boşlukla ayrılmış dizesini kabul eder:
set(VCPKG_CXX_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
set(VCPKG_C_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
VCPKG_LINKER_FLAGS
yokluğunda VCPKG_CHAINLOAD_TOOLCHAIN_FILE
dinamik kitaplıklar ve yürütülebilir dosyalar oluştururken kullanılacak ek bağlayıcı bayraklarını ayarlar.
Bu seçenek ayrıca yapılandırmaya özgü bayraklar için formlar da vardır:
VCPKG_LINKER_FLAGS
VCPKG_LINKER_FLAGS_DEBUG
VCPKG_LINKER_FLAGS_RELEASE
VCPKG_MESON_CONFIGURE_OPTIONS
Yapılandır komutuna (içinde vcpkg_configure_meson
) eklenen ek Meson yapılandırma seçeneklerini ayarlayın.
Bu alan isteğe bağlıdır.
Derleme türüne özgü VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG
ve VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE
değişkenler olarak da kullanılabilir.
VCPKG_MESON_NATIVE_FILE_RELEASE
Meson çapraz/yerel dosyası olarak ek yapılandırma bağımlı dosyası sağlayın. vcpkg tarafından oluşturulan çapraz/yerel dosyalar geçirildikten sonra geçirileceğinden, vcpkg tarafından sağlanan ayarları geçersiz kılmak için kullanılabilir.
Özellikle kendi build_machine ve host_machine girdilerinizi sağlamak için kullanışlıdır.
VCPKG_MESON_NATIVE_FILE_DEBUG
bkz. VCPKG_MESON_NATIVE_FILE_RELEASE.
VCPKG_MESON_CROSS_FILE_RELEASE
bkz. VCPKG_MESON_NATIVE_FILE_RELEASE.
VCPKG_MESON_CROSS_FILE_DEBUG
bkz. VCPKG_MESON_NATIVE_FILE_RELEASE.
VCPKG_CMAKE_CONFIGURE_OPTIONS
Yapılandır komutuna (içinde vcpkg_cmake_configure
) eklenen ek CMake yapılandırma seçeneklerini ayarlar.
Bu alan isteğe bağlıdır.
Derleme türüne özgü VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG
ve VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE
değişkenler olarak da kullanılabilir.
VCPKG_CONFIGURE_MAKE_OPTIONS
Yapılandır komutuna (içinde vcpkg_configure_make
) eklenen ek otomatik oluşturma/otomatik yapılandırma yapılandırma seçeneklerini ayarlayın.
Bu alan isteğe bağlıdır.
Örneğin, hatalı başarısız olabilecek bazı libtool denetimlerini atlamak için:
set(VCPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")
Derleme türüne özgü VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG
ve VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE
değişkenler olarak da kullanılabilir.
VCPKG_HASH_ADDITIONAL_FILES
Paket ABI karmalarının hesaplamasına eklenecek dosyaların listesi.
Bu alan isteğe bağlıdır.
Bir paketin içeriğini etkileyen dosyaları bildirin ve ABI karması hesaplamasına katılmalıdır. Örneğin:
- Özel üçüzlere ve araç zincirlerine dahil edilen dosyalar (aracılığıyla
include(filepath)
). - içinde tanımlanan dosyalar
VCPKG_MESON_(NATIVE|CROSS)_FILE_<CONFIG>
Yalnızca dosyaların içeriği ve sırası dikkate alınır, dosyaların yolları ABI karması etkilemez.
set(VCPKG_HASH_ADDITIONAL_FILES
"${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
"${CMAKE_CURRENT_LIST_DIR}/meson-cross.txt"
)
VCPKG_POST_PORTFILE_INCLUDES
portfile.cmake yürütülürken eklenecek CMake dosyalarının listesi.
Bu alan isteğe bağlıdır.
Dosyaların içeriği ve sırası ABI karması için kullanılır, dosyaların yolları ABI karması etkilemez.
set(VCPKG_POST_PORTFILE_INCLUDES
"${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
"${CMAKE_CURRENT_LIST_DIR}/file2.cmake"
)
VCPKG_DEP_INFO_OVERRIDE_VARS
Not
Bu bölüm, vcpkg'nin herhangi bir zamanda değişebilen veya kaldırılabilen deneysel bir özelliğini kapsar.
Üçlü "Destekler" terimlerinin varsayılan hesaplanan listesinin yerini alır.
Bu seçenek (ayarlandıysa), Platform İfadesi değerlendirmesi için kullanılan varsayılan terim kümesini geçersiz kılar.
"supports"
Daha fazla ayrıntı için bildirim dosyası alanı belgelerine bakın.
Not
Bu liste yardımcı işlevi aracılığıyla vcpkg_get_dep_info
ayıklanır.
VCPKG_DISABLE_COMPILER_TRACKING
Uyarı
Geri yüklenen ikili paketlerde ABI uyumsuzluğuna neden olabileceğinden bu seçeneğin etkinleştirilmesi önerilmez. Daha fazla bilgi edinmek için ikili önbelleğe alma belgelerine bakın
Bu seçenek , ON
veya 1
olarak ayarlandığındaTRUE
, derleyici paketin parçası olarak izlenmez.
Bu, ikili önbelleğe almanın eski veya daha yeni derleyicilerin derlemelerini yeniden kullanmasına neden olur.
Windows'a Özgü Değişkenler
VCPKG_ENV_PASSTHROUGH
Derleme işlemine ek ortam değişkenlerine izin vermek için vcpkg'ye bildirir.
Windows'da vcpkg, derleme güvenilirliğini ve tutarlılığını sağlamak için paketleri geçerli komut isteminden yalıtılmış özel bir temiz ortamda oluşturur. Bu üçlü seçenek, temiz ortama eklenecek ek ortam değişkenleri listesine ayarlanabilir. Bu ortam değişkenlerinin değerleri paket abi içine karma olarak eklenecektir. Ortam değişkenlerini abi izlemeden geçirmek için bkz VCPKG_ENV_PASSTHROUGH_UNTRACKED
. .
Kullanılacak hassas ortamı nasıl inceleyebileceğinize ilişkin komuta da vcpkg env
bakın.
Not
Bu liste yardımcı işlevi aracılığıyla vcpkg_get_tags
ayıklanır.
VCPKG_ENV_PASSTHROUGH_UNTRACKED
vcpkg'ye, abi izlemesi olmadan derleme işlemine ek ortam değişkenlerine izin verme talimatı verir.
Bkz. VCPKG_ENV_PASSTHROUGH
.
VCPKG_VISUAL_STUDIO_PATH
Kullanılacak Visual Studio yüklemesini belirtir.
Visual Studio örneği ve araç takımı sürümünün tam bileşimini seçmek için aşağıdaki algoritmayı gözden geçiriyoruz:
VCPKG_VISUAL_STUDIO_PATH
ayarını üçlüden veya ortam değişkenindenVCPKG_VISUAL_STUDIO_PATH
belirleyin veya ayarsız olarak değerlendirin- için ayarını
VCPKG_PLATFORM_TOOLSET
üçlüden belirleyin veya ayarsız olarak düşünün - Bu örneklerde kullanılabilen tüm araç kümeleriyle tüm Visual Studio örnekleri çiftlerinin listesini toplayın
- Bu, önce örnek türüne (Kararlı, Ön Sürüm, Eski) ve ardından araç takımı sürümüne (v143, v142, v141, v140) göre sıralanır
- ve ayarlarına
VCPKG_VISUAL_STUDIO_PATH
VCPKG_PLATFORM_TOOLSET
göre listeyi filtreleyin. - Kalan en iyi seçeneği belirtin
Yol mutlak olmalı, ters eğik çizgilerle biçimlendirilmeli ve sonunda eğik çizgi olmamalıdır:
set(VCPKG_VISUAL_STUDIO_PATH "C:\\Program Files (x86)\\Microsoft Visual Studio\\Preview\\Community")
VCPKG_PLATFORM_TOOLSET
Kullanılacak Visual Studio tabanlı C/C++ derleyici araç zincirini belirtir.
Tam seçim algoritması için bkz VCPKG_VISUAL_STUDIO_PATH
.
Geçerli ayarlar:
- Visual Studio 2022 platform araç takımıdır
v143
. - Visual Studio 2019 platform araç takımıdır
v142
. - Visual Studio 2017 platform araç takımıdır
v141
. - Visual Studio 2015 platform araç takımıdır
v140
.
VCPKG_PLATFORM_TOOLSET_VERSION
Kullanılacak ayrıntılı MSVC C/C++ derleyici araç zincirini belirtir.
Varsayılan olarak, VCPKG_PLATFORM_TOOLSET
her zaman seçili araç takımının en son yüklenen ikincil sürümünü seçer. Daha fazla ayrıntı düzeyine ihtiyacınız varsa bu değişkeni kullanabilirsiniz. Kısmi veya tam sürüm numarası belirtebilirsiniz. Geçerli değerler şunlardır: örneğin, 14.25
veya 14.27.29110
.
VCPKG_LOAD_VCVARS_ENV
vcpkg'nin üçlü ortamın bir parçası olarak Visual Studio örneğini arayıp aramayacağını ve kullanıp kullanmayacağını belirler.
Varsayılan olarak, bu ON
belirtilmeyen VCPKG_CHAINLOAD_TOOLCHAIN_FILE
Windows üçlüleri içindir. Windows olmayan üçüzler ve belirten VCPKG_CHAINLOAD_TOOLCHAIN_FILE
üçlüler için bu varsayılan olarak kullanılır OFF
.
Linux Değişkenleri
VCPKG_FIXUP_ELF_RPATH
Bu seçenek (true|1|on) olarak ayarlandığında, vcpkg yürütülebilir dosyalar ve paylaşılan kitaplıkların üst bilgisine RUNPATH
ve $ORIGIN/<path_relative_to_lib>
ekler$ORIGIN
. Bu, paketlerin Linux üzerinde yeniden konumlandırılmasını sağlar.
MacOS Değişkenleri
VCPKG_INSTALL_NAME_DIR
macOS dinamik kitaplıkları oluştururken kullanılan yükleme adını ayarlar. Varsayılan değer @rpath
olarak belirlenmiştir. Daha fazla bilgi için CMAKE_INSTALL_NAME_DIR için CMake belgelerine bakın.
VCPKG_FIXUP_MACHO_RPATH
vcpkg tarafından oluşturulan Mach-O ikili dosyalarının göreli yükleme adları ve çalışma yolları kullanılarak yeniden konumlandırılabilir olmasını sağlar.
olarak ON
ayarlandığında:
- Paylaşılan kitaplık ikili dosyaları için mutlak
LC_LC_ID_DYLIB
alanı olarak@rpath/<library>
değiştirir; - Yürütülebilir ve paylaşılan kitaplık ikili dosyaları için mutlak
LC_RPATH
alanları göreli@loader_path/<relative/path/to/library>
olarak değiştirir.
Önemli
Bu işlev, olduğunda VCPKG_TARGET_IS_OSX
varsayılan olarak etkindir TRUE
. Devre dışı bırakmak için, üçlü dosyada açıkça olarak OFF
olarak ayarlayınVCPKG_FIXUP_MACHO_RPATH
.
macOS'taki dinamik kitaplıklar hakkında daha fazla bilgi için aşağıdaki bağlantılara bakın:
- Dinamik Kitaplık Tanımlama
- Dinamik Kitaplık Uygulamalar için Standart Kurulum
- Dinamik Kitaplık Tam Yolu Alternatifi
- Standart olmayan kod yapılarını bir pakete ekleme
VCPKG_OSX_DEPLOYMENT_TARGET
Derlenmiş ikili dosyalar için en düşük macOS sürümünü ayarlar. Bu, macOS platform SDK'sı CMake'in hangi sürümlerini arayacağını da değiştirir. Daha fazla bilgi için CMAKE_OSX_DEPLOYMENT_TARGET için CMake belgelerine bakın.
VCPKG_OSX_SYSROOT
CMake tarafından kullanılacak macOS platform SDK'sının adını veya yolunu ayarlayın. Daha fazla bilgi için CMAKE_OSX_SYSROOT için CMake belgelerine bakın.
VCPKG_OSX_ARCHITECTURES
CMake tarafından kullanılacak macOS / iOS hedef mimarisini ayarlayın. Daha fazla bilgi için CMAKE_OSX_ARCHITECTURES için CMake belgelerine bakın.
Bağlantı noktası başına özelleştirme
Üçlü dosya yorumlanırken CMake değişkeni PORT
ayarlanır. Ayarları (örneğin VCPKG_LIBRARY_LINKAGE
) bağlantı noktası temelinde değiştirmek için kullanılabilir.
Örnek:
set(VCPKG_LIBRARY_LINKAGE static)
if(PORT MATCHES "qt5-")
set(VCPKG_LIBRARY_LINKAGE dynamic)
endif()
Bu işlem tüm qt5-*
bağlantı noktalarını dinamik kitaplıklar olarak oluşturur, ancak diğer tüm bağlantı noktalarını statik kitaplık olarak oluşturur.
Gerçek projedeki bir örnek için bkz https://github.com/Intelight/vcpkg/blob/master/triplets/x86-windows-mixed.cmake. .