2023-07-16 15:26:29 +01:00
|
|
|
{ lib
|
|
|
|
, stdenv
|
|
|
|
, fetchFromGitLab
|
2023-08-23 02:31:36 +01:00
|
|
|
, callPackage
|
2023-07-16 15:26:29 +01:00
|
|
|
, ensureNewerSourcesForZipFilesHook
|
|
|
|
, python3
|
2019-06-17 15:23:52 +01:00
|
|
|
# optional list of extra waf tools, e.g. `[ "doxygen" "pytest" ]`
|
2023-07-16 15:26:29 +01:00
|
|
|
, extraTools ? []
|
2019-06-17 15:23:52 +01:00
|
|
|
}:
|
2023-07-16 15:26:29 +01:00
|
|
|
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
2019-08-15 13:41:18 +01:00
|
|
|
pname = "waf";
|
2024-07-18 19:04:27 +01:00
|
|
|
version = "2.1.2";
|
2016-02-10 19:34:05 +00:00
|
|
|
|
2018-08-09 19:31:26 +01:00
|
|
|
src = fetchFromGitLab {
|
|
|
|
owner = "ita1024";
|
|
|
|
repo = "waf";
|
2023-07-16 15:26:29 +01:00
|
|
|
rev = "waf-${finalAttrs.version}";
|
2024-07-18 19:04:27 +01:00
|
|
|
hash = "sha256-/7V+GA3YBhdaJkDlZ1k4IUYkgh0yuTG09G+frnnMoIw=";
|
2016-02-10 19:34:05 +00:00
|
|
|
};
|
|
|
|
|
2023-07-16 15:26:29 +01:00
|
|
|
nativeBuildInputs = [
|
|
|
|
ensureNewerSourcesForZipFilesHook
|
|
|
|
python3
|
|
|
|
];
|
|
|
|
|
|
|
|
buildInputs = [
|
|
|
|
# waf executable uses `#!/usr/bin/env python`
|
|
|
|
python3
|
|
|
|
];
|
2021-10-16 18:11:28 +01:00
|
|
|
|
2023-07-16 15:26:29 +01:00
|
|
|
strictDeps = true;
|
2016-02-10 19:34:05 +00:00
|
|
|
|
|
|
|
configurePhase = ''
|
2023-07-16 15:26:29 +01:00
|
|
|
runHook preConfigure
|
|
|
|
|
2016-02-10 19:34:05 +00:00
|
|
|
python waf-light configure
|
2023-07-16 15:26:29 +01:00
|
|
|
|
|
|
|
runHook postConfigure
|
2016-02-10 19:34:05 +00:00
|
|
|
'';
|
2023-07-16 15:26:29 +01:00
|
|
|
|
|
|
|
buildPhase = let
|
|
|
|
extraToolsList =
|
|
|
|
lib.optionalString (extraTools != [])
|
|
|
|
"--tools=\"${lib.concatStringsSep "," extraTools}\"";
|
|
|
|
in
|
|
|
|
''
|
|
|
|
runHook preBuild
|
|
|
|
|
|
|
|
python waf-light build ${extraToolsList}
|
|
|
|
|
|
|
|
runHook postBuild
|
2016-02-10 19:34:05 +00:00
|
|
|
'';
|
2023-07-16 15:26:29 +01:00
|
|
|
|
2016-02-10 19:34:05 +00:00
|
|
|
installPhase = ''
|
2023-07-16 15:26:29 +01:00
|
|
|
runHook preInstall
|
|
|
|
|
2020-03-06 05:08:06 +00:00
|
|
|
install -D waf $out/bin/waf
|
2016-02-10 19:34:05 +00:00
|
|
|
|
2023-07-16 15:26:29 +01:00
|
|
|
runHook postInstall
|
|
|
|
'';
|
2021-10-16 18:11:28 +01:00
|
|
|
|
2023-08-23 02:31:36 +01:00
|
|
|
passthru = {
|
|
|
|
inherit python3 extraTools;
|
|
|
|
hook = callPackage ./hook.nix {
|
|
|
|
waf = finalAttrs.finalPackage;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-07-16 15:26:29 +01:00
|
|
|
meta = {
|
|
|
|
homepage = "https://waf.io";
|
|
|
|
description = "Meta build system";
|
2023-08-16 01:57:59 +01:00
|
|
|
changelog = "https://gitlab.com/ita1024/waf/blob/${finalAttrs.version}/ChangeLog";
|
2023-07-16 15:26:29 +01:00
|
|
|
license = lib.licenses.bsd3;
|
|
|
|
mainProgram = "waf";
|
2024-02-09 01:06:02 +00:00
|
|
|
maintainers = with lib.maintainers; [ AndersonTorres ];
|
2023-07-16 15:26:29 +01:00
|
|
|
inherit (python3.meta) platforms;
|
2023-08-16 01:57:59 +01:00
|
|
|
sourceProvenance = [ lib.sourceTypes.fromSource ];
|
2016-02-10 19:34:05 +00:00
|
|
|
};
|
2023-07-16 15:26:29 +01:00
|
|
|
})
|