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í
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
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
V tomto článku byl použit překlad textu z článku Ninja (build system) na anglické Wikipedii.
- ↑ COPYING [online]. [cit. 2019-09-05]. Dostupné online. Je zde použita šablona
{{Cite web}}
označená jako k „pouze dočasnému použití“.
- ↑ The Performance of Open Source SoftwareNinja. aosabook.org [online]. [cit. 2024-05-02]. Dostupné online.
- ↑ Ninja Build System - How Does it Work?. Incredibuild [online]. [cit. 2024-05-02]. Dostupné online. (anglicky)
- ↑ 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)
- ↑ Chromium Notes: Ninja, a new build system. neugierig.org [online]. [cit. 2024-05-02]. Dostupné online.
- ↑ electron/docs/development/creating-api.md at c0f9d0eeedec1b3243e6f5a16b78a78085879364 · electron/electron. GitHub [online]. [cit. 2024-05-02]. Dostupné online. (anglicky)
- ↑ qtbase/cmake at e68c3f025ecc7cf1fa86e5e773cee8d61a816f61 · qt/qtbase. GitHub [online]. [cit. 2024-05-02]. Dostupné online. (anglicky)
- ↑ llvm-project/lldb/docs/resources/build.rst at 110141b37813dc48af33de5e1407231e56acdfc5 · llvm/llvm-project. GitHub [online]. [cit. 2024-05-02]. Dostupné online. (anglicky)
- ↑ Getting Started with the LLVM System — LLVM 19.0.0git documentation. llvm.org [online]. [cit. 2024-05-02]. Dostupné online.
- ↑ The Ninja build system. ninja-build.org [online]. [cit. 2024-05-02]. Dostupné online.
Externí odkazy