Добавление различных директорий include для сборок Debug и Release в Cmake?
Я занимаюсь разработкой библиотеки, и мне нужно добавить стороннюю библиотеку только для заголовков только для отладочной сборки. Он используется только для разработки.
Есть ли простой способ сделать это в CMake?
Я знаю, что мы можем сделать то же самое для связывания библиотек,
add_executable( MyEXE ${SOURCES})
target_link_libraries( MyEXE debug 3PDebugLib)
target_link_libraries( MyEXE optimized 3PReleaseLib)
Но, похоже, нет такой возможности для target_include_directories
,
Использование CMake 3.11.4 и VS2017.
1 ответ
Решение
В то время как target_include_directories
Сам по себе не дает возможности различать разные типы сборки, вы можете использовать выражения генератора, например:
target_include_directories(MyEXE
PRIVATE
$<$<CONFIG:Debug>:3PDebugLib>
$<$<CONFIG:Release>:3PReleaseLib>
)