Инструмент для сборки системы linux
Наш проект стал довольно большим, и наша система сборки больше не масштабируется. Мы занимаемся кроссплатформенной разработкой на машинах Linux. У нас слишком много платформ для сборки и даже больше вариантов сборки. Мы считаем, что нам нужно обновить среду сборки на основе Makefile.
Это требования (в идеальном мире):
- Быстро (так что нет libtool)
- Может делать параллельные сборки
- Кросс-компиляция
- Интеграция Ccache
- Выполняет инкрементные сборки и может замкнуть накоротко, если соблюдены определенные условия (короткое замыкание, если параметры a, b, c не изменились, перестроить, если они изменились)
- Легко сценариев (интеграция Python будет идеально)
- Дружественный синтаксис
- Распределенная система. Модули могут быть разработаны отдельно друг от друга
- Может создавать сторонние библиотеки (которые используют autotools, cmake ..)
- Может отслеживать зависимости между модулями (но достаточно гибкими, чтобы модули могли быть заменены альтернативными внешними).
- встроенная поддержка модульного тестирования
- Большие двоичные файлы могут храниться отдельно от контроля версий и при необходимости загружаться
- Может отслеживать лицензии с открытым исходным кодом
- интеграция с мерзавцем
Известны ли вам какие-либо инструменты (или группы инструментов), которые бы соответствовали (хотя бы некоторым) этим требованиям? В настоящее время я склоняюсь к gyp+ninja. Но синтаксис не очень дружелюбный и нет документации. Так что это трудно продать.
3 ответа
Вы упомянули интеграцию с Python, так что SCons звучит так, как будто это отвечает всем требованиям. Он полностью основан на Python (сценарии сборки на самом деле являются сценариями Python), он очень гибок и соответствует целому ряду других ваших требований.
С веб-сайта:
SCons - это инструмент для разработки программного обеспечения с открытым исходным кодом, то есть инструмент для сборки следующего поколения. Представьте SCons как улучшенную кроссплатформенную замену классической утилите Make со встроенной функциональностью, аналогичной кэшам autoconf/automake и компиляторам, таким как ccache. Короче говоря, SCons - это более простой, надежный и быстрый способ создания программного обеспечения.
Ниндзя не должен использоваться конечным пользователем, скорее, каким-либо другим высокоуровневым инструментом сборки, таким как CMake. И это действительно хороший вариант, особенно для крупных и кроссплатформенных проектов. Он не имеет встроенной поддержки Python, но вам редко или никогда не нужны внешние сценарии с использованием CMake - у него есть инструменты для наиболее распространенных задач.