1
0
Fork 0
mirror of https://github.com/hermitcore/libhermit.git synced 2025-03-09 00:00:03 +01:00
libhermit/cmake/local-cmake.sh
Jonathan Klimt 7977ae3910
changed python to python3
Script is written in python3, all distros should contain python3 but python does not always correspond to python3
2020-10-22 01:08:04 +02:00

69 lines
1.8 KiB
Bash

#!/bin/bash
# which version to fetch
MAJOR="3.7"
MINOR="2"
PLATFORM="Linux-x86_64"
# assemble url for desired version
URL="https://cmake.org/files/v${MAJOR}/cmake-${MAJOR}.${MINOR}-${PLATFORM}.tar.gz"
ARCHIVE="$(basename ${URL})"
DIR="$(basename ${ARCHIVE} .tar.gz)"
relpath() {
# workaround because Ubuntu seems to use an ancient realpath version
# https://stackoverflow.com/questions/2564634/convert-absolute-path-into-relative-path-given-a-current-directory-using-bash#comment12808306_7305217
python3 -c "import os.path; print(os.path.relpath('${2:-$PWD}','$1'))";
}
HERMIT_TOP="$(git rev-parse --show-toplevel)"
HERMIT_CMAKE="${HERMIT_TOP}/cmake"
CMAKE_DIR="${HERMIT_CMAKE}/${DIR}"
CMAKE_DIR_REL="$(relpath ${HERMIT_TOP} ${CMAKE_DIR})"
# make sure we're sourced, not executed
if [ "$0" = "$BASH_SOURCE" ]
then
echo "You have to source this script:"
echo "\$ . $0"
exit
fi
# quit if already in path
echo "$PATH" | grep "${CMAKE_DIR_REL}" &>/dev/null && return
# check if already installed
if which cmake &> /dev/null ; then
if cmake --version | grep "cmake version ${MAJOR}.${MINOR}" &> /dev/null; then
echo "You already have CMake ${MAJOR}.${MINOR}"
return
fi
fi
if [ ! -d "${CMAKE_DIR}" ]
then
echo "-- Downloading CMake"
wget "${URL}" -O "${ARCHIVE}" ||
(echo "Cannot download CMake"; return)
echo "-- Unpacking CMake"
tar -C "${HERMIT_CMAKE}" -xf "${ARCHIVE}" ||
(echo "Cannot unpack CMake archive"; return)
# delete temporary archive again
rm -f "${ARCHIVE}"
# add cmake dir to gitignore
GITIGNORE="${HERMIT_TOP}/.gitignore"
if ! grep "${CMAKE_DIR_REL}" "${GITIGNORE}" &>/dev/null
then
echo "${CMAKE_DIR_REL}/*" >> "${GITIGNORE}"
fi
echo "-- Local CMake v${MAJOR}.${MINOR} installed to ${CMAKE_DIR_REL}"
echo "-- Next time you source this script, no download will be necessary"
fi
export PATH="${CMAKE_DIR}/bin:${PATH}"