diff --git a/buildingcmakes.sh b/buildingcmakes.sh new file mode 100644 index 0000000..99af9b7 --- /dev/null +++ b/buildingcmakes.sh @@ -0,0 +1,270 @@ +#!/bin/bash + +MAIN_FOLDER="$(readlink -f .)" + +printStep() +{ + local comment=$1 + echo " " + echo " !! !! ${comment} !! !! " +} + +buildPackage() +{ + cd ${MAIN_FOLDER} + + echo "cp -rf packages/$1/include/$1 ./include/" + cp -rf packages/$1/include/$1 ./include/ 2>/dev/null + + local headers=`ls include/*.h` + for header in ${headers} + do + if [ -d packages/$1/include/ ] + then + cp -fr ${header} packages/$1/include/ 2>/dev/null + fi + done + + printstep "MAKE $1" + + echo "mkdir ./packages/$1/build" + mkdir -p ./packages/$1/build + + echo "cd ./packages/$1/build" + cd ./packages/$1/build + + cmake .. + + make -j$(nproc) + local libs=`ls *.so` + for lib in ${libs} + do + echo "cp ${lib} ${MAIN_FOLDER}/lib" + cp ${lib} ${MAIN_FOLDER}/lib + done + + cd ${MAIN_FOLDER} +} + +clean() +{ + local packages=`ls packages/` + for package in ${packages} + do + rm -rf packages/${package}/build + rm -rf packages/${package}/lib + done + rm -rf ./build + rm -rf ./lib +} + +taskqueue() +{ + echo "cp -rf packages/tools/include/tools packages/taskqueue/include/" + cp -rf packages/tools/include/tools packages/taskqueue/include/ + buildPackage "taskqueue" +} + +types() +{ + echo "cp -rf packages/tools/include/tools packages/types/include/" + cp -rf packages/tools/include/tools packages/types/include/ + buildPackage "types" +} + +logger() +{ + echo "cp -rf packages/types/include/types packages/logger/include/" + cp -rf packages/types/include/types packages/logger/include/ + buildPackage "logger" +} + +settings() +{ + echo "cp -rf packages/inithelper/include/inithelper packages/settings/include/" + cp -rf packages/inithelper/include/inithelper packages/settings/include/ + echo "cp -rf packages/logger/include/logger packages/settings/include/" + cp -rf packages/logger/include/logger packages/settings/include/ + buildPackage "settings" +} + +cash() +{ + echo "cp -rf packages/settings/include/settings packages/cash/include/" + cp -rf packages/settings/include/settings packages/cash/include/ + echo "cp -rf packages/inithelper/include/inithelper packages/cash/include/" + cp -rf packages/inithelper/include/inithelper packages/cash/include/ + echo "cp -rf packages/logger/include/logger packages/cash/include/" + cp -rf packages/logger/include/logger packages/cash/include/ + echo "cp -rf packages/tools/include/tools packages/cash/include/" + cp -rf packages/tools/include/tools packages/cash/include/ + buildPackage "cash" +} + +legacy() +{ + mkdir -p packages/legacy/lib + + echo "Resolve .so legacy dependecies" + cp ./lib/libsettings.so ./packages/legacy/lib/ + cp ./lib/liblogger.so ./packages/legacy/lib/ + cp ./lib/libinithelper.so ./packages/legacy/lib/ + cp ./lib/libtools.so ./packages/legacy/lib/ + cp ./lib/libtypes.so ./packages/legacy/lib/ + + echo "cp -rf packages/inithelper/include/inithelper/ packages/legacy/legacy/include/" + cp -rf packages/inithelper/include/inithelper/ packages/legacy/legacy/include/ + echo "cp -rf packages/settings/include/settings/ packages/legacy/legacy/include/" + cp -rf packages/settings/include/settings/ packages/legacy/legacy/include/ + + cp -rf packages/legacy/legacy/include ./include/legacy 2>/dev/null + + buildPackage "legacy" + + mv -f packages/legacy/build/selector ${MAIN_FOLDER}/lib/ +} + +mfc() +{ + echo "cp -rf packages/logger/include/logger packages/mfc/include/" + cp -rf packages/logger/include/logger packages/mfc/include/ + buildPackage "mfc" +} + +td() +{ + echo "cp -rf packages/tools/include/tools packages/td/include/" + cp -rf packages/tools/include/tools packages/td/include/ + echo "cp -rf packages/taskqueue/include/taskqueue packages/td/include/" + cp -rf packages/taskqueue/include/taskqueue packages/td/include/ + buildPackage "td" +} + +wdm() +{ + mkdir -p packages/wdm/lib + + echo "Resolve .so wdm dependecies" + cp lib/libsettings.so packages/wdm/lib + cp lib/liblogger.so packages/wdm/lib + cp lib/libinithelper.so packages/wdm/lib + cp lib/libtools.so packages/wdm/lib + cp lib/libtypes.so packages/wdm/lib + cp lib/libintface.so packages/wdm/lib + + echo "cp -rf packages/settings/include/settings packages/wdm/include/" + cp -rf packages/settings/include/settings packages/wdm/include/ + echo "cp -rf packages/logger/include/logger packages/wdm/include/" + cp -rf packages/logger/include/logger packages/wdm/include/ + echo "cp -rf packages/inithelper/include/inithelper/ packages/wdm/include/" + cp -rf packages/inithelper/include/inithelper/ packages/wdm/include/ + echo "cp -rf packages/settings/include/settings/ packages/wdm/include/" + cp -rf packages/settings/include/settings/ packages/wdm/include/ + echo "cp -rf packages/legacy/legacy/include/ packages/wdm/include/legacy" + cp -rf packages/legacy/legacy/include/ packages/wdm/include/legacy + echo "cp -rf packages/math/include/math packages/wdm/include/" + cp -rf packages/math/include/math packages/wdm/include/ + buildPackage "wdm" +} + +buildLibraries() +{ + buildPackage "math" + buildPackage "inithelper" + buildPackage "tools" + taskqueue + types + logger + settings + cash + curtains + legacy + mfc + td + wdm +} + +core() +{ + echo "mkdir ./build" + mkdir ./build + + echo "cd ./build" + cd ./build + + cmake .. + + make -j$(nproc) +} + +buildAll() +{ + buildLibraries + cd ${MAIN_FOLDER} + + echo " " + echo " " + echo " !! !! !! !! CORE !! !! !! !! " + echo " " + echo " " + + core $2 +} + +main() +{ + # Expecting either 'virt' or 'real' in $2 for core + # 'virt' proceeds to build virtual version with emulators + # 'real' proceeds to build production version with real stuff + # + # !! isn't implemented here !! + + mkdir -p ./lib/ + + flag=$1 + if [ -z ${flag} ] + then + buildAll $2 + elif [ "$flag" == "libs" ] + then + buildLibraries + elif [ "$flag" == "core" ] + then + core $2 + elif [ "$flag" == "clean" ] + then + clean + elif [ "$flag" == "taskqueue" ] + then + taskqueue + elif [ "$flag" == "types" ] + then + types + elif [ "$flag" == "logger" ] + then + logger + elif [ "$flag" == "settings" ] + then + settings + elif [ "$flag" == "cash" ] + then + cash + elif [ "$flag" == "legacy" ] + then + legacy + elif [ "$flag" == "mfc" ] + then + mfc + elif [ "$flag" == "td" ] + then + td + elif [ "$flag" == "wdm" ] + then + wdm + elif [ -d "./packages/${flag}" ] + then + buildPackage $flag + fi +} + +main $1 $2