Browse Source

Meta: Read MAKEJOBS to limit jobs for ninja in serenity.sh

The default behavior of using all cores will still apply if no
MAKEJOBS variable is supplied.
davidot 3 years ago
parent
commit
3192cabc0e
2 changed files with 9 additions and 2 deletions
  1. 3 0
      Meta/CMake/processor-count.cmake
  2. 6 2
      Meta/serenity.sh

+ 3 - 0
Meta/CMake/processor-count.cmake

@@ -0,0 +1,3 @@
+include(ProcessorCount)
+ProcessorCount(N)
+message("${N}")

+ 6 - 2
Meta/serenity.sh

@@ -218,12 +218,16 @@ build_target() {
         # invoked superbuild for serenity target that doesn't set -DBUILD_LAGOM=ON
         cmake -S "$SERENITY_SOURCE_DIR/Meta/Lagom" -B "$BUILD_DIR" -DBUILD_LAGOM=ON
     fi
+
+    # Get either the environement MAKEJOBS or all processors via CMake
+    [ -z "$MAKEJOBS" ] && MAKEJOBS=$(cmake -P "$SERENITY_SOURCE_DIR/Meta/CMake/processor-count.cmake")
+
     # With zero args, we are doing a standard "build"
     # With multiple args, we are doing an install/image/run
     if [ $# -eq 0 ]; then
-        cmake --build "$SUPER_BUILD_DIR"
+        CMAKE_BUILD_PARALLEL_LEVEL="$MAKEJOBS" cmake --build "$SUPER_BUILD_DIR"
     else
-        ninja -C "$BUILD_DIR" -- "$@"
+        ninja -j "$MAKEJOBS" -C "$BUILD_DIR" -- "$@"
     fi
 }