Files
Resource/Tools/m5plus_install_cmake.sh
2023-05-19 21:37:50 +08:00

110 lines
2.0 KiB
Bash

#!/bin/bash
#set -x
set -e
TOP_DIR=/opt/m5plus
TOP_BIN_DIR=/opt/m5plus/bin
CMAKE_VERSION=cmake-3.26.3
CMAKE_TAR=cmake-3.26.3-linux-x86_64
CMAKE_TAR_PKG=${CMAKE_TAR}.tar.gz
CMAKE_DIR=${TOP_DIR}/${CMAKE_TAR}
CMAKE_BIN_DIR=${TOP_DIR}/${CMAKE_TAR}/bin
if [ -z "$1" ]; then
echo "CROSS_COMPILER_PATH=$CMAKE_BIN_DIR"
if [ -f $CMAKE_DIR/version ]; then
if [ -n "`grep ${CMAKE_VERSION} $CMAKE_DIR/version`" ]; then
echo "CMake Tools has been installed yet!" >&2
exit 0
fi
else
echo "Do not have version file" >&2
fi
eval $0 force
[ $? == 0 ] && exit 0
echo "sorry, you must have super privilege!" >&2
select choose in 'I have root passwd' 'I have sudo privilege' 'Try again' 'Ignore' 'Aboart'
do
case $choose in
*root*)
su -c "$0 force"
[ $? == 0 ] && break
;;
*sudo*)
sudo $0 force
[ $? == 0 ] && break
;;
Try*)
eval $0 force
[ $? == 0 ] && break
;;
Ignore)
exit 0
;;
Aboart)
exit 1
;;
*)
echo "Invalid select, please try again!" >&2
continue
;;
esac
echo "Install CMake tools failed!" >&2
done
exit 0
fi
mkdir -pv ${TOP_DIR}
[ $? != 0 ] && exit 1
if [ -d ${CMAKE_DIR} ]; then
echo "Delete exist directory..." >&2
rm ${CMAKE_DIR} -rf
else
mkdir -pv $CMAKE_DIR
fi
echo "Extract CMake tools ..." >&2
tar -xf ${CMAKE_TAR_PKG} -C $TOP_DIR
[ $? != 0 ] && exit 1
mkdir -pv ${TOP_BIN_DIR}
[ $? != 0 ] && exit 1
# creat link
for file in `ls ${CMAKE_BIN_DIR}/${CMAKE_PREFIX}*`; do
ln `realpath --relative-to=${TOP_BIN_DIR} ${CMAKE_BIN_DIR}`/${file##*/} ${TOP_BIN_DIR}/${CMAKE_PREFIX_LN}${file##*${CMAKE_PREFIX}} -sfv
[ $? != 0 ] && exit 1
done
sed -i 's/${CMAKE_BIN_DIR}[:]//g' /etc/profile
[ $? != 0 ] && exit 1
if [ ! -f ${CMAKE_DIR}/version ]; then
echo "${CMAKE_VERSION}" > ${CMAKE_DIR}/version
fi
if [ -z "`grep "${TOP_BIN_DIR}" < /etc/profile`" ]; then
echo "export CMake tool path ${TOP_BIN_DIR}" >&2
cat >> /etc/profile << EOF
# `date`
# M5plus CMake tool path
export PATH="${CMAKE_BIN_DIR}:\$PATH"
EOF
[ $? != 0 ] && exit 1
else
echo "skip export CMake tool path" >&2
fi
exit 0