From 5b4bbd0f2b4220f2af2b343dac570ba196935dd4 Mon Sep 17 00:00:00 2001 From: Anton Maisak Date: Tue, 18 May 2021 19:47:39 +0300 Subject: [PATCH] ninja --- docs/_sidebar.md | 1 + docs/build-system/ninja.md | 73 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 docs/build-system/ninja.md diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 93c822e9..2d494a6c 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -110,6 +110,7 @@ - [**Выбор системы инициализации**](build-system/init-system) - **SysVinit** - **SystemD** + - [Ninja](build-system/ninja) - [**Вспомогательные материалы**](additional/additional) - **Строение GNU/Linux** diff --git a/docs/build-system/ninja.md b/docs/build-system/ninja.md new file mode 100644 index 00000000..071c867a --- /dev/null +++ b/docs/build-system/ninja.md @@ -0,0 +1,73 @@ + + + + +## Подготовка + +?> Хотя данный пакет предлагается использовать при установке SystemD, однако он может понадобиться при установке многих других пакетов, за пределами создания базовой системы. Вернитесь к этой инструкции по мере необходимости. + +?> `ninja` запускает максимальное количество процессов параллельно. По умолчанию это количество ядер в системе плюс два. В некоторых случаях это может привести к перегреву ЦП или нехватке памяти в системе. При запуске из командной строки передача параметра ``-jN`` ограничит количество параллельных процессов, но некоторые пакеты могут не передавать параметр ``-j``. + +Использование переменной окружения `NINJAJOBS` гарантирует ограничение на количество параллельных процессов. + +Экспортируя эту переменую, укажите требуемое количество процессов, в соответствии с возможностями: + +```bash +export NINJAJOBS=4 +``` + +Для того, чтобы задействовать значение переменной `NINJAJOBS`, выполните корректировку: + +```bash +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 +``` + +## Сборка + +```bash +python3 configure.py --bootstrap +``` + +### Объяснение параметров + +`--bootstrap` - параметр определяет что необходимо выполнить сборку для данной системы. + + +## Тестирование + +```bash +./ninja ninja_test +./ninja_test --gtest_filter=-SubprocessTest.SetWithLots +``` + +## Установка + +```bash +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 +``` + + +## Установленные файлы + +Программы: ``ninja``