You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.5 KiB
55 lines
1.5 KiB
#!/usr/bin/env sh
|
|
|
|
# This script downloads the CMake binary and installs it in $PREFIX directory
|
|
# (the cmake executable will be in $PREFIX/bin). By default $PREFIX is
|
|
# ~/.local but can we changes with --prefix <PREFIX> argument.
|
|
|
|
# This is mostly suitable for CIs, not end users.
|
|
|
|
set -e
|
|
|
|
VERSION=3.8.1
|
|
|
|
if [ "$1" = "--prefix" ]; then
|
|
PREFIX="$2"
|
|
else
|
|
PREFIX=~/.local
|
|
fi
|
|
|
|
OS=$(uname -s)
|
|
case $OS in
|
|
Linux) SHA256=10ca0e25b7159a03da0c1ec627e686562dc2a40aad5985fd2088eb684b08e491;;
|
|
Darwin) SHA256=cf8cf16eb1281127006507e69bbcfabec2ccbbc3dfb95888c39d578d037569f1;;
|
|
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
|
|
VERSION_SERIES=$(echo $VERSION | awk '{ string=substr($0, 1, 3); print string; }')
|
|
URL=https://cmake.org/files/v$VERSION_SERIES/$FILE
|
|
ERROR=0
|
|
TMPFILE=$(mktemp --tmpdir cmake-$VERSION-$OS-x86_64.XXXXXXXX.tar.gz)
|
|
echo "Downloading CMake ($URL)..."
|
|
curl -s "$URL" > "$TMPFILE"
|
|
|
|
if type -p sha256sum > /dev/null; then
|
|
SHASUM_TOOL="sha256sum"
|
|
else
|
|
SHASUM_TOOL="shasum -a256"
|
|
fi
|
|
|
|
SHASUM=$($SHASUM_TOOL "$TMPFILE")
|
|
if ! (echo "$SHASUM" | grep -q "$SHA256"); then
|
|
echo "Checksum mismatch!"
|
|
echo "Actual: $SHASUM"
|
|
echo "Expected: $SHA256"
|
|
exit 1
|
|
fi
|
|
mkdir -p "$PREFIX"
|
|
tar xzf "$TMPFILE" -C "$PREFIX" --strip 1
|
|
rm $TMPFILE
|
|
fi
|
|
|