Управление тем, какие цели создаются с помощью CMake add_subdirectory () - PullRequest
0 голосов
/ 04 июля 2018

У меня проблема с add_subdirectory (), а именно, что я не могу контролировать, какие цели на самом деле создаются с его помощью - похоже, просто эквивалентен make all. Возможно, я неправильно использую add_subdirectory (), но, насколько я понимаю, его можно использовать для построения зависимостей. Я продаю несколько библиотек, от которых зависит мой проект, и в CMakeLists.txt моего проекта я добавил add_subdirectory () для каждого проекта вендора (у всех есть свой собственный CMakeLists.txt).

Поскольку я кросс-компилирую, я не хочу создавать какие-либо двоичные файлы, используемые этими библиотеками. В одном случае мне также нужна другая цель, которая не построена целью ALL в одной зависимости. Насколько я могу судить, add_subdirectory () не делает это возможным. Есть ли способ сделать это, что я скучаю? Есть ли лучшая команда CMake для использования вместо

Ранее я работал с сценариями оболочки, просто вызывая cmake / make для каждой зависимости с интересующими меня целями, но я пытаюсь перенести это в Android Studio, которая поддерживает вызов только через CMake.

edit: Это брутто, но я рассматриваю возможность использования add_custom_target для ручного вызова cmake и cmake --build, чтобы я мог точно контролировать сборки, как и раньше.

1 Ответ

0 голосов
/ 04 июля 2018

Команда add_subdirectory поддерживает параметр EXCLUDE_FROM_ALL, который запрещает включение целей, созданных в подкаталоге, в цель ALL родительского каталога. Затем, чтобы построить только желаемые поставленные цели, добавьте зависимости целевого уровня для собственных целей проекта.

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