blob: fadeae9f6b2c059d955e05929f11ea878a4791d1 [file] [log] [blame]
#!/bin/sh
# 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}"
exit
elif [ ${major} -eq ${major_min} -a ${minor} -ge ${minor_min} ]; then
echo "${cmake}"
exit
fi
done
# echo nothing: no suitable cmake found
exit 1