8.52. Ninja-1.11.1

Ninja 是一个注重速度的小型构建系统。

估计构建时间: 0.3 SBU
需要硬盘空间: 77 MB
[提示]

提示

如果不使用 systemd,本节内容不是严格必要的。但是,Ninja 和 Meson 组成一个强大的构建系统,预期这一组合将被越来越广泛地使用。BLFS 手册中的一些软件包需要它。

8.52.1. 安装 Ninja

在运行时,ninja 通常并行运行尽可能多的进程。默认情况下最大进程数是系统 CPU 核心数加 2 得到的值。这可能导致 CPU 过热,或者耗尽系统内存。如果使用命令行执行 ninja,可以传递 -jN 参数以限制并行进程数。但是,某些软件包内嵌了 ninja 的执行过程,且并不传递 -j 参数。

应用下面这个可选的修改,用户即可通过一个环境变量 NINJAJOBS 限制并行进程数量。例如设置:

export NINJAJOBS=4

会限制 ninja 使用 4 个并行进程。

如果希望 ninja 能够识别环境变量 NINJAJOBS,使用流编辑器,添加这一功能:

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

构建 Ninja:

python3 configure.py --bootstrap

构建选项的含义:

--bootstrap

这个参数强制 Ninja 为当前系统重新构建自身。

运行命令以测试编译结果:

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

安装该软件包:

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. Ninja 的内容

安装的程序: ninja

简要描述

ninja

是 ninja 构建系统