Я искал stackoverflow, но мне не удалось найти удовлетворительный ответ на мой вопрос.
Бумага Миллера Рекурсивный Сделать Вредным хорошо известен в сообществе. В основном я использую нерекурсивная марка управлять сборками моих проектов на протяжении многих лет. Пока что мой опыт работы с нерекурсивными программами был действительно положительным.
Чтобы пролить свет на другие, я успешно создал базу кода C ++, которая содержит около 2 миллионов строк кода. Мне удалось правильно управлять зависимостями. Отличительной особенностью нерекурсивного подхода является то, что мы можем использовать преимущества параллельной сборки.
Я доказал, что данные в этот отчет соответствует как минимум 5 крупным проектам. Но я вручную писал / переносил make-файлы для нерекурсивного make.
Как вы можете себе представить, для больших проектов это требует много работы. Кроме того, основная проблема заключалась в том, что новым членам команды очень трудно понять / изменить / отладить существующие make-файлы.
Поэтому мой вопрос заключается в следующем: знает ли кто-либо в сообществе какой-либо инструмент / скрипт, который может выполнять нерекурсивное создание, но управляет сборочными файлами на более высоком уровне абстракции? Я хотел бы понять, написал ли кто-нибудь несколько сценариев или инструментов для генерации окончательных нерекурсивных make-файлов из некоторых простых входных спецификаций.
Я только что прочитал статью, но кажется, что долгое время сборки из незначительных изменений — главная проблема.
Хотя системы сборки в целом ужасны (у меня есть фантазии по созданию собственной), я должен предложить CMake (как это сделал Хайд).
Хотя он и не идеален, он превосходит простое создание для проектов из нескольких файлов. Язык сценариев несколько уродлив, но лучше, чем make. Требуется немного привыкнуть, потому что он абстрагирует много того, что вы бы написали вручную в make, но я предлагаю следующее:
http://web.cs.swarthmore.edu/~adanner/tips/cmake.php
Других решений пока нет …