aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml2
-rwxr-xr-xscripts/install_cmake.sh37
2 files changed, 39 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml
index a50674c1..017f1a61 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -140,9 +140,11 @@ cache:
directories:
- boost_1_57_0
- build
+ - $HOME/.local
install:
- test $TRAVIS_INSTALL_DEPS != On || ./scripts/install_deps.sh
+ - test "$TRAVIS_OS_NAME" != "linux" || ./scripts/install_cmake.sh
- echo -n "$TRAVIS_COMMIT" > commit_hash.txt
before_script:
- test $TRAVIS_EMSCRIPTEN != On || ./scripts/build_emscripten.sh
diff --git a/scripts/install_cmake.sh b/scripts/install_cmake.sh
new file mode 100755
index 00000000..00d013b9
--- /dev/null
+++ b/scripts/install_cmake.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env sh
+
+# This script downloads the CMake binary and installs it in ~/.local directory
+# (the cmake executable will be in ~/.local/bin).
+# This is mostly suitable for CIs, not end users.
+
+set -e
+
+VERSION=3.7.1
+PREFIX=~/.local
+
+OS=$(uname -s)
+case $OS in
+Linux) SHA256=7b4b7a1d9f314f45722899c0521c261e4bfab4a6b532609e37fef391da6bade2;;
+Darwin) SHA256=1851d1448964893fdc5a8c05863326119f397a3790e0c84c40b83499c7960267;;
+esac
+
+
+BIN=$PREFIX/bin
+
+if test -f $BIN/cmake && ($BIN/cmake --version | grep -q "$VERSION"); then
+ echo "CMake $VERSION already installed in $BIN"
+else
+ FILE=cmake-$VERSION-$OS-x86_64.tar.gz
+ URL=https://cmake.org/files/v3.7/$FILE
+ ERROR=0
+ TMPFILE=$(mktemp --tmpdir cmake-$VERSION-$OS-x86_64.XXXXXXXX.tar.gz)
+ echo "Downloading CMake ($URL)..."
+ wget "$URL" -O "$TMPFILE" -nv
+ if ! (shasum -a256 "$TMPFILE" | grep -q "$SHA256"); then
+ echo "Checksum mismatch ($TMPFILE)"
+ exit 1
+ fi
+ mkdir -p "$PREFIX"
+ tar xzf "$TMPFILE" -C "$PREFIX" --strip 1
+ rm $TMPFILE
+fi