Ninja on moderni, nopeuteen optimoitu build-työkalu, joka on suunniteltu korvaamaan perinteinen GNU Make. Se on erityisen suosittu suurissa C++ projekteissa, joissa build-ajat voivat kasvaa merkittäviksi.
Qt-kehityksessä on kaksi pääasiallista build-järjestelmää:
Qt 6:sta lähtien Qt on siirtynyt suosimaan CMakea qmaken sijaan. Tämä tekee Ninjasta entistä relevantimman valinnan Qt-kehityksessä.
Qt 6 sisältää Ninjan automaattisesti! Kun asennat Qt:ta Qt Online Installer -työkalulla, Ninja asentuu automaattisesti osana kehitystyökaluja.
Asennus:
Ninja asentuu hakemistoon: C:\Qt\Tools\Ninja\ninja.exe (Windows) tai
~/Qt/Tools/Ninja/ninja (Linux/macOS)
Tarkista asennus:
C:\Qt\Tools\Ninja\ninja.exe --version
Jos et käytä Qt:ta tai haluat asentaa Ninjan erikseen:
Windows:
# Chocolatey
choco install ninja
# Scoop
scoop install ninja
# Tai lataa binary: https://github.com/ninja-build/ninja/releases
Linux:
sudo apt install ninja-build # Ubuntu/Debian
sudo dnf install ninja-build # Fedora
macOS:
brew install ninja
Qt Creator 14+ tunnistaa automaattisesti Qt:n mukana asennetun Ninjan. Kun luot uuden Qt 6 -projektin CMakella, Ninja on jo valittuna oletuksena.
Jos haluat vaihtaa build-generaattoria:
Voit varmistaa että Qt Creator käyttää Ninjaa:
[1/42] Building CXX object... → Ninja toimii! ✓[ 2%] Building CXX... → Make käytössäTai tarkista build-hakemistosta:
build.ninja tiedosto → Ninja ✓Makefile → Make
Voit määritellä Ninjan myös projektin CMakePresets.json tiedostossa:
{
"version": 3,
"configurePresets": [
{
"name": "ninja-debug",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_PREFIX_PATH": "C:/Qt/6.7.0/msvc2019_64"
}
}
]
}
Qt Creator tunnistaa CMakePresets.json automaattisesti ja tarjoaa presetit valittavaksi.
cmake -G "Unix Makefiles" ..
make -j8
make install
cmake -G Ninja ..
ninja
ninja install
Qt Creatorissa tämä tapahtuu automaattisesti kun painat Build (Ctrl+B). Build-output näyttää käytetyn työkalun:
[1/245] Building CXX object src/CMakeFiles/myapp.dir/main.cpp.o
[2/245] Building CXX object src/CMakeFiles/myapp.dir/widget.cpp.o
[3/245] Linking CXX executable myapp.exe
...
Tyypillinen Qt-projekti (500 tiedostoa, 50,000 riviä koodia):
Jos asensit Qt:n ilman Ninjaa tai haluat päivittää/poistaa Ninjan, käytä Qt Maintenance Tool -työkalua:
Ninja on erinomainen valinta Qt-kehitykseen, erityisesti kun:
Qt Creator tekee Ninjan käytöstä helppoa tarjoamalla täyden integraation. Qt 6:n mukana Ninja tulee valmiiksi asennettuna, joten useimmissa tapauksissa ei tarvitse tehdä mitään erityistä - kaikki toimii automaattisesti!
CMakeLists.txt, Ninja on jo
todennäköisesti käytössä. Jos projektissa on .pro tiedosto (qmake), jatka
Maken käyttöä tai harkitse projektin migrointia CMakeen.