Wikipedista:Fanteria-pesante/Ninja (sestavení systému)

Z Wikipedie, otevřené encyklopedie
Ninja
VývojářEvan Martin
První vydání2012
Operační systémLinux, macOS, Windows
Vyvíjeno vC++, Python
Typ softwaruProgramátorský nástroj
LicenceApache License 2.0[1]
Webhttps://ninja-build.org

Ninja je open source software pro automatizaci překladu zdrojového kódu, jehož vývojářem je Evan Martin.[2]

Rozdílem oproti jiným systémům, jako je například Make, je jeho zaměření na rychlost a designové rozhodnutí, že jeho soubory budou vytvářeny nějakým vysokoúrovňovým systémem pro automatizaci sestavování programů, jako je například CMake nebo Meson.[3]

Použití[editovat | editovat zdroj]

Systémy pro automatizaci překladu založené na programu ninja patří mezi nejrychlejší.[4] Díky tomu je ninja používán pro překlad v mnoha projektech, jako je například Chromium, pro který byl původně vyvinut[5], Elektron[6], QT[7], LLDB[8] a využívá ho také většina programátorů pracujících na projektu LLVM.[9]

Příklad[editovat | editovat zdroj]

cflags = -Wall

rule cc

  command = gcc $cflags -c $in -o $out

build foo.o: cc foo.c

Příklad výše nastaví pro soubor foo.c kompilaci do objektového souboru foo.o. Pro kompilaci využije kompilátor gcc a přidá mu přepínač -Wall, který zobrazí všechna upozornění.[10]

Reference[editovat | editovat zdroj]

  1. COPYING [online]. [cit. 2019-09-05]. Dostupné online. 
  2. The Performance of Open Source SoftwareNinja. aosabook.org [online]. [cit. 2024-05-02]. Dostupné online. 
  3. Ninja Build System - How Does it Work?. Incredibuild [online]. [cit. 2024-05-02]. Dostupné online. (anglicky) 
  4. BY. Ask Hackaday: What’s Your Favourite Build Tool? Can Make Ever Be Usurped? [online]. 2021-03-11 [cit. 2024-05-02]. Dostupné online. (anglicky) 
  5. Chromium Notes: Ninja, a new build system. neugierig.org [online]. [cit. 2024-05-02]. Dostupné online. 
  6. electron/docs/development/creating-api.md at c0f9d0eeedec1b3243e6f5a16b78a78085879364 · electron/electron. GitHub [online]. [cit. 2024-05-02]. Dostupné online. (anglicky) 
  7. qtbase/cmake at e68c3f025ecc7cf1fa86e5e773cee8d61a816f61 · qt/qtbase. GitHub [online]. [cit. 2024-05-02]. Dostupné online. (anglicky) 
  8. llvm-project/lldb/docs/resources/build.rst at 110141b37813dc48af33de5e1407231e56acdfc5 · llvm/llvm-project. GitHub [online]. [cit. 2024-05-02]. Dostupné online. (anglicky) 
  9. Getting Started with the LLVM System — LLVM 19.0.0git documentation. llvm.org [online]. [cit. 2024-05-02]. Dostupné online. 
  10. The Ninja build system. ninja-build.org [online]. [cit. 2024-05-02]. Dostupné online.