[v13,4/6] devtools: fix the missing ninja command error

Message ID 20180625024913.17219-5-gavin.hu@arm.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series Fix the cross compiling errors |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Gavin Hu June 25, 2018, 2:49 a.m. UTC
  On some linux distributions, eg: CentOS, the ninja executable has a
different name: ninja-build, this patch is to check and adapt to it
accordingly.

./devtools/test-meson-builds.sh: line 24: ninja: command not found

Fixes: a55277a788 ("devtools: add test script for meson builds")
Cc: stable@dpdk.org

Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Song Zhu <song.zhu@arm.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 devtools/test-meson-builds.sh | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)
  

Comments

Thomas Monjalon June 27, 2018, 9:13 p.m. UTC | #1
25/06/2018 04:49, Gavin Hu:
> On some linux distributions, eg: CentOS, the ninja executable has a
> different name: ninja-build, this patch is to check and adapt to it
> accordingly.
> 
> ./devtools/test-meson-builds.sh: line 24: ninja: command not found
> 
> Fixes: a55277a788 ("devtools: add test script for meson builds")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Gavin Hu <gavin.hu@arm.com>
> Reviewed-by: Phil Yang <phil.yang@arm.com>
> Reviewed-by: Song Zhu <song.zhu@arm.com>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
> --- a/devtools/test-meson-builds.sh
> +++ b/devtools/test-meson-builds.sh
> +if command -v ninja >/dev/null 2>&1 ; then
> +    ninja_cmd=ninja
> +elif command -v ninja-build >/dev/null 2>&1 ; then
> +    ninja_cmd=ninja-build
> +else
> +    echo "## ERROR: ninja is missing, please install..."

No need of double hash to get attention as it is the last printed line.
Matter of taste, but I prefer more simple (not interpreted) message like:
	"ERROR: ninja is not found"

Or even simpler, no message at all and try with ninja_cmd=ninja as default:

if command -v ninja-build >/dev/null 2>&1 ; then
	ninja_cmd=ninja-build
else
	ninja_cmd=ninja
fi

Will still have the shell message in case of ninja not installed:
	ninja: command not found
  

Patch

diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index f2ad05f32..9bb5b93bd 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -10,6 +10,15 @@ 
 srcdir=$(dirname $(readlink -m $0))/..
 MESON=${MESON:-meson}
 
+if command -v ninja >/dev/null 2>&1 ; then
+    ninja_cmd=ninja
+elif command -v ninja-build >/dev/null 2>&1 ; then
+    ninja_cmd=ninja-build
+else
+    echo "## ERROR: ninja is missing, please install..."
+    exit 1
+fi
+
 build () # <directory> <meson options>
 {
 	builddir=$1
@@ -20,8 +29,8 @@  build () # <directory> <meson options>
 		$MESON $options $srcdir $builddir
 		unset CC
 	fi
-	echo "ninja -C $builddir"
-	ninja -C $builddir
+	echo "$ninja_cmd -C $builddir"
+	$ninja_cmd -C $builddir
 }
 
 # shared and static linked builds with gcc and clang