From 60a86a60efd60a585e6f7f06a6107ba2497d95e3 Mon Sep 17 00:00:00 2001
From: Damiano Amatruda <damiano.amatruda@skywarder.eu>
Date: Fri, 12 Nov 2021 23:28:36 +0100
Subject: [PATCH] [SBS] Do not use Ccache and Ninja if not found

---
 sbs | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/sbs b/sbs
index f02005aca..abd068c07 100755
--- a/sbs
+++ b/sbs
@@ -39,17 +39,23 @@ print_banner() {
 EOF
 }
 
+show_found_deps() {
+    printf "Found Ccache: "; [ $ccache_found ] && echo "yes" || echo "no"
+    printf "Found Ninja: "; [ $ninja_found ] && echo "yes" || echo "no"
+    echo
+}
+
 configure() {
-    mkdir -p "$build_dir" && \
-    cd "$build_dir" && \
+    show_found_deps
+    [ $ccache_found ] && config_ccache="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
+    [ $ninja_found ] && config_ninja="-GNinja"
     cmake \
-        -DCMAKE_C_COMPILER_LAUNCHER=ccache \
-        -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
+        -B "$build_dir" \
+        $config_ccache \
         -DCMAKE_TOOLCHAIN_FILE="$sbs_base/libs/miosix-kernel/miosix/_tools/toolchain.cmake" \
-        -GNinja \
+        $config_ninja \
         $config_verbose \
-        "$source_dir" && \
-    cd "$source_dir"
+        "$source_dir"
 }
 
 clean() { [ -d "$build_dir" ] && cmake --build "$build_dir" $build_jobs --target clean; rm -rf "$build_dir"; }
@@ -93,6 +99,9 @@ build_dir="$source_dir/build"
 config_verbose=
 build_jobs=
 
+ccache_found="$(command -v ccache)"
+ninja_found="$(command -v ninja)"
+
 for arg in "$@"; do
     shift
     case "$arg" in
-- 
GitLab