summaryrefslogtreecommitdiffstats
path: root/support/dependencies
diff options
context:
space:
mode:
authorCarlos Santos <casantos@datacom.ind.br>2017-05-07 01:32:19 -0300
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2017-06-24 21:25:45 +0200
commitcacc6d0b610f69a6af5f8a5b2af0032964e20973 (patch)
tree55c9f5648e010a64d35243b9578dd93c57d0a3d2 /support/dependencies
parent77a7a15e4c14d2b39e661dca9b7c94e773b00e93 (diff)
downloadbuildroot-cacc6d0b610f69a6af5f8a5b2af0032964e20973.tar.gz
buildroot-cacc6d0b610f69a6af5f8a5b2af0032964e20973.zip
core: allow check-host-cmake.sh to try several candidates
This is useful on CentOS 7 whose "cmake" package provides cmake 2.8.12, which is too old, but the "cmake3" package (from EPEL) provides version 3.6.3, which is satisfactory. Examples: $ sh support/dependencies/check-host-cmake.sh 2.8 cmake cmake3 /usr/bin/cmake $ sh support/dependencies/check-host-cmake.sh 3.1 cmake cmake3 /usr/bin/cmake3 $ sh support/dependencies/check-host-cmake.sh 3.8 cmake cmake3 (nothing) Signed-off-by: Carlos Santos <casantos@datacom.ind.br> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'support/dependencies')
-rwxr-xr-xsupport/dependencies/check-host-cmake.sh76
1 files changed, 41 insertions, 35 deletions
diff --git a/support/dependencies/check-host-cmake.sh b/support/dependencies/check-host-cmake.sh
index 73bd4edc99..fadeae9f6b 100755
--- a/support/dependencies/check-host-cmake.sh
+++ b/support/dependencies/check-host-cmake.sh
@@ -1,39 +1,45 @@
#!/bin/sh
-version_min="${1}"
-candidate="${2}"
-
-major_min="${version_min%.*}"
-minor_min="${version_min#*.}"
-
-cmake=`which ${candidate}`
-if [ ! -x "${cmake}" ]; then
- # echo nothing: no suitable cmake found
- exit 1
-fi
-
-# Extract version X.Y from versions in the form X.Y or X.Y.Z
-# with X, Y and Z numbers with one or more digits each, e.g.
-# 3.2 -> 3.2
-# 3.2.3 -> 3.2
-# 3.2.42 -> 3.2
-# 3.10 -> 3.10
-# 3.10.4 -> 3.10
-# 3.10.42 -> 3.10
-version="$(${cmake} --version \
- |sed -r -e '/.* ([[:digit:]]+\.[[:digit:]]+).*$/!d;' \
- -e 's//\1/'
- )"
-major="${version%.*}"
-minor="${version#*.}"
-
-if [ ${major} -gt ${major_min} ]; then
- echo "${cmake}"
-else
- if [ ${major} -eq ${major_min} -a ${minor} -ge ${minor_min} ]; then
+# prevent shift error
+[ $# -lt 2 ] && exit 1
+
+major_min="${1%.*}"
+minor_min="${1#*.}"
+
+shift
+
+for candidate; do
+
+ # Try to locate the candidate. Discard it if not located.
+ cmake=`which "${candidate}" 2>/dev/null`
+ [ -n "${cmake}" ] || continue
+
+ # Extract version X.Y from versions in the form X.Y or X.Y.Z
+ # with X, Y and Z numbers with one or more digits each, e.g.
+ # 3.2 -> 3.2
+ # 3.2.3 -> 3.2
+ # 3.2.42 -> 3.2
+ # 3.10 -> 3.10
+ # 3.10.4 -> 3.10
+ # 3.10.42 -> 3.10
+ # Discard the candidate if no version can be obtained
+ version="$(${cmake} --version \
+ |sed -r -e '/.* ([[:digit:]]+\.[[:digit:]]+).*$/!d;' \
+ -e 's//\1/'
+ )"
+ [ -n "${version}" ] || continue
+
+ major="${version%.*}"
+ minor="${version#*.}"
+
+ if [ ${major} -gt ${major_min} ]; then
echo "${cmake}"
- else
- # echo nothing: no suitable cmake found
- exit 1
+ exit
+ elif [ ${major} -eq ${major_min} -a ${minor} -ge ${minor_min} ]; then
+ echo "${cmake}"
+ exit
fi
-fi
+done
+
+# echo nothing: no suitable cmake found
+exit 1
OpenPOWER on IntegriCloud