Ищу возможность включить boost в сборку проекта. Для сборки используется cmake. Проблема следующая: через add_custom_(command|target)
получается зависимость вида client_app -> libboost_xxx, т. е. при изменении исходника в дереве boost пересборки не будет, только руками.
Ещё можно собрать путём execute_process
, но он в configure-time отрабатывает - теперь при изменении кода boost нужно повторить конфигурацию(и тоже руками - зависимости только bjam знает, который после конфигурирования не запускается).
Последний вариант, который нашёл: безусловно запускать bjam путём build events, с порядком PRE_BUILD
. Но, согласно доке cmake-а: This is supported only on Visual Studio 7 or later
- не катит, в общем. Порядок PRE_LINK
поддерживается всеми(или почти) генераторами, но это то же самое, что и первый вариант + boost при сборке заголовки в кучу собирает: в чистом дереве они по подмодулям лежат - поэтому либо дофига путей в дебри подмодулей прописывать, либо препроцессирование может упасть на ровном месте(т. к. порядок компиляции не определён).
Кто каким образом поступает в подобных случаях(исключая использование установленного в систему boost-а)?