Ninja (система сборки)

редактировать
Ninja
Ninja используется для компиляции GStreamer Ninja используется для компиляции GStreamer
Разработчик Эван Мартин
Первый выпуск2012 г.; 8 лет назад (2012 г.)
Стабильный выпуск 1.10.0 / 28 января 2020 г.; 8 месяцев назад (2020-01-28)
Репозиторий Отредактируйте это в Wikidata
Написано наC ++, Python
Операционная система Linux, macOS, Windows
Тип Инструменты разработки программного обеспечения
Лицензия Apache Лицензия 2.0
Веб-сайтninja-build.org Отредактируйте это в Wikidata

Ninja - это небольшая система сборки, ориентированная на скорость. Он отличается от других систем сборки по двум основным параметрам: он предназначен для того, чтобы его входные файлы генерировались системой сборки более высокого уровня, и он предназначен для максимально быстрого запуска сборки.

По сути, Ninja призван заменить Make, который работает медленно при выполнении инкрементных (или безоперационных) сборок. Это может значительно замедлить разработчиков, работающих над большими проектами, такими как Google Chrome, который компилирует 40 000 входных файлов в один исполняемый файл. Фактически, Google Chrome - главный пользователь и мотивация для Ninja. Он также используется для сборки Android и используется большинством разработчиков, работающих над LLVM.

В отличие от Make, в Ninja отсутствуют такие функции, как манипуляции со строками, поскольку файлы сборки Ninja не предназначены для написано от руки. Вместо этого следует использовать «генератор сборки» для создания файлов сборки Ninja. Gyp, CMake, Meson и gn - популярные программные инструменты для управления сборкой, которые поддерживают создание файлов сборки для Ninja.

Содержание
  • 1 Пример
  • 2 См. Также
  • 3 Ссылки
  • 4 Внешние ссылки
Пример
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
См. также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-31 10:17:39
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте