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