vcpkg_check_features
Zkontrolujte, jestli je jedna nebo více funkcí součástí instalace balíčku.
Využití
vcpkg_check_features(
OUT_FEATURE_OPTIONS <out-var>
[PREFIX <prefix>]
[FEATURES
[<feature-name> <feature-var>]...
]
[INVERTED_FEATURES
[<feature-name> <feature-var>]...
]
)
Měla by být nastavena <out-var>
FEATURE_OPTIONS
podle konvence.
vcpkg_check_features()
Bude:
- pro každý
<feature-name>
předaný vFEATURES
:- pokud je tato funkce nastavená, přidejte
-D<feature-var>=ON
ji do<out-var>
a nastavte<prefix>_<feature-var>
na ZAPNUTO. - pokud tato funkce není nastavená, přidejte
-D<feature-var>=OFF
ji do<out-var>
a nastavte<prefix>_<feature-var>
na VYPNUTO.
- pokud je tato funkce nastavená, přidejte
- pro každý
<feature-name>
předaný vINVERTED_FEATURES
:- pokud je tato funkce nastavená, přidejte
-D<feature-var>=OFF
ji do<out-var>
a nastavte<prefix>_<feature-var>
na VYPNUTO. - pokud tato funkce není nastavená, přidejte
-D<feature-var>=ON
ji do<out-var>
a nastavte na ZAPNUTO<prefix>_<feature-var>
.
- pokud je tato funkce nastavená, přidejte
Pokud <prefix>
se nepředá, sada var funkcí je jednoduše <feature-var>
, ne _<feature-var>
.
Pokud INVERTED_FEATURES
se nepředá, FEATURES
je klíčové slovo volitelné.
Toto chování je zastaralé.
Pokud se to stejné <feature-var>
předává vícekrát, způsobí vcpkg_check_features
závažnou chybu, protože se jedná o chybu.
Příklady
Příklad 1: Běžné funkce
$ ./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}
)
Příklad 2: Invertované funkce
$ ./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}
)
Příklad 3: Nastavení více možností pro stejnou funkci
$ ./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}
)
Příklad 4: Použití běžných a invertovaných funkcí
$ ./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}
)
Příklady v souborech portů
Source
Spolupracujte s námi na GitHubu
Zdroj tohoto obsahu najdete na GitHubu, kde můžete také vytvářet a kontrolovat problémy a žádosti o přijetí změn. Další informace najdete v našem průvodci pro přispěvatele.