Commit 75888f273e9beae91e48e3490e50b4db9c208117

Edward Thomson 2021-01-15T10:29:05

ci: don't use ninja on macOS Ninja is not installed by default on the macOS machines; stop trying to use it. Instead use `make -j` which should be roughly equivalent in performance but supported everywhere.

diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index f101eda..3d2102c 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -153,7 +153,6 @@ jobs:
           env:
             CC: clang
             CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON
-            CMAKE_GENERATOR: Ninja
             PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig
             SKIP_SSH_TESTS: true
             SKIP_NEGOTIATE_TESTS: true
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index 2f56fdb..b52b398 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -112,7 +112,6 @@ jobs:
           env:
             CC: clang
             CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON
-            CMAKE_GENERATOR: Ninja
             PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig
             SKIP_SSH_TESTS: true
             SKIP_NEGOTIATE_TESTS: true
diff --git a/ci/build.sh b/ci/build.sh
index c230e67..5a51f92 100755
--- a/ci/build.sh
+++ b/ci/build.sh
@@ -33,6 +33,9 @@ if [ -f "/etc/debian_version" ]; then
 	(source /etc/lsb-release && echo "${DISTRIB_DESCRIPTION}") | indent
 fi
 
+CORES=$(getconf _NPROCESSORS_ONLN || true)
+echo "Number of cores: ${CORES:-(Unknown)}"
+
 echo "Kernel version:"
 uname -a 2>&1 | indent
 
@@ -64,4 +67,12 @@ echo "##########################################################################
 echo "## Building libgit2"
 echo "##############################################################################"
 
-env PATH="${BUILD_PATH}" "${CMAKE}" --build .
+# Determine parallelism; newer cmake supports `--build --parallel` but
+# we cannot yet rely on that.
+if [ "${CMAKE_GENERATOR}" = "Unix Makefiles" -a "${CORES}" != "" ]; then
+	BUILDER=(make -j ${CORES})
+else
+	BUILDER=("${CMAKE}" --build .)
+fi
+
+env PATH="${BUILD_PATH}" "${BUILDER[@]}"