8.52. Ninja-1.11.1

Ninja est un petit système de construction qui met l'accent sur la rapidité.

Temps de construction approximatif: 0.3 SBU
Espace disque requis: 77 Mo
[Astuce]

Astuce

Cette section n'est pas obligatoire si LFS n'utilise pas systemd. Cependant, Ninja associé à Meson devient un système de construction puissant, utilisé de plus en plus fréquemment. Il est requis par plusieurs paquets dans le livre BLFS.

8.52.1. Installation de Ninja

Lorsqu'il est exécuté, ninja lance un nombre maximum de processus en parallèle. Par défaut c'est le nombre de cœurs du système plus deux. Dans certains cas, cela peut surchauffer le CPU ou épuiser la mémoire. Si ninja est exécuté depuis la ligne de commande, passer le paramètre -jN limitera le nombre de processus en parallèle, mais certains paquets incluent l'exécution de ninja et ne passent pas le paramètre -j.

Utiliser la procédure facultative ci-dessous permet à l'utilisateur de limiter le nombre de processus en parallèle via une variable d'environnement, NINJAJOBS. Par exemple initialiser :

export NINJAJOBS=4

limitera ninja à 4 processus en parallèle.

Si vous le souhaitez, ajoutez la possibilité à ninja d'utiliser la variable d'environnement NINJAJOBS en lançant l'éditeur de flux :

sed -i '/int Guess/a \
  int   j = 0;\
  char* jobs = getenv( "NINJAJOBS" );\
  if ( jobs != NULL ) j = atoi( jobs );\
  if ( j > 0 ) return j;\
' src/ninja.cc

Construisez Ninja avec :

python3 configure.py --bootstrap

Voici la signification des options de construction :

--bootstrap

Ce paramètre force ninja à se reconstruire pour le système actuel.

Pour tester les résultats, lancez :

./ninja ninja_test
./ninja_test --gtest_filter=-SubprocessTest.SetWithLots

Installez le paquet :

install -vm755 ninja /usr/bin/
install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja
install -vDm644 misc/zsh-completion  /usr/share/zsh/site-functions/_ninja

8.52.2. Contenu de Ninja

Programmes installés: ninja

Descriptions courtes

ninja

est le système de construction Ninja