#!/bin/sh clear export BOOST_ROOT=${PWD}../../external_dependencies/boost export LIB4NEURO_INCLUDE_DIR=${PWD}/../../include # Should we build the examples? (yes/no) BUILD_EXAMPLES=yes # Should we build the unit-tests? (yes/no) BUILD_TESTS=yes # Should we build the lib4neuro library? (yes) BUILD_LIB=yes # C++ compiler CXX_COMPILER="g++" C_COMPILER="gcc" #**********************DO NOT CHANGE BEYOND THIS LINE**************************************** if [ -z ${DEPENDENCIES_LINK_TYPE} ]; then DEPENDENCIES_LINK_TYPE=static; fi if [ -z ${CLEAN_AFTER} ]; then CLEAN_AFTER=yes; fi LINK_TYPE=static if [ ${DEPENDENCIES_LINK_TYPE} = "shared" ] then LINK_TYPE=shared fi CLEAN_AF=yes if [ ${CLEAN_AFTER} = "no" ] then CLEAN_AF=no fi BUILD_ERROR_OCCURED=0 RED='\033[0;31m' CYAN='\033[0;36m' YELLOW='\033[1;33m' GREEN='\033[0;32m' WHITE='\033[1;37m' NC='\033[0m' # No Color echo -e "Building the '${CYAN}lib4neuro${NC}' project for ${WHITE}Debug${NC}" BUILD_SOMETHING=no BUILD_SOMETHING_LIB=no if [ ${BUILD_LIB} = "yes" ] then echo "${CYAN}lib4neuro${NC} build type: ${WHITE}Debug${NC}" echo "${CYAN}lib4neuro${NC} build architecture: ${WHITE}x64${NC}" echo "${CYAN}lib4neuro${NC} will be built in '${YELLOW}build/lib/${NC}'" BUILD_SOMETHING=yes BUILD_SOMETHING_LIB=yes fi if [ ${BUILD_TESTS} = "yes" ] then echo -e "${CYAN}lib4neuro${NC} unit tests will be built in '${YELLOW}build/unit-tests${NC}'" BUILD_SOMETHING=yes BUILD_SOMETHING_LIB=yes fi if [ ${BUILD_EXAMPLES} = "yes" ] then echo -e "${CYAN}lib4neuro${NC} examples will be built in '${YELLOW}build/examples${NC}'" BUILD_SOMETHING=yes BUILD_SOMETHING_LIB=yes fi rm -rf ../../external_dependencies/boost/* rm -rf ../../external_dependencies/exprtk/* # Should we build the lib4neuro library? (yes) if [ ${BUILD_SOMETHING_LIB} = "yes" -a ${BUILD_ERROR_OCCURED} = "0" ] then if [ ${BUILD_LIB} = "yes" ] then ./linux_clean_lib.sh fi if [ ${BUILD_EXAMPLES} = "yes" ] then ./linux_clean_examples.sh fi if [ ${BUILD_TESTS} = "yes" ] then ./linux_clean_tests.sh fi echo -e "Building the '${CYAN}lib4neuro${NC}' project for ${WHITE}Debug${NC} (preparing makefiles)" cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=${CXX_COMPILER} -DCMAKE_C_COMPILER=${C_COMPILER} -DBOOST_LIBRARYDIR=${BOOST_LIBRARYDIR} -DBOOST_INCLUDEDIR=${BOOST_INCLUDEDIR} -DBUILD_TESTS=${BUILD_TESTS} -DBUILD_EXAMPLES=${BUILD_EXAMPLES} -DBUILD_LIB=${BUILD_LIB} -DDEPENDENCIES_LINK_TYPE=${LINK_TYPE} -S . -B build || { echo -e "${RED}Makefile preparation finished with errors${NC}!"; BUILD_ERROR_OCCURED=1; } if [ ${BUILD_ERROR_OCCURED} -eq 0 ] then echo -e "Building the '${CYAN}lib4neuro${NC}' project for ${WHITE}Debug${NC} (building)" cmake --build build --config Debug -- -j ${N_CORES} && echo -e "${GREEN}Build complete${NC}." || { echo -e "${RED}Build finished with errors${NC}!"; BUILD_ERROR_OCCURED=1; } fi fi if [ ${BUILD_ERROR_OCCURED} -eq 1 ] then echo -e "${RED}Build encountered some errors!${NC}" exit 1 fi