blob: 17d40b36a5c74141afcdd386180918bdded9df26 (
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#!/bin/sh
set -o errexit # Exit the script with error if any of the commands fail
# CMake version we fallback to and download when cmake doesn't exist on the
# host system.
CMAKE_MAJOR_VER=3
CMAKE_MINOR_VER=11
CMAKE_PATCH_VER=0
CMAKE_VERSION=$CMAKE_MAJOR_VER.$CMAKE_MINOR_VER.$CMAKE_PATCH_VER
# Adapted 'find_cmake' from mongo-c-driver evergreen infrastructure:
# https://github.com/mongodb/mongo-c-driver/blob/master/.evergreen/find-cmake.sh
find_cmake ()
{
if [ ! -z "$CMAKE" ]; then
return 0
elif [ -f "/Applications/CMake.app/Contents/bin/cmake" ]; then
CMAKE="/Applications/CMake.app/Contents/bin/cmake"
CTEST="/Applications/CMake.app/Contents/bin/ctest"
elif [ -f "/opt/cmake/bin/cmake" ]; then
CMAKE="/opt/cmake/bin/cmake"
CTEST="/opt/cmake/bin/ctest"
elif command -v cmake 2>/dev/null; then
CMAKE=cmake
CTEST=ctest
elif uname -a | grep -iq 'x86_64 GNU/Linux'; then
if [ -f "$(pwd)/cmake-$CMAKE_VERSION/bin/cmake" ]; then
CMAKE="$(pwd)/cmake-$CMAKE_VERSION/bin/cmake"
CTEST="$(pwd)/cmake-$CMAKE_VERSION/bin/ctest"
return 0
fi
curl --retry 5 https://cmake.org/files/v$CMAKE_MAJOR_VER.$CMAKE_MINOR_VER/cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz -sS --max-time 120 --fail --output cmake.tar.gz
mkdir cmake-$CMAKE_VERSION
tar xzf cmake.tar.gz -C cmake-$CMAKE_VERSION --strip-components=1
CMAKE=$(pwd)/cmake-$CMAKE_VERSION/bin/cmake
CTEST=$(pwd)/cmake-$CMAKE_VERSION/bin/ctest
elif [ -f "/cygdrive/c/cmake/bin/cmake" ]; then
CMAKE="/cygdrive/c/cmake/bin/cmake"
CTEST="/cygdrive/c/cmake/bin/ctest"
elif [ -f "$(readlink -f cmake-install)"/bin/cmake ]; then
# If we have a custom cmake install from an earlier build step.
CMAKE="$(readlink -f cmake-install)/bin/cmake"
CTEST="$(readlink -f cmake-install)/bin/ctest"
fi
if [ -z "$CMAKE" -o -z "$( $CMAKE --version 2>/dev/null )" ]; then
# Some images have no cmake yet, or a broken cmake (see: BUILD-8570)
echo "-- MAKE CMAKE --"
CMAKE_INSTALL_DIR=$(readlink -f cmake-install)
if [ -d cmake-$CMAKE_VERSION ]; then rm -r cmake-$CMAKE_VERSION; fi
curl --retry 5 https://cmake.org/files/v$CMAKE_MAJOR_VER.$CMAKE_MINOR_VER/cmake-$CMAKE_VERSION.tar.gz -sS --max-time 120 --fail --output cmake.tar.gz
tar xzf cmake.tar.gz
cd cmake-$CMAKE_VERSION
./bootstrap --prefix="${CMAKE_INSTALL_DIR}"
make -j8
make install
cd ..
CMAKE="${CMAKE_INSTALL_DIR}/bin/cmake"
CTEST="${CMAKE_INSTALL_DIR}/bin/ctest"
echo "-- DONE MAKING CMAKE --"
fi
echo "=========================================================="
echo "CMake and CTest environment variables, paths and versions:"
echo "CMAKE: ${CMAKE}"
echo "CTEST: ${CTEST}"
command -v ${CMAKE}
command -v ${CTEST}
${CMAKE} --version
${CTEST} --version
echo "=========================================================="
}
find_cmake
|