YouCompleteMe/install.sh

89 lines
2.0 KiB
Bash
Raw Normal View History

2013-02-06 11:16:49 -05:00
#!/usr/bin/env bash
set -e
function cmake_install {
if [[ `uname -s` == "Darwin" ]]; then
homebrew_cmake_install
else
linux_cmake_install
fi
}
function homebrew_cmake_install {
if [[ `which brew &> /dev/null` ]]; then
brew install cmake
else
echo "Homebrew was not found installed in your system."
echo "Go to http://mxcl.github.com/homebrew/ and follow the instructions."
echo "Or install CMake somehow and retry."
2013-02-06 11:16:49 -05:00
exit 1
fi
}
function python_finder {
python_library="-DPYTHON_LIBRARY="
python_include="-DPYTHON_INCLUDE_DIR="
# The CMake 'FindPythonLibs' Module does not work properly.
# So we are forced to do its job for it.
python_prefix=$(python-config --prefix | sed 's/^[ \t]*//')
if [ -f "${python_prefix}/Python" ]; then
python_library+="${python_prefix}/Python"
python_include+="${python_prefix}/Headers"
else
2013-02-17 13:39:17 -05:00
which_python=$(python -c 'import sys;print(sys.version)' | sed 's/^[ \t]*//')
which_python="python${which_python:0:3}"
lib_python="${python_prefix}/lib/libpython${which_python}"
if [ -f "${lib_python}.a" ]; then
python_library+="${lib_python}.a"
else
python_library+="${lib_python}.dylib"
fi
python_include+="${python_prefix}/include/${which_python}"
fi
echo "${python_library} ${python_include}"
}
2013-02-06 11:16:49 -05:00
function install {
ycm_dir=`pwd`
2013-02-07 22:19:55 -05:00
build_dir=`mktemp -d -t ycm_build.XXXX`
2013-02-06 11:16:49 -05:00
pushd $build_dir
cmake -G "Unix Makefiles" $(python_finder) $1 . $ycm_dir/cpp
2013-02-06 15:00:58 -05:00
make ycm_core
2013-02-06 11:16:49 -05:00
popd
}
function linux_cmake_install {
echo "Please install CMake using your package manager and retry."
2013-02-06 11:16:49 -05:00
exit 1
}
2013-02-07 21:24:25 -05:00
function usage {
echo "Usage: $0 [--clang-completer]"
exit 0
2013-02-07 21:24:25 -05:00
}
if [[ $# -gt 1 ]]; then
usage
fi
case "$1" in
--clang-completer)
cmake_args='-DUSE_CLANG_COMPLETER=ON'
;;
2013-02-07 21:24:25 -05:00
'')
cmake_args=''
;;
2013-02-07 21:24:25 -05:00
*)
usage
;;
esac
2013-02-06 11:16:49 -05:00
if [[ ! -z `which cmake &> /dev/null` ]]; then
echo "CMake is required to build YouCompleteMe."
2013-02-06 11:16:49 -05:00
cmake_install
fi
install $cmake_args