Ninja используется для компиляции GStreamer | |
Разработчик | Эван Мартин |
---|---|
Первый выпуск | 2012 г.; 8 лет назад (2012 г.) |
Стабильный выпуск | 1.10.0 / 28 января 2020 г.; 8 месяцев назад (2020-01-28) |
Репозиторий | |
Написано на | C ++, Python |
Операционная система | Linux, macOS, Windows |
Тип | Инструменты разработки программного обеспечения |
Лицензия | Apache Лицензия 2.0 |
Веб-сайт | ninja-build.org |
Ninja - это небольшая система сборки, ориентированная на скорость. Он отличается от других систем сборки по двум основным параметрам: он предназначен для того, чтобы его входные файлы генерировались системой сборки более высокого уровня, и он предназначен для максимально быстрого запуска сборки.
По сути, Ninja призван заменить Make, который работает медленно при выполнении инкрементных (или безоперационных) сборок. Это может значительно замедлить разработчиков, работающих над большими проектами, такими как Google Chrome, который компилирует 40 000 входных файлов в один исполняемый файл. Фактически, Google Chrome - главный пользователь и мотивация для Ninja. Он также используется для сборки Android и используется большинством разработчиков, работающих над LLVM.
В отличие от Make, в Ninja отсутствуют такие функции, как манипуляции со строками, поскольку файлы сборки Ninja не предназначены для написано от руки. Вместо этого следует использовать «генератор сборки» для создания файлов сборки Ninja. Gyp, CMake, Meson и gn - популярные программные инструменты для управления сборкой, которые поддерживают создание файлов сборки для Ninja.
rule cc command = gcc -c -o $ out $ in description = CC $ out rule link command = gcc -o $ out $ in description = LINK $ out build source1.o: cc source1.c build source2.o: cc source2.c build myprogram: link source1.o source2.o