#!/usr/bin/env bash # # # # sol2 # The MIT License (MIT) # # Copyright (c) 2013-2017 Rapptz, ThePhD, and contributors # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in # the Software without restriction, including without limitation the rights to # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of # the Software, and to permit persons to whom the Software is furnished to do so, # subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Initial and necessary installations sudo apt -y install build-essential zsh ninja-build libreadline6 libreadline6-dev python3 zsh wget curl libcurl3 openssl libexpat1 libexpat1-dev cmake git # # CMake Installation (from script) # This is only necessary if we need cmake of a better version than what's available on the system #CMAKE_VERSION_MAJOR_MINOR=3.10 #CMAKE_VERSION_BUILD=1 #CMAKE_VERSION=$CMAKE_VERSION_MAJOR_MINOR.$CMAKE_VERSION_BUILD #wget https://cmake.org/files/v$CMAKE_VERSION_MAJOR_MINOR/cmake-$CMAKE_VERSION-Linux-x86_64.sh #sudo bash cmake-$CMAKE_VERSION-Linux-x86_64.sh --prefix=/usr/local --exclude-subdir --skip-license # # CMake Installation (from source) #mkdir -p cmake-tmp #cd cmake-tmp #wget https://cmake.org/files/v$CMAKE_VERSION_MAJOR_MINOR/cmake-$CMAKE_VERSION.tar.gz #tar -xzvf cmake-$CMAKE_VERSION.tar.gz #cd cmake-$CMAKE_VERSION/ #./bootstrap --system-libs #make #sudo make install # cd .. # refresh the shell, then print the CMake version to make # sure we've got what we need (need to be 3.6 or better: Ubuntu 16.04 rolls 3.5.1 or somethnig) #exec bash # # LLVM and GCC updates # Grab LLVM or GCC # if we need it # defining both is probably an expotentially terrible idea if [ "$LLVM_VERSION" ] then # get and use LLVM echo "========== detected LLVM_VERSION, attempting to install llvm version $LLVM_VERSION ==========" wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-16.04.tar.xz -O $LLVM_ARCHIVE_PATH mkdir ~/clang-$LLVM_VERSION tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1 export PATH=~/clang+llvm/bin:$PATH export CC=clang export CXX=clang++ elif [ "$GCC_VERSION" ] then # get and use GCC version that we desire echo "========== detected GCC_VERSION, attempting to install gcc version $GCC_VERSION ==========" sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y sudo apt update sudo apt dist-upgrade sudo apt install gcc-$GCC_VERSION g++-$GCC_VERSION sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-$GCC_VERSION 60 --slave /usr/bin/g++ g++ /usr/bin/g++-$GCC_VERSION sudo update-alternatives --config gcc export CC=gcc export CXX=g++ else export CC=gcc export CXX=g++ fi # show the tool and compiler versions we're using cmake --version $CC --version $CXX --version