8.50.2. Ninja 的内容
安装的程序: ninja
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