Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vérifiez si une ou plusieurs fonctionnalités font partie d’une installation de package.
Utilisation
vcpkg_check_features(
OUT_FEATURE_OPTIONS <out-var>
[PREFIX <prefix>]
[FEATURES
[<feature-name> <feature-var>]...
]
[INVERTED_FEATURES
[<feature-name> <feature-var>]...
]
)
La <out-var>
valeur doit être définie FEATURE_OPTIONS
par convention.
vcpkg_check_features()
sera :
- pour chaque
<feature-name>
passageFEATURES
:- si la fonctionnalité est définie, ajoutez
-D<feature-var>=ON
à<out-var>
et définissez<prefix>_<feature-var>
la valeur ON. - si la fonctionnalité n’est pas définie, ajoutez
-D<feature-var>=OFF
à<out-var>
et définissez<prefix>_<feature-var>
la valeur OFF.
- si la fonctionnalité est définie, ajoutez
- pour chaque
<feature-name>
passageINVERTED_FEATURES
:- si la fonctionnalité est définie, ajoutez
-D<feature-var>=OFF
à<out-var>
et définissez<prefix>_<feature-var>
la valeur OFF. - si la fonctionnalité n’est pas définie, ajoutez
-D<feature-var>=ON
à<out-var>
et définissez<prefix>_<feature-var>
la valeur ON.
- si la fonctionnalité est définie, ajoutez
S’il <prefix>
n’est pas passé, l’ensemble de vars de caractéristiques est simplement <feature-var>
, pas _<feature-var>
.
Si INVERTED_FEATURES
ce n’est pas le cas, le FEATURES
mot clé est facultatif.
Ce comportement est déconseillé.
Si la même <feature-var>
opération est passée plusieurs fois, vcpkg_check_features
une erreur irrécupérable est générée, car il s’agit d’un bogue.
Exemples
Exemple 1 : Fonctionnalités régulières
$ ./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}
)
Exemple 2 : Fonctionnalités inversées
$ ./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}
)
Exemple 3 : Définir plusieurs options pour la même fonctionnalité
$ ./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}
)
Exemple 4 : Utiliser des fonctionnalités régulières et inversées
$ ./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}
)