Нужно переопределить сборку инструментов сборки из bash / grep / sed / awk / (auto) make / configure для чего-то более разумного (например, boost.build и т. Д.) - PullRequest
2 голосов
/ 12 мая 2010

В настоящее время у меня есть несколько коробок, в которых хранится слабо связанная рога изобилия с проектами кодирования, базами данных и репозиториями (от доморощенного * nix дистрибутива до моих заметок о классе), поддерживаемая мной и несколькими одинаково пастообразными ботаническими друзьями (все указанного рог изобилия хранится в SVN).

Подавляющее большинство нашего кода находится на C / C ++ / assembly (несколько утилит на python / perl / php, мы не большие поклонники java), скомпилированных в gcc. Наш набор инструментов для сборки обычно состоит из сборок: make, bash, grep, sed и awk. Недавнее обнаружение Makefile почти так же долго, как и программа, которую он создает (а также общее беспокойство каждого из-за моего загадочного эффекта и пробуждения) побудило меня искать менее болезненную систему сборки.

В настоящее время самым сильным кандидатом, с которым я столкнулся, является Boost Build / Bjam в качестве замены для GNU make и python в качестве замены для наших скриптов bash, связанных со сборкой. Существуют ли другие системы сборки на C / C ++ / asm, на которые стоит обратить внимание? Я просмотрел несколько вариантов make, но не нашел ни одного, разработанного по именам, которые я знаю, кроме Boost.

(я должен отметить, что способность легко извлекать информацию из инструментов командной строки svn, таких как svnversion, важна, а также достаточная гибкость для настройки для сборок asm-проектов так же легко, как для проектов c / c ++)

Ответы [ 3 ]

2 голосов
/ 12 мая 2010

Мы недавно начали использовать CMake здесь, на работе. Я был очень доволен этим до сих пор.

2 голосов
/ 13 мая 2010

scons или cmake .

Обе "кроссплатформенные" - позволяют компилировать в Windows и Linux.

Cmake сейчас очень популярен (например, Boost использует его). Он создает собственные файлы сборки для каждой платформы - Makefiles (для Linux), VC ++ проекты (для Visual Studio) из пользовательских файлов (CMakeList.txt). Он также может создавать проекты Eclipse, проекты KDevelop и т. Д. Поскольку он создает собственные файлы сборки, вы можете продолжать использовать все функции, для которых вы используете. Например, ccache / colorgcc / distcc для Makefiles или Visual Assist X для Visual Studio.

Мы используем наш проект и довольны им - автоматические зависимости, простой синтаксис, надежные сборки.

Scons - это система основ Python, которая выполняет сборку самостоятельно. Это ИМХО менее популярно, и все еще медленно для большого проекта. Но для проекта от малого до среднего, возможно, хорошая альтернатива.

1 голос
/ 12 мая 2010

Вы также можете использовать систему сборки на основе Python - http://code.google.com/p/waf/

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