|
@@ -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
|