#!/bin/bash main() { CC=gcc CXX=g++ if [[ "$*" =~ "--help" ]]; then help exit 0; fi n=0 args=() for i in "$@" do case $i in -j=*|--jobs=*) jobs="-j${i#*=}" shift ;; -c=*|--compiler=*) C="${i#*=}" shift ;; *) args[$n]="$i" ((++n)) ;; esac done case "$C" in ("intel"|"icc") CC=icc CXX=icpc ;; ("gcc"|"g++") CC=gcc CXX=g++ ;; ("clang"|"llvm") CC=clang CXX=clang++ ;; *) ;; esac rm -rf build mkdir build pushd build &> /dev/null CC=$CC CXX=$CXX cmake ${args[@]} .. make ${jobs} popd > /dev/null } help() { printf "Usage: ./build.sh \n\n" printf " -c= | --compiler= - Select preferred C/C++ compiler to build\n" printf " -j= | --jobs= - Specifies the number of jobs (commands) to run simultaneously (For faster building)\n\n" } # Initialize main $* # Exit normally exit 0