vcpkg_チェック_features
1 つ以上の機能がパッケージ インストールの一部であるかどうかを確認します。
使用方法
vcpkg_check_features(
OUT_FEATURE_OPTIONS <out-var>
[PREFIX <prefix>]
[FEATURES
[<feature-name> <feature-var>]...
]
[INVERTED_FEATURES
[<feature-name> <feature-var>]...
]
)
規則 <out-var>
に従って設定する FEATURE_OPTIONS
必要があります。
vcpkg_check_features()
は:
- 渡された
FEATURES
各<feature-name>
対象:- 機能が設定されている場合は、オンに
<out-var>
追加-D<feature-var>=ON
し、オンに設定<prefix>_<feature-var>
します。 - 機能が設定されていない場合は、
-D<feature-var>=OFF
追加して<out-var>
OFF に設定<prefix>_<feature-var>
します。
- 機能が設定されている場合は、オンに
- 渡された
INVERTED_FEATURES
各<feature-name>
対象:- 機能が設定されている場合は、
-D<feature-var>=OFF
追加して<out-var>
OFF に設定<prefix>_<feature-var>
します。 - 機能が設定されていない場合は、
-D<feature-var>=ON
追加して<out-var>
ON に設定<prefix>_<feature-var>
します。
- 機能が設定されている場合は、
渡されない場合 <prefix>
、機能の vars セットは単純 <feature-var>
にではなく _<feature-var>
、
渡されない場合INVERTED_FEATURES
、FEATURES
キーワード (keyword)は省略可能です。
ただし、この動作は非推奨とされます。
同じ <feature-var>
ことが複数回渡された場合は、 vcpkg_check_features
バグであるため、致命的なエラーが発生します。
例
例 1: 通常の機能
$ ./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}
)
例 2: 反転された特徴
$ ./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}
)
例 3: 同じ機能に複数のオプションを設定する
$ ./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}
)
例 4: 通常のフィーチャと反転フィーチャを使用する
$ ./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}
)
ポートファイルの例
ソース
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
vcpkg