Инструмент для сборки системы linux

Наш проект стал довольно большим, и наша система сборки больше не масштабируется. Мы занимаемся кроссплатформенной разработкой на машинах Linux. У нас слишком много платформ для сборки и даже больше вариантов сборки. Мы считаем, что нам нужно обновить среду сборки на основе Makefile.

Это требования (в идеальном мире):

  • Быстро (так что нет libtool)
  • Может делать параллельные сборки
  • Кросс-компиляция
  • Интеграция Ccache
  • Выполняет инкрементные сборки и может замкнуть накоротко, если соблюдены определенные условия (короткое замыкание, если параметры a, b, c не изменились, перестроить, если они изменились)
  • Легко сценариев (интеграция Python будет идеально)
  • Дружественный синтаксис
  • Распределенная система. Модули могут быть разработаны отдельно друг от друга
  • Может создавать сторонние библиотеки (которые используют autotools, cmake ..)
  • Может отслеживать зависимости между модулями (но достаточно гибкими, чтобы модули могли быть заменены альтернативными внешними).
  • встроенная поддержка модульного тестирования
  • Большие двоичные файлы могут храниться отдельно от контроля версий и при необходимости загружаться
  • Может отслеживать лицензии с открытым исходным кодом
  • интеграция с мерзавцем

Известны ли вам какие-либо инструменты (или группы инструментов), которые бы соответствовали (хотя бы некоторым) этим требованиям? В настоящее время я склоняюсь к gyp+ninja. Но синтаксис не очень дружелюбный и нет документации. Так что это трудно продать.

3 ответа

Что касается C++, то очень хорошая система сборки - CMake.

Вы упомянули интеграцию с Python, так что SCons звучит так, как будто это отвечает всем требованиям. Он полностью основан на Python (сценарии сборки на самом деле являются сценариями Python), он очень гибок и соответствует целому ряду других ваших требований.

С веб-сайта:

SCons - это инструмент для разработки программного обеспечения с открытым исходным кодом, то есть инструмент для сборки следующего поколения. Представьте SCons как улучшенную кроссплатформенную замену классической утилите Make со встроенной функциональностью, аналогичной кэшам autoconf/automake и компиляторам, таким как ccache. Короче говоря, SCons - это более простой, надежный и быстрый способ создания программного обеспечения.

Ниндзя не должен использоваться конечным пользователем, скорее, каким-либо другим высокоуровневым инструментом сборки, таким как CMake. И это действительно хороший вариант, особенно для крупных и кроссплатформенных проектов. Он не имеет встроенной поддержки Python, но вам редко или никогда не нужны внешние сценарии с использованием CMake - у него есть инструменты для наиболее распространенных задач.

Другие вопросы по тегам