инструмент для сборки системы linux - PullRequest
3 голосов
/ 24 марта 2012

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

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

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

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

Ответы [ 3 ]

1 голос
/ 10 июня 2012

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

1 голос
/ 24 марта 2012

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

С сайта:

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

0 голосов
/ 10 октября 2012

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

...