Tests now work for FreeBSD
This commit is contained in:
@@ -24,6 +24,17 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|||||||
TEST_DIR="$SCRIPT_DIR/test"
|
TEST_DIR="$SCRIPT_DIR/test"
|
||||||
BUILD_DIR="$TEST_DIR/build"
|
BUILD_DIR="$TEST_DIR/build"
|
||||||
|
|
||||||
|
# Portable CPU count -- BSD make requires a number after -j, GNU make does not
|
||||||
|
cpu_count() {
|
||||||
|
if command -v nproc &>/dev/null; then
|
||||||
|
nproc
|
||||||
|
elif command -v sysctl &>/dev/null; then
|
||||||
|
sysctl -n hw.ncpu
|
||||||
|
else
|
||||||
|
echo 4
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Color output
|
# Color output
|
||||||
if [[ -t 1 ]]; then
|
if [[ -t 1 ]]; then
|
||||||
RED=$'\033[0;31m'; GRN=$'\033[0;32m'; CYN=$'\033[0;36m'
|
RED=$'\033[0;31m'; GRN=$'\033[0;32m'; CYN=$'\033[0;36m'
|
||||||
@@ -67,6 +78,8 @@ if ! command -v cmake &>/dev/null; then
|
|||||||
echo " Install:" >&2
|
echo " Install:" >&2
|
||||||
if [[ "$(uname)" == "Darwin" ]]; then
|
if [[ "$(uname)" == "Darwin" ]]; then
|
||||||
echo " brew install cmake" >&2
|
echo " brew install cmake" >&2
|
||||||
|
elif [[ "$(uname)" == "FreeBSD" ]]; then
|
||||||
|
echo " sudo pkg install cmake" >&2
|
||||||
else
|
else
|
||||||
echo " sudo apt install cmake (Debian/Ubuntu)" >&2
|
echo " sudo apt install cmake (Debian/Ubuntu)" >&2
|
||||||
echo " sudo dnf install cmake (Fedora)" >&2
|
echo " sudo dnf install cmake (Fedora)" >&2
|
||||||
@@ -102,7 +115,7 @@ if [[ ! -f "$BUILD_DIR/CMakeCache.txt" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
info "Building tests..."
|
info "Building tests..."
|
||||||
cmake --build "$BUILD_DIR" --parallel 2>&1 | \
|
cmake --build "$BUILD_DIR" --parallel "$(cpu_count)" 2>&1 | \
|
||||||
while IFS= read -r line; do echo " $line"; done
|
while IFS= read -r line; do echo " $line"; done
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
@@ -17,6 +17,17 @@ set -euo pipefail
|
|||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
BUILD_DIR="$SCRIPT_DIR/build"
|
BUILD_DIR="$SCRIPT_DIR/build"
|
||||||
|
|
||||||
|
# Portable CPU count -- BSD make requires a number after -j, GNU make does not
|
||||||
|
cpu_count() {
|
||||||
|
if command -v nproc &>/dev/null; then
|
||||||
|
nproc
|
||||||
|
elif command -v sysctl &>/dev/null; then
|
||||||
|
sysctl -n hw.ncpu
|
||||||
|
else
|
||||||
|
echo 4
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Color output
|
# Color output
|
||||||
if [[ -t 1 ]]; then
|
if [[ -t 1 ]]; then
|
||||||
RED=$'\033[0;31m'; GRN=$'\033[0;32m'; CYN=$'\033[0;36m'
|
RED=$'\033[0;31m'; GRN=$'\033[0;32m'; CYN=$'\033[0;36m'
|
||||||
@@ -40,7 +51,7 @@ for arg in "$@"; do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
command -v cmake &>/dev/null || die "cmake not found. Install: sudo apt install cmake"
|
command -v cmake &>/dev/null || die "cmake not found. Install: pkg install cmake (FreeBSD), apt install cmake (Debian/Ubuntu), dnf install cmake (Fedora)"
|
||||||
command -v g++ &>/dev/null || command -v clang++ &>/dev/null || die "No C++ compiler found"
|
command -v g++ &>/dev/null || command -v clang++ &>/dev/null || die "No C++ compiler found"
|
||||||
command -v git &>/dev/null || die "git not found (needed to fetch Google Test)"
|
command -v git &>/dev/null || die "git not found (needed to fetch Google Test)"
|
||||||
|
|
||||||
@@ -55,7 +66,7 @@ if [[ ! -f "$BUILD_DIR/CMakeCache.txt" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
info "Building tests..."
|
info "Building tests..."
|
||||||
cmake --build "$BUILD_DIR" --parallel
|
cmake --build "$BUILD_DIR" --parallel "$(cpu_count)"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
info "${BLD}Running tests...${RST}"
|
info "${BLD}Running tests...${RST}"
|
||||||
|
|||||||
Reference in New Issue
Block a user