summaryrefslogtreecommitdiff
path: root/support/dependencies/check-host-cmake.sh
blob: 9b63b0648d97b28bb243f2b83e25e0799d775c75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/sh

candidate="${1}"
version_min="${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
        echo "${cmake}"
    else
        # echo nothing: no suitable cmake found
        exit 1
    fi
fi