Aracılığıyla paylaş


Üçlü başvuru

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, , mips64loongarch32loongarch64riscv32riscv64ve .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_VERSIONgeç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/ .

Araç zinciri dosyaları için CMake belgelerine de bakın.

VCPKG_CXX_FLAGS

kullanılmadığında VCPKG_CHAINLOAD_TOOLCHAIN_FILEkullanı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

VCPKG_LINKER_FLAGS

yokluğunda VCPKG_CHAINLOAD_TOOLCHAIN_FILEdinamik 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_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 , ONveya 1olarak ayarlandığındaTRUE, derleyici paketin parçası olarak izlenmez.

Bu, İkili Önbelleğe Alma 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:

  1. VCPKG_VISUAL_STUDIO_PATH ayarını üçlüden veya ortam değişkeninden VCPKG_VISUAL_STUDIO_PATHbelirleyin veya ayarsız olarak değerlendirin
  2. için ayarını VCPKG_PLATFORM_TOOLSET üçlüden belirleyin veya ayarsız olarak düşünün
  3. 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
  4. ve ayarlarına VCPKG_VISUAL_STUDIO_PATHVCPKG_PLATFORM_TOOLSETgöre listeyi filtreleyin.
  5. 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 VS 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. Belirtim kısmi veya tam sürüm numarası olabilir. 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_FILEWindows üç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_OSX_DEPLOYMENT_TARGET

Derlenmiş ikili dosyalar için en düşük macOS sürümünü ayarlar. Bu, CMake'in macOS platform SDK'sının 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

CMake Makro PORT , üçlü dosya yorumlanırken ayarlanır ve 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, tüm qt5-* kitaplıkları DLL olarak, diğer tüm kitaplıkları 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. .