Добавление различных директорий 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>
)
Другие вопросы по тегам