waf: Added support for optional extra tools (#63042)

The list of tools `withTools` are included as extra tools when building
waf.

Example:

mywaf = callPackage ../development/tools/build-managers/waf {
python = python3;
withTools = [ "doxygen" ];
};

xbreak 2b513280 10a25e9b

Changed files
+9 -3
pkgs
development
tools
build-managers
+9 -3
pkgs/development/tools/build-managers/waf/default.nix
···
-
{ stdenv, fetchFromGitLab, fetchpatch, python, ensureNewerSourcesForZipFilesHook }:
-
+
{ stdenv, fetchFromGitLab, fetchpatch, python, ensureNewerSourcesForZipFilesHook
+
# optional list of extra waf tools, e.g. `[ "doxygen" "pytest" ]`
+
, withTools ? null
+
}:
+
let
+
wafToolsArg = with stdenv.lib.strings;
+
optionalString (!isNull withTools) " --tools=\"${concatStringsSep "," withTools}\"";
+
in
stdenv.mkDerivation rec {
name = "waf-${version}";
version = "2.0.15";
···
python waf-light configure
'';
buildPhase = ''
-
python waf-light build
+
python waf-light build${wafToolsArg}
'';
installPhase = ''
install waf $out