You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.5 KiB
71 lines
1.5 KiB
#!/bin/sh
|
|
#
|
|
# This scripts attempts to build the project via cov-build utility, and prepare
|
|
# a package for uploading to the coverity scan service.
|
|
#
|
|
# (See http://scan.coverity.com for more info.)
|
|
|
|
set -e
|
|
|
|
# Check presence of coverity static analyzer.
|
|
if ! which cov-build; then
|
|
echo "Utility cov-build not found in PATH."
|
|
exit 1
|
|
fi
|
|
|
|
# Choose a build system (ninja or GNU make).
|
|
if which ninja; then
|
|
BUILD_TOOL=ninja
|
|
GENERATOR=Ninja
|
|
elif which make; then
|
|
BUILD_TOOL=make
|
|
GENERATOR="MSYS Makefiles"
|
|
else
|
|
echo "No suitable build system found."
|
|
exit 1
|
|
fi
|
|
|
|
# Choose a zip tool.
|
|
if which 7za; then
|
|
MKZIP="7za a -r -mx9"
|
|
elif which 7z; then
|
|
MKZIP="7z a -r -mx9"
|
|
elif which zip; then
|
|
MKZIP="zip -r"
|
|
else
|
|
echo "No suitable zip utility found"
|
|
exit 1
|
|
fi
|
|
|
|
# Change dir to project root.
|
|
cd `dirname "$0"`/..
|
|
|
|
CWD=`pwd`
|
|
ROOT_DIR="$CWD"
|
|
BUILD_DIR="$CWD/coverity"
|
|
OUTPUT="$CWD/cov-int.zip"
|
|
|
|
# Sanity checks.
|
|
if [ ! -x "$ROOT_DIR/scripts/coverity.sh" ]; then
|
|
echo "There is some path mismatch."
|
|
exit 1
|
|
fi
|
|
if [ -e "$BUILD_DIR" ]; then
|
|
echo "Path $BUILD_DIR already exists. Delete it and retry."
|
|
exit 1
|
|
fi
|
|
if [ -e "$OUTPUT" ]; then
|
|
echo "Path $OUTPUT already exists. Delete it and retry."
|
|
exit 1
|
|
fi
|
|
|
|
# Build the project with the Coverity analyzes enabled.
|
|
mkdir -p "$BUILD_DIR"
|
|
cd "$BUILD_DIR"
|
|
cmake -G "$GENERATOR" "$ROOT_DIR"
|
|
cov-build --dir cov-int "$BUILD_TOOL"
|
|
$MKZIP "$OUTPUT" "cov-int"
|
|
cd "$ROOT_DIR"
|
|
rm -rf "$BUILD_DIR"
|
|
|