Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Пример [ править ]

правило  cc  command  = gcc -c -o $ out  $ in  description  = CC $ out  команда ссылки  правила = gcc -o $ out $ в описании = LINK $ out     build source1.o :  cc  source 1. c build source2.o :  cc  source 2. c build myprogram :  link  source 1. o  source 2. o

См. Также [ править ]

Ссылки [ править ]

  1. ^ Мартин, Эван. «Группы Google: построение ниндзя» . Проверено 18 июня +2017 . CS1 maint: обескураженный параметр ( ссылка )
  2. ^ "Релизы - ниндзя-билд / ниндзя" . Проверено 8 декабря 2020 . CS1 maint: обескураженный параметр ( ссылка )
  3. ^ «КОПИРОВАНИЕ» . Github . Дата обращения 5 сентября 2019 . CS1 maint: обескураженный параметр ( ссылка )
  4. ^ «Человек Google с открытыми исходными кодами, система сборки Chrome» .
  5. ^ Röthlisberger, Дэвид. «Инструмент сборки ниндзя» . LWN . Проверено 18 июня +2017 . CS1 maint: обескураженный параметр ( ссылка )
  6. ^ "Ниндзя" . Производительность приложений с открытым исходным кодом . Проверено 18 июня +2017 . CS1 maint: обескураженный параметр ( ссылка )
  7. ^ "Список рассылки aosp" .
  8. ^ "Документация LLVM" .
  9. ^ "gn - Git в Google" .
  10. ^ Kitware. "Документация по cmake" . Проверено 18 июня +2017 . CS1 maint: обескураженный параметр ( ссылка )

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • ниндзя на GitHub