fbpx
Wikipedia

Ninja (build system)

Ninja is a small build system developed by Evan Martin,[4] a Google employee. Ninja has a focus on speed and it differs from other build systems in two major respects: it is designed to have its input files generated by a higher-level build system, and it is designed to run builds as fast as possible.

Ninja
Ninja being used to compile dav1d, in conjunction with Meson configuration
Developer(s)Evan Martin
Initial release2012; 12 years ago (2012)[1]
Stable release
1.11.1[2]  / 30 August 2022; 19 months ago (30 August 2022)
Repository
  • github.com/ninja-build/ninja
Written inC++, Python
Operating systemLinux, macOS, Windows
TypeSoftware development tools
LicenseApache License 2.0[3]
Websiteninja-build.org 

Build system edit

In essence, Ninja is meant to replace Make, which is slow when performing incremental (or no-op) builds.[5] This can considerably slow down developers working on large projects, such as Google Chrome which compiles 40,000 input files into a single executable. In fact, Google Chrome is a main user and motivation for Ninja.[6] It's also used to build Android (via Makefile translation by Kati),[7] and is used by most developers working on LLVM.[8]

In contrast to Make, Ninja lacks features such as string manipulation, as Ninja build files are not meant to be written by hand. Instead, a "build generator" should be used to generate Ninja build files. Gyp, CMake, Meson, and gn[9] are popular build management software tools which support creating build files for Ninja.[10]

Example edit

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 

References edit

  1. ^ Martin, Evan. "Google Groups: ninja-build". Retrieved 18 June 2017.
  2. ^ "Release 1.11.1". 30 August 2022. Retrieved 5 October 2022.
  3. ^ "COPYING". Github. Retrieved 5 September 2019.
  4. ^ "Google man open sources Chrome build system".
  5. ^ Röthlisberger, David. "The Ninja build tool". LWN. Retrieved 18 June 2017.
  6. ^ "Ninja". The Performance Of Open Source Applications. Retrieved 18 June 2017.
  7. ^ "aosp mailing list".
  8. ^ "LLVM documentation".
  9. ^ "gn - Git at Google".
  10. ^ Kitware. "cmake Documentation". Retrieved 18 June 2017.

External links edit

  • Official Website
  • ninja on GitHub

ninja, build, system, ninja, small, build, system, developed, evan, martin, google, employee, ninja, focus, speed, differs, from, other, build, systems, major, respects, designed, have, input, files, generated, higher, level, build, system, designed, builds, f. Ninja is a small build system developed by Evan Martin 4 a Google employee Ninja has a focus on speed and it differs from other build systems in two major respects it is designed to have its input files generated by a higher level build system and it is designed to run builds as fast as possible NinjaNinja being used to compile dav1d in conjunction with Meson configurationDeveloper s Evan MartinInitial release2012 12 years ago 2012 1 Stable release1 11 1 2 30 August 2022 19 months ago 30 August 2022 Repositorygithub wbr com wbr ninja build wbr ninjaWritten inC PythonOperating systemLinux macOS WindowsTypeSoftware development toolsLicenseApache License 2 0 3 Websiteninja build wbr org Contents 1 Build system 2 Example 3 References 4 External linksBuild system editIn essence Ninja is meant to replace Make which is slow when performing incremental or no op builds 5 This can considerably slow down developers working on large projects such as Google Chrome which compiles 40 000 input files into a single executable In fact Google Chrome is a main user and motivation for Ninja 6 It s also used to build Android via Makefile translation by Kati 7 and is used by most developers working on LLVM 8 In contrast to Make Ninja lacks features such as string manipulation as Ninja build files are not meant to be written by hand Instead a build generator should be used to generate Ninja build files Gyp CMake Meson and gn 9 are popular build management software tools which support creating build files for Ninja 10 Example editrule cc command gcc c o out in description CC out rule link command gcc o out in description LINK out build source1 o cc source 1 c build source2 o cc source 2 c build myprogram link source 1 o source 2 oReferences edit Martin Evan Google Groups ninja build Retrieved 18 June 2017 Release 1 11 1 30 August 2022 Retrieved 5 October 2022 COPYING Github Retrieved 5 September 2019 Google man open sources Chrome build system Rothlisberger David The Ninja build tool LWN Retrieved 18 June 2017 Ninja The Performance Of Open Source Applications Retrieved 18 June 2017 aosp mailing list LLVM documentation gn Git at Google Kitware cmake Documentation Retrieved 18 June 2017 External links editOfficial Website ninja on GitHub Retrieved from https en wikipedia org w index php title Ninja build system amp oldid 1208683951, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.