From c6791b211767e8f4e4b1e90bc61b42b814f2e920 Mon Sep 17 00:00:00 2001 From: Andrew Childs Date: Sun, 9 Feb 2020 15:29:53 +0900 Subject: [PATCH 1/3] wafHook: allow overriding phases This makes the wafHook a lot closer to the structure of standard hooks like cmake and ninja. --- .../tools/build-managers/wafHook/setup-hook.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/build-managers/wafHook/setup-hook.sh b/pkgs/development/tools/build-managers/wafHook/setup-hook.sh index 3da86d3201f5..0cce57677bde 100644 --- a/pkgs/development/tools/build-managers/wafHook/setup-hook.sh +++ b/pkgs/development/tools/build-managers/wafHook/setup-hook.sh @@ -22,6 +22,10 @@ wafConfigurePhase() { runHook postConfigure } +if [ -z "${dontUseWafConfigure-}" -a -z "${configurePhase-}" ]; then + configurePhase=wafConfigurePhase +fi + wafBuildPhase () { runHook preBuild @@ -41,6 +45,10 @@ wafBuildPhase () { runHook postBuild } +if [ -z "${dontUseWafBuild-}" -a -z "${buildPhase-}" ]; then + buildPhase=wafBuildPhase +fi + wafInstallPhase() { runHook preInstall @@ -60,6 +68,6 @@ wafInstallPhase() { runHook postInstall } -configurePhase=wafConfigurePhase -buildPhase=wafBuildPhase -installPhase=wafInstallPhase +if [ -z "${dontUseWafInstall-}" -a -z "${installPhase-}" ]; then + installPhase=wafInstallPhase +fi From 032d5e7e837eaa295f2afec87a39a4ced2c1bc97 Mon Sep 17 00:00:00 2001 From: Andrew Childs Date: Sun, 9 Feb 2020 15:53:46 +0900 Subject: [PATCH 2/3] wafHook: make crossFlags optional The convention of `--cross-compile` and `--cross-execute` is common enough that it seems like a reasonable default. However there are projects like mpv which do not use these flags, and rightfully fails to configure when passed unexpected flags. --- pkgs/development/tools/build-managers/wafHook/setup-hook.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/tools/build-managers/wafHook/setup-hook.sh b/pkgs/development/tools/build-managers/wafHook/setup-hook.sh index 0cce57677bde..a9496b76b21c 100644 --- a/pkgs/development/tools/build-managers/wafHook/setup-hook.sh +++ b/pkgs/development/tools/build-managers/wafHook/setup-hook.sh @@ -11,11 +11,13 @@ wafConfigurePhase() { fi local flagsArray=( - @crossFlags@ "${flagsArray[@]}" $wafConfigureFlags "${wafConfigureFlagsArray[@]}" ${configureTargets:-configure} ) + if [ -z "${dontAddWafCrossFlags:-}" ]; then + flagsArray+=(@crossFlags@) + fi echoCmd 'configure flags' "${flagsArray[@]}" python "$wafPath" "${flagsArray[@]}" From 03ffda3d1e5db136543f4d5c1aa196bb8cd93774 Mon Sep 17 00:00:00 2001 From: Andrew Childs Date: Sun, 9 Feb 2020 16:13:43 +0900 Subject: [PATCH 3/3] wafHoook: fix whitespace --- pkgs/development/tools/build-managers/wafHook/setup-hook.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/build-managers/wafHook/setup-hook.sh b/pkgs/development/tools/build-managers/wafHook/setup-hook.sh index a9496b76b21c..8d10cc6b4e95 100644 --- a/pkgs/development/tools/build-managers/wafHook/setup-hook.sh +++ b/pkgs/development/tools/build-managers/wafHook/setup-hook.sh @@ -61,7 +61,7 @@ wafInstallPhase() { local flagsArray=( $wafFlags ${wafFlagsArray[@]} $installFlags ${installFlagsArray[@]} - ${installTargets:-install} + ${installTargets:-install} ) echoCmd 'install flags' "${flagsArray[@]}"