Ninja (käännösjärjestelmä)
Ninja | |
---|---|
Luoja | Evan Martin |
Kehityshistoria | |
Vakaa versio | 1.12.1 ()[1] |
Tiedot | |
Ohjelmointikielet | C++ |
Lisenssi | Apache-lisenssi, versio 2.0 |
Aiheesta muualla | |
Verkkosivusto | |
Versiohallinta |
Ninja on käännösautomaatiojärjestelmä tietokoneohjelman kääntämiseen lähdekoodista.[2] Ohjelma on julkaistu Apache 2.0 -lisenssillä.[3]
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.[4] Ohjelma on toteutettu C++-kielellä.[4]
Evan Martin toteutti Ninjan johtuen make-ohjelman ongelmista kuten sen hitaudesta.[5][6] Martin aloitti Ninjan vuonna 2010 työskennellessään Chrome-projektissa.[2] Chromen käännös ottaa noin 40 000 C++-lähdekooditiedostoa ja tuottaa noin 90 megatavun ohjelmatiedoston.[2] Ero make-ohjelmaan suorituskyvyssä ilmenee suurissa projekteissa.[7] Ninja suorittaa useita käännöstoimintoja rinnakkain oletuksena.[7]
Työkalua käyttävät Google Chrome, osat Android-käyttöjärjestelmästä sekä LLVM-projekti.[8]
Esimerkki
[muokkaa | muokkaa wikitekstiä]Esimerkki ohjelman konfiguraatiotiedostosta:[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
Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ Release 1.12.1, (viitattu ). Tieto on haettu Wikidatasta.
- ↑ a b c Evan Martin: Ninja aosabook.org. Viitattu 1.2.2020. (englanniksi)
- ↑ COPYING github.com. Viitattu 1.2.2020. (englanniksi)
- ↑ a b c David Röthlisberger: The Ninja build tool lwn.net. 16.11.2016. Viitattu 1.2.2020. (englanniksi)
- ↑ Meson Frequently Asked Questions mesonbuild.com. Viitattu 1.2.2020. (englanniksi)
- ↑ Ninja, a new build system neugierig.org. 6.2.2011. Viitattu 1.2.2020. (englanniksi)
- ↑ a b David Paul Röthlisberger: Benchmarking the Ninja build system david.rothlis.net. 4.11.2016. Viitattu 1.2.2020. (englanniksi)
- ↑ https://ninja-build.org
Aiheesta muualla
[muokkaa | muokkaa wikitekstiä]- The Ninja build system (englanniksi)