Ero sivun ”Ninja” versioiden välillä
Ninja |
p →Käyttö |
||
| (3 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
| Rivi 19: | Rivi 19: | ||
* '''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. | * '''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 == | === 2. Käyttö modernien järjestelmien kanssa === | ||
Ninjaa käytetään useimmiten yhdessä konfigurointityökalujen kanssa, jotka hoitavat monimutkaisen logiikan: | Ninjaa käytetään useimmiten yhdessä konfigurointityökalujen kanssa, jotka hoitavat monimutkaisen logiikan: | ||
| Rivi 32: | Rivi 32: | ||
|} | |} | ||
== 3. Ero Makeen verrattuna == | === 3. Ero Makeen verrattuna === | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
| Rivi 44: | Rivi 44: | ||
| Käyttö || Soveltuu sekä yksinkertaisiin että monimutkaisiin projekteihin || Käytetään useimmiten generoitujen tiedostojen suorittamiseen (ei käsinkirjoitettujen) | | Käyttö || Soveltuu sekä yksinkertaisiin että monimutkaisiin projekteihin || Käytetään useimmiten generoitujen tiedostojen suorittamiseen (ei käsinkirjoitettujen) | ||
|} | |} | ||
== Käyttö (komentorivi) == | |||
Ninja on suunniteltu käytettäväksi terminaalissa ja se on yleensä taustajärjestelmä (engl. backend) toiselle työkalulle, kuten [[CMake]]:lle tai [[Meson]]ille. | |||
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== | ==Katso myös== | ||
Nykyinen versio 13. marraskuuta 2025 kello 21.43
| 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.