Ninja

Linux.fista
Siirry navigaatioon Siirry hakuun
Ninja
Käyttöliittymä komentorivi
Lisenssi Apache-lisenssi 2.0
Kotisivu ninja-build.org
Lähdekoodi /github.com/ninja-build/ninja

Ninja on rakennusjärjestelmä (engl. build system), mutta se eroaa perinteisistä työkaluista kuten Make:sta.

Ninja on erityisesti suunniteltu olemaan erittäin nopea ja keskittymään vain komentojen suorittamiseen (rakennusvaiheeseen), ei niiden luomiseen (konfigurointivaiheeseen).

Tässä on tiivistelmä Ninjan roolista Linux-ohjelmistojen kääntämisessä:

1. Rooli ja tarkoitus

[muokkaa]
  • Päätehtävä: Ninjan päätehtävä on ajaa mahdollisimman tehokkaasti ja rinnakkain ne komennot, jotka tarvitaan lähdekoodin muuttamiseksi valmiiksi ohjelmaksi.
  • Nopeus: Se on minimalistinen, ja sen toteutus on optimoitu nopeaan suoritukseen. Tämä tekee siitä ihanteellisen suurten projektien toistuvaan kääntämiseen kehitystyön aikana.
  • Työskentelytapa: Ninja ei luo itse komentoja. Sen sijaan toinen, korkeamman tason työkalu luo sille syöttötiedostot (eli build.ninja-tiedoston), jotka kertovat Ninjalle täsmällisesti, mitä komentoja ja missä järjestyksessä tulee ajaa.

2. Käyttö modernien järjestelmien kanssa

[muokkaa]

Ninjaa käytetään useimmiten yhdessä konfigurointityökalujen kanssa, jotka hoitavat monimutkaisen logiikan:

Konfigurointijärjestelmä Ninjan rooli
Meson Meson luo oletusarvoisesti build.ninja-tiedostot. Meson on siis konfigurointijärjestelmä ja Ninja on rakennusjärjestelmä.
CMake CMake on konfigurointijärjestelmä, mutta se voi generoida tulosteen perinteisen Makefilen sijaan Ninja-tiedostoiksi, jotta käännös olisi nopeampi.

3. Ero Makeen verrattuna

[muokkaa]
Ominaisuus Make (Perinteinen) Ninja (Moderni)
Tarkoitus Sekä komentosarjojen luominen että suorittaminen (Historiallisesti) Vain komentojen nopea suorittaminen
Tiedostot Lukee Makefile-tiedostoja Lukee build.ninja-tiedostoja
Käyttö Soveltuu sekä yksinkertaisiin että monimutkaisiin projekteihin Käytetään useimmiten generoitujen tiedostojen suorittamiseen (ei käsinkirjoitettujen)

Käyttö (komentorivi)

[muokkaa]

Ninja on suunniteltu käytettäväksi terminaalissa ja se on yleensä taustajärjestelmä (engl. backend) toiselle työkalulle, kuten CMake:lle tai Mesonille.

Sen tyypillinen käyttö komentorivillä on hyvin yksinkertainen:

  • Rakentaminen: Suorittaa käännöksen nykyisestä hakemistosta lukien build.ninja-tiedostoa.
ninja
  • Asennus: Kutsutaan usein suoraan korkeamman tason järjestelmien kautta tai erikoistyökaluilla.
ninja install # Voidaan käyttää, jos säännöt on määritelty

Ninja keskittyy minimiin, ja sen käyttöliittymä on optimoitu nopeaan toimintaan ja rakennusprosessin edistymisen näyttämiseen ilman ylimääräistä monimutkaisuutta.

Katso myös

[muokkaa]