Game World!

Join A World Of Gamers

Enter your email address:

Delivered by FeedBurner

Followers

Popular Posts

Tuesday 29 June 2021

Is Ninja a compiler?

 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.

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. GypCMakeMeson, 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

See also[edit]

References[edit]

  1. ^ Martin, Evan. "Google Groups: ninja-build". Retrieved 18 June 2017.
  2. ^ "Releases - ninja-build/ninja". Retrieved 8 December 2020.
  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]

Floating Button

Button