Как добавить add_subdirectory на основе выражения генератора CONFIG, а не CMAKE_BUILD_TYPE? - PullRequest
0 голосов
/ 24 мая 2018

В нашем проекте некоторые модули включены только в определенные конфигурации.В настоящее время мы достигаем этого, используя такой подход:

if (CMAKE_BUILD_TYPE STREQUAL "my_config")
    add_subdirectory(only_in_my_config)
endif()

Однако проблема этого подхода заключается в том, что он не очень хорошо работает с мультиконфигурационными генераторами (кажется, что в настоящее время это только Visual Studio иXcode).

Чтобы должным образом поддерживать мультиконфигурационные генераторы, AFAIK, мы должны использовать $<CONFIG:my_config> выражение генератора .Однако их нельзя использовать с add_subdirectory.

Как обойти это?

Я думаю, мы должны всегда добавлять все подкаталоги.Но тогда как предотвратить построение их целей в конфигурациях, отличных от my_config?

1 Ответ

0 голосов
/ 24 мая 2018

Превращение моего комментария в ответ

Поскольку CMake должен пройти через все ваши файлы CMakeLists.txt на этапе настройки, ответом будет "да", вы всегда должны вызывать add_subdirectory().

Я думаю, вы ищете целевое свойство EXCLUDE_FROM_DEFAULT_BUILD_<CONFIG>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...