diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-07-14 15:50:11 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-08-14 00:01:17 +0000 |
commit | 69a15dd2dc85051ba1436613805f9286850e0596 (patch) | |
tree | d53cec2bb5b8d07df1d1919b212cb2deb3628cd6 /nixpkgs/pkgs/development/tools/build-managers/wafHook | |
parent | 6941276da135c3eb3b50e0be33d92e7d01ccba9a (diff) | |
parent | beff2f8d75ef2c65017fb25e251337c6bb2e950d (diff) | |
download | nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.gz nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.bz2 nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.lz nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.xz nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.zst nixlib-69a15dd2dc85051ba1436613805f9286850e0596.zip |
Merge commit 'beff2f8d75ef2c65017fb25e251337c6bb2e950d'
v# modified: nixpkgs/pkgs/tools/networking/dhcpcd/default.nix
Diffstat (limited to 'nixpkgs/pkgs/development/tools/build-managers/wafHook')
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/wafHook/default.nix | 10 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/wafHook/setup-hook.sh | 65 |
2 files changed, 75 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/build-managers/wafHook/default.nix b/nixpkgs/pkgs/development/tools/build-managers/wafHook/default.nix new file mode 100644 index 000000000000..4184bd5fe8cd --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/wafHook/default.nix @@ -0,0 +1,10 @@ +{ lib, stdenv, pkgs, python, makeSetupHook, waf }: + +makeSetupHook { + deps = [ python ]; + substitutions = { + inherit waf; + crossFlags = lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system) + ''--cross-compile "--cross-execute=${stdenv.targetPlatform.emulator pkgs}"''; + }; +} ./setup-hook.sh diff --git a/nixpkgs/pkgs/development/tools/build-managers/wafHook/setup-hook.sh b/nixpkgs/pkgs/development/tools/build-managers/wafHook/setup-hook.sh new file mode 100644 index 000000000000..3da86d3201f5 --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/wafHook/setup-hook.sh @@ -0,0 +1,65 @@ +wafConfigurePhase() { + runHook preConfigure + + if ! [ -f "${wafPath:=./waf}" ]; then + echo "copying waf to $wafPath..." + cp @waf@ "$wafPath" + fi + + if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then + wafConfigureFlags="${prefixKey:---prefix=}$prefix $wafConfigureFlags" + fi + + local flagsArray=( + @crossFlags@ + "${flagsArray[@]}" + $wafConfigureFlags "${wafConfigureFlagsArray[@]}" + ${configureTargets:-configure} + ) + echoCmd 'configure flags' "${flagsArray[@]}" + python "$wafPath" "${flagsArray[@]}" + + runHook postConfigure +} + +wafBuildPhase () { + runHook preBuild + + # set to empty if unset + : ${wafFlags=} + + local flagsArray=( + ${enableParallelBuilding:+-j ${NIX_BUILD_CORES}} + $wafFlags ${wafFlagsArray[@]} + $buildFlags ${buildFlagsArray[@]} + ${buildTargets:-build} + ) + + echoCmd 'build flags' "${flagsArray[@]}" + python "$wafPath" "${flagsArray[@]}" + + runHook postBuild +} + +wafInstallPhase() { + runHook preInstall + + if [ -n "$prefix" ]; then + mkdir -p "$prefix" + fi + + local flagsArray=( + $wafFlags ${wafFlagsArray[@]} + $installFlags ${installFlagsArray[@]} + ${installTargets:-install} + ) + + echoCmd 'install flags' "${flagsArray[@]}" + python "$wafPath" "${flagsArray[@]}" + + runHook postInstall +} + +configurePhase=wafConfigurePhase +buildPhase=wafBuildPhase +installPhase=wafInstallPhase |