From 64d8d3751770ee74fc46010b5617608918c8193d Mon Sep 17 00:00:00 2001 From: James Edmondson Date: Sun, 31 Dec 2023 23:37:05 -0800 Subject: [PATCH] Cmake update (#166) * * Adding option to cmake.sh for g++ * * Update cmake.sh to only ldconfig if not MAC * * Updated cmake.sh script to parallelize properly on Mac and Linux * Moved cmake.sh script to scripts directory instead of scripts/linux since it covers both mac and linux --- scripts/{linux => }/cmake.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) rename scripts/{linux => }/cmake.sh (90%) diff --git a/scripts/linux/cmake.sh b/scripts/cmake.sh similarity index 90% rename from scripts/linux/cmake.sh rename to scripts/cmake.sh index 59b3b62a6..f7bcda46d 100755 --- a/scripts/linux/cmake.sh +++ b/scripts/cmake.sh @@ -12,6 +12,7 @@ SSL='OFF' CLEAN=0 PREREQS=0 MAC=0 +PROCESSES=1 echo "Parsing args..." for var in "$@" @@ -48,6 +49,7 @@ do echo " clang build using clang++ and clang" echo " clean run 'make clean' before builds (default)" echo " docs generate API documentation" + echo " mac build for MacOS (needs to be native/host OS)" echo " gcc use gcc/g++" echo " tests build test executables" echo " ssl build with SSL support" @@ -57,6 +59,12 @@ do done +if [ $MAC -eq 1 ]; then + PROCESSES=$(sysctl -n hw.ncpu) +else + PROCESSES=$(nproc) +fi + echo SCRIPT_PATH=$SCRIPT_PATH echo MADARA_PATH=$MADARA_PATH @@ -90,10 +98,11 @@ if [ $PREREQS -eq 1 ]; then fi fi +echo "Building with $PROCESSES threads..." echo cmake -DCMAKE_CXX_COMPILER=${CPP_COMPILER} -DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -Dmadara_TESTS=${TESTS} -Dmadara_SSL=${SSL} -D'CMAKE_INSTALL_PREFIX=/usr/local' -DCMAKE_PREFIX_PATH=$MADARA_PATH/install .. cmake -D'CMAKE_INSTALL_PREFIX=/usr/local' -Dmadara_TESTS=$TESTS -Dmadara_SSL=$SSL -DCMAKE_PREFIX_PATH=$MADARA_PATH/install -DCMAKE_CXX_COMPILER=$CPP_COMPILER -DCMAKE_C_COMPILER=$C_COMPILER -DCMAKE_BUILD_TYPE=$BUILD_TYPE .. -cmake --build . --config debug -j$(nproc) -cmake --build . --config release +cmake --build . --config debug -j $PROCESSES +cmake --build . --config release -j $PROCESSES sudo cmake --build . --target install --config release sudo cmake --build . --target install --config debug