vcpkg_check_features
Bir veya daha fazla özelliğin paket yüklemesinin bir parçası olup olmadığını denetleyin.
Kullanım
vcpkg_check_features(
OUT_FEATURE_OPTIONS <out-var>
[PREFIX <prefix>]
[FEATURES
[<feature-name> <feature-var>]...
]
[INVERTED_FEATURES
[<feature-name> <feature-var>]...
]
)
kuralına <out-var>
FEATURE_OPTIONS
göre ayarlanmalıdır.
vcpkg_check_features()
şu şekilde olacaktır:
- içinde
FEATURES
geçirilen her<feature-name>
için:- özellik ayarlandıysa öğesine ekleyin
-D<feature-var>=ON
<out-var>
ve ON olarak ayarlayın<prefix>_<feature-var>
. - özellik ayarlanmadıysa, öğesine ekleyin
-D<feature-var>=OFF
<out-var>
ve KAPALI olarak ayarlayın<prefix>_<feature-var>
.
- özellik ayarlandıysa öğesine ekleyin
- içinde
INVERTED_FEATURES
geçirilen her<feature-name>
için:- özellik ayarlandıysa öğesine ekleyin
-D<feature-var>=OFF
<out-var>
ve KAPALI olarak ayarlayın<prefix>_<feature-var>
. - özellik ayarlanmadıysa, öğesine ekleyin
-D<feature-var>=ON
<out-var>
ve ON olarak ayarlayın<prefix>_<feature-var>
.
- özellik ayarlandıysa öğesine ekleyin
Geçirilmediyse <prefix>
, özellik vars kümesi basitçe <feature-var>
, değil _<feature-var>
olur.
INVERTED_FEATURES
Geçirilmediyse anahtar FEATURES
sözcüğü isteğe bağlıdır.
Bu davranış kullanım dışıdır.
Aynı <feature-var>
işlem birden çok kez geçirilirse, vcpkg_check_features
bu bir hata olduğundan önemli bir hataya neden olur.
Örnekler
Örnek 1: Normal özellikler
$ ./vcpkg install mimalloc[asm,secure]
# ports/mimalloc/portfile.cmake
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
asm MI_SEE_ASM
override MI_OVERRIDE
secure MI_SECURE
)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
# Expands to "-DMI_SEE_ASM=ON;-DMI_OVERRIDE=OFF;-DMI_SECURE=ON"
${FEATURE_OPTIONS}
)
Örnek 2: Ters özellikler
$ ./vcpkg install cpprestsdk[websockets]
# ports/cpprestsdk/portfile.cmake
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
INVERTED_FEATURES
brotli CPPREST_EXCLUDE_BROTLI
websockets CPPREST_EXCLUDE_WEBSOCKETS
)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
# Expands to "-DCPPREST_EXCLUDE_BROTLI=ON;-DCPPREST_EXCLUDE_WEBSOCKETS=OFF"
${FEATURE_OPTIONS}
)
Örnek 3: Aynı özellik için birden çok seçenek ayarlama
$ ./vcpkg install pcl[cuda]
# ports/pcl/portfile.cmake
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
cuda WITH_CUDA
cuda BUILD_CUDA
cuda BUILD_GPU
)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
# Expands to "-DWITH_CUDA=ON;-DBUILD_CUDA=ON;-DBUILD_GPU=ON"
${FEATURE_OPTIONS}
)
Örnek 4: Normal ve ters özellikler kullanma
$ ./vcpkg install rocksdb[tbb]
# ports/rocksdb/portfile.cmake
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
tbb WITH_TBB
INVERTED_FEATURES
tbb ROCKSDB_IGNORE_PACKAGE_TBB
)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
# Expands to "-DWITH_TBB=ON;-DROCKSDB_IGNORE_PACKAGE_TBB=OFF"
${FEATURE_OPTIONS}
)
Bağlantı noktası dosyalarındaki örnekler
Source
GitHub'da bizimle işbirliği yapın
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.