Как вывести зависимости компиляции из CMake или make? - PullRequest
17 голосов
/ 08 июля 2010

У меня есть проект CMake C ++, который быстро развивается и часто меняется. Я пытаюсь сократить время компиляции до минимума.

Часто, когда я перестраиваю проект, особенно после изменения заголовка, я удивляюсь, сколько единиц компиляции нужно перекомпилировать. Я пытаюсь определить #include s, которых можно избежать, например, используя предварительные объявления или не вставляя тривиальные функции в заголовки.

Есть ли какой-нибудь способ узнать, из самого CMake, из сгенерированного Makefile или непосредственно из самих файлов, какие модули зависят от каких заголовков?

Список был бы неплох, визуальный график (графвиз?) Еще лучше. Гугл ничего не показывает для меня. CMake имеет опцию --graphviz, но работает с целями, а не с отдельными единицами компиляции.

Что-то кроссплатформенное (т.е. использующее только CMake) предпочтительнее, но я остановлюсь и только на Linux.

1 Ответ

9 голосов
/ 09 июля 2010

Я нашел информацию о зависимостях, сгенерированную cmake2.8 (после запуска make), в файлах depend.make и depend.internal, когда я использую набор инструментов на основе gcc.Использование VS, похоже, не генерирует такие файлы (но, похоже, это не проблема для вас).Также эти файлы являются внутренними cmake, , поэтому используйте их на свой страх и риск .

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