Ninja (käännösjärjestelmä)

Ninja on käännösautomaatiojärjestelmä tietokoneohjelman kääntämiseen lähdekoodista. Ohjelma on julkaistu Apache 2.0 -lisenssillä.

Ninja ei toteuta eräitä toiminta, vaan luottaa toisen käännöstyökalun kuten CMake tai Meson tuottamiin tiedostoihin: Ninjan konfiguraatiotiedostoja ei ole tarkoitus tehdä käsin. Ohjelma on toteutettu C++-kielellä.

Evan Martin toteutti Ninjan johtuen make-ohjelman ongelmista kuten sen hitaudesta. Martin aloitti Ninjan vuonna 2010 työskennellessään Chrome-projektissa. Chromen käännös ottaa noin  C++-lähdekooditiedostoa ja tuottaa noin 90 megatavun ohjelmatiedoston. Ero make-ohjelmaan suorituskyvyssä ilmenee suurissa projekteissa. Ninja suorittaa useita käännöstoimintoja rinnakkain oletuksena.

Työkalua käyttävät Google Chrome, osat Android-käyttöjärjestelmästä sekä LLVM-projekti.https://ninja-build.org

 Esimerkki 
Esimerkki ohjelman konfiguraatiotiedostosta:
    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

 Lähteet 

 Aiheesta muualla 
 The Ninja build system 

Luokka:Käännöstyökalut