2022-06-07 17:07:07 +03:00
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
|
|
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
|
|
|
|
<!ENTITY % general-entities SYSTEM "../general.ent">
|
|
|
|
|
%general-entities;
|
|
|
|
|
]>
|
|
|
|
|
|
|
|
|
|
<sect1 id="ch-system-ninja" role="wrap">
|
|
|
|
|
<?dbhtml filename="ninja.html"?>
|
|
|
|
|
|
|
|
|
|
<sect1info condition="script">
|
|
|
|
|
<productname>ninja</productname>
|
|
|
|
|
<productnumber>&ninja-version;</productnumber>
|
|
|
|
|
<address>&ninja-url;</address>
|
|
|
|
|
</sect1info>
|
|
|
|
|
|
|
|
|
|
<title>Ninja-&ninja-version;</title>
|
|
|
|
|
|
|
|
|
|
<indexterm zone="ch-system-ninja">
|
|
|
|
|
<primary sortas="a-Ninja">Ninja</primary>
|
|
|
|
|
</indexterm>
|
|
|
|
|
|
|
|
|
|
<sect2 role="package">
|
|
|
|
|
<title/>
|
|
|
|
|
|
|
|
|
|
<para>Ninja - небольшая система сборки ориентированная на скорость.</para>
|
|
|
|
|
|
|
|
|
|
<segmentedlist>
|
|
|
|
|
<segtitle>&buildtime;</segtitle>
|
|
|
|
|
<segtitle>&diskspace;</segtitle>
|
|
|
|
|
|
|
|
|
|
<seglistitem>
|
|
|
|
|
<seg>&ninja-fin-sbu;</seg>
|
|
|
|
|
<seg>&ninja-fin-du;</seg>
|
|
|
|
|
</seglistitem>
|
|
|
|
|
</segmentedlist>
|
|
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
|
|
<sect2 role="installation">
|
|
|
|
|
<title>Установка пакета Ninja</title>
|
|
|
|
|
|
2023-07-10 22:15:42 +03:00
|
|
|
|
<para>При запуске <command>ninja</command> обычно использует максимальное количество
|
|
|
|
|
процессов параллельно. По умолчанию это количество ядер в системе плюс два. В некоторых
|
|
|
|
|
случаях это может привести к перегреву процессора или нехватке памяти в системе.
|
|
|
|
|
Когда <command>ninja</command> вызывается из командной строки, передача параметра -jN
|
|
|
|
|
ограничит количество параллельных процессов. Некоторые пакеты встраивают выполнение
|
|
|
|
|
<command>ninja</command> и параметр -j не передается.</para>
|
2022-06-07 17:07:07 +03:00
|
|
|
|
|
|
|
|
|
<para>Использование приведенной ниже <emphasis>необязательной</emphasis> процедуры
|
|
|
|
|
позволяет пользователю ограничить количество параллельных процессов с помощью переменной
|
|
|
|
|
окружения NINJAJOBS. <emphasis role="bold">Пример</emphasis>, настройки:
|
|
|
|
|
|
|
|
|
|
<screen>export NINJAJOBS=4</screen>
|
|
|
|
|
|
2023-07-10 22:15:42 +03:00
|
|
|
|
ограничит <command>ninja</command> четырьмя параллельными процессами.</para>
|
2022-06-07 17:07:07 +03:00
|
|
|
|
|
2023-07-10 22:15:42 +03:00
|
|
|
|
<para>По желанию, добавьте возможность использовать переменную окружения NINJAJOBS, выполнив
|
|
|
|
|
следующую команду:</para>
|
2022-06-07 17:07:07 +03:00
|
|
|
|
|
|
|
|
|
<screen><userinput remap="pre">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</userinput></screen>
|
|
|
|
|
|
|
|
|
|
<para>Соберите Ninja с помощью команды:</para>
|
|
|
|
|
|
|
|
|
|
<screen><userinput remap="configure">python3 configure.py --bootstrap</userinput></screen>
|
|
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
|
<title>Значение параметров сборки:</title>
|
|
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><parameter>--bootstrap</parameter></term>
|
|
|
|
|
<listitem>
|
2023-07-10 22:15:42 +03:00
|
|
|
|
<para>Этот параметр перестраивает Ninja под текущую систему.</para>
|
2022-06-07 17:07:07 +03:00
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
</variablelist>
|
|
|
|
|
|
|
|
|
|
<para>Чтобы протестировать пакет, выполните:</para>
|
|
|
|
|
|
|
|
|
|
<screen><userinput remap="test">./ninja ninja_test
|
|
|
|
|
./ninja_test --gtest_filter=-SubprocessTest.SetWithLots</userinput></screen>
|
|
|
|
|
|
|
|
|
|
<para>Установите пакет:</para>
|
|
|
|
|
|
|
|
|
|
<screen><userinput remap="install">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</userinput></screen>
|
|
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
|
|
<sect2 id="contents-ninja" role="content">
|
|
|
|
|
<title>Содержимое пакета Ninja</title>
|
|
|
|
|
|
|
|
|
|
<segmentedlist>
|
2023-08-03 23:54:52 +03:00
|
|
|
|
<segtitle>Установленные программы</segtitle>
|
2022-06-07 17:07:07 +03:00
|
|
|
|
|
|
|
|
|
<seglistitem>
|
|
|
|
|
<seg>ninja</seg>
|
|
|
|
|
</seglistitem>
|
|
|
|
|
</segmentedlist>
|
|
|
|
|
<variablelist>
|
|
|
|
|
<bridgehead renderas="sect3">Краткое описание</bridgehead>
|
|
|
|
|
<?dbfo list-presentation="list"?>
|
|
|
|
|
<?dbhtml list-presentation="table"?>
|
|
|
|
|
|
|
|
|
|
<varlistentry id="ninja">
|
|
|
|
|
<term><command>ninja</command></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>это система сборки Ninja</para>
|
|
|
|
|
<indexterm zone="ch-system-ninja ninja">
|
|
|
|
|
<primary sortas="b-ninja">ninja</primary>
|
|
|
|
|
</indexterm>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
</variablelist>
|
|
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
|
|
</sect1>
|
|
|
|
|
|