From b35de00e5c89fac3f6575d5ed109b7ed58d058ad Mon Sep 17 00:00:00 2001
From: Davide Basso <davide.basso@skywarder.eu>
Date: Fri, 17 Jan 2025 20:35:14 +0100
Subject: [PATCH] [SBS] Fix nproc making it crossplatform

---
 sbs | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/sbs b/sbs
index ac46dcad5..65c57c392 100755
--- a/sbs
+++ b/sbs
@@ -58,6 +58,13 @@ VERBOSE_FILENAME=".sbs_verbose"
 BUILD_DEFAULT_DIRNAME="build"
 BUILD_HOST_DIRNAME="build-host"
 
+# Logical cores count, cross platform
+N_PROC=$(
+    nproc 2>/dev/null ||                   # Linux
+    sysctl -n hw.logicalcpu 2>/dev/null || # macOS 
+    getconf _NPROCESSORS_ONLN 2>/dev/null  # POSIX
+)
+
 ################################################################################
 ##############################    Global States   ##############################
 ################################################################################
@@ -465,7 +472,7 @@ lint_clangformat() {
     # count files and spread them evenly across cores: files / nproc + 1
     declare files_per_proc=$(
         echo "$files" | wc -l | \
-        xargs -I {} bash -c "expr \( {} / $(nproc) \) + 1"
+        xargs -I {} bash -c "expr \( {} / $N_PROC \) + 1"
     )
 
     echo "$files" | xargs -n $files_per_proc -P 0 clang-format "${opts[@]}"
@@ -750,7 +757,7 @@ format() {
     # count files and spread them evenly across cores: files / nproc + 1
     declare files_per_proc=$(
         echo "$files" | wc -l | \
-        xargs -I {} bash -c "expr \( {} / $(nproc) \) + 1"
+        xargs -I {} bash -c "expr \( {} / $N_PROC \) + 1"
     )
 
     echo "$files" | xargs -n $files_per_proc -P 0 clang-format "${opts[@]}"
-- 
GitLab