vcpkg_검사_features
하나 이상의 기능이 패키지 설치의 일부인지 확인합니다.
사용
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()
다음을 수행합니다.
- 에 전달된 각
<feature-name>
FEATURES- 기능이 설정되고, 추가
-D<feature-var>=ON
<out-var>
되고, ON으로 설정<prefix>_<feature-var>
되면입니다. - 기능이 설정되지 않은 경우 ,에
<out-var>
추가하고-D<feature-var>=OFF
OFF로 설정합니다<prefix>_<feature-var>
.
- 기능이 설정되고, 추가
- 에 전달된 각
<feature-name>
INVERTED_FEATURES- 기능이 설정되고, 추가
-D<feature-var>=OFF
<out-var>
되고, OFF로 설정<prefix>_<feature-var>
되면 - 기능이 설정되어 있지 않으면
에 <out-var>
추가하고-D<feature-var>=ON
ON으로 설정합니다<prefix>_<feature-var>
.
- 기능이 설정되고, 추가
전달되지 않으면 <prefix>
기능 vars 집합이 단순히 <feature-var>
아니라 _<feature-var>
.
전달 FEATURES
되지 않으면 INVERTED_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에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
vcpkg