Merge pull request #189773 from AndersonTorres/ninja

Ninja: reformat expression
This commit is contained in:
Anderson Torres 2022-09-24 21:50:21 -03:00 committed by GitHub
commit a5a1d526d0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 64 additions and 33 deletions

View file

@ -1,6 +1,16 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, python3, buildDocs ? true, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxslt, re2c }:
with lib;
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, asciidoc
, docbook_xml_dtd_45
, docbook_xsl
, installShellFiles
, libxslt
, python3
, re2c
, buildDocs ? true
}:
stdenv.mkDerivation rec {
pname = "ninja";
@ -10,30 +20,51 @@ stdenv.mkDerivation rec {
owner = "ninja-build";
repo = "ninja";
rev = "v${version}";
sha256 = "sha256-LvV/Fi2ARXBkfyA1paCRmLUwCh/rTyz+tGMg2/qEepI=";
hash = "sha256-LvV/Fi2ARXBkfyA1paCRmLUwCh/rTyz+tGMg2/qEepI=";
};
nativeBuildInputs = [ python3 re2c ] ++ optionals buildDocs [ asciidoc docbook_xml_dtd_45 docbook_xsl libxslt.bin ];
nativeBuildInputs = [
python3
re2c
installShellFiles
]
++ lib.optionals buildDocs [
asciidoc
docbook_xml_dtd_45
docbook_xsl
libxslt.bin
];
buildPhase = ''
runHook preBuild
python configure.py --bootstrap
'' + optionalString buildDocs ''
'' + lib.optionalString buildDocs ''
# "./ninja -vn manual" output copied here to support cross compilation.
asciidoc -b docbook -d book -o build/manual.xml doc/manual.asciidoc
xsltproc --nonet doc/docbook.xsl build/manual.xml > doc/manual.html
'' + ''
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm555 -t $out/bin ninja
install -Dm444 misc/bash-completion $out/share/bash-completion/completions/ninja
install -Dm444 misc/zsh-completion $out/share/zsh/site-functions/_ninja
'' + optionalString buildDocs ''
installShellCompletion --name ninja \
--bash misc/bash-completion \
--zsh misc/zsh-completion
'' + lib.optionalString buildDocs ''
install -Dm444 -t $out/share/doc/ninja doc/manual.asciidoc doc/manual.html
'' + ''
runHook postInstall
'';
setupHook = ./setup-hook.sh;
meta = {
meta = with lib; {
description = "Small build system with a focus on speed";
longDescription = ''
Ninja is a small build system with a focus on speed. It differs from

View file

@ -19,29 +19,6 @@ ninjaBuildPhase() {
runHook postBuild
}
if [ -z "${dontUseNinjaBuild-}" -a -z "${buildPhase-}" ]; then
buildPhase=ninjaBuildPhase
fi
ninjaInstallPhase() {
runHook preInstall
# shellcheck disable=SC2086
local flagsArray=(
$ninjaFlags "${ninjaFlagsArray[@]}"
${installTargets:-install}
)
echoCmd 'install flags' "${flagsArray[@]}"
TERM=dumb ninja "${flagsArray[@]}"
runHook postInstall
}
if [ -z "${dontUseNinjaInstall-}" -a -z "${installPhase-}" ]; then
installPhase=ninjaInstallPhase
fi
ninjaCheckPhase() {
runHook preCheck
@ -73,6 +50,29 @@ ninjaCheckPhase() {
runHook postCheck
}
ninjaInstallPhase() {
runHook preInstall
# shellcheck disable=SC2086
local flagsArray=(
$ninjaFlags "${ninjaFlagsArray[@]}"
${installTargets:-install}
)
echoCmd 'install flags' "${flagsArray[@]}"
TERM=dumb ninja "${flagsArray[@]}"
runHook postInstall
}
if [ -z "${dontUseNinjaBuild-}" -a -z "${buildPhase-}" ]; then
buildPhase=ninjaBuildPhase
fi
if [ -z "${dontUseNinjaCheck-}" -a -z "${checkPhase-}" ]; then
checkPhase=ninjaCheckPhase
fi
if [ -z "${dontUseNinjaInstall-}" -a -z "${installPhase-}" ]; then
installPhase=ninjaInstallPhase
fi