Set the exit code properly, "$?" does not work after "if !". Move "set -e" to after format checks.
142 lines
2.9 KiB
Bash
142 lines
2.9 KiB
Bash
#!/bin/bash
|
|
|
|
# This script is to be used in .travis.yaml from the project root directory, do not use it from somewhere else.
|
|
|
|
# Read arguments
|
|
while [[ "$@" ]]; do
|
|
case "$1" in
|
|
'--format')
|
|
CHECK_FORMAT=1
|
|
shift
|
|
;;
|
|
'--install')
|
|
MAKE_INSTALL=1
|
|
shift
|
|
;;
|
|
'--package')
|
|
MAKE_PACKAGE=1
|
|
shift
|
|
if [[ $1 != -* ]]; then
|
|
PACKAGE_NAME="$1"
|
|
shift
|
|
fi
|
|
;;
|
|
'--server')
|
|
MAKE_SERVER=1
|
|
shift
|
|
;;
|
|
'--test')
|
|
MAKE_TEST=1
|
|
shift
|
|
;;
|
|
'--debug')
|
|
BUILDTYPE="Debug"
|
|
shift
|
|
;;
|
|
'--release')
|
|
BUILDTYPE="Release"
|
|
shift
|
|
;;
|
|
*)
|
|
if [[ $1 == -* ]]; then
|
|
echo "unrecognized option: $1"
|
|
exit 3
|
|
fi
|
|
BUILDTYPE="$1"
|
|
shift
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Check formatting using clang-format
|
|
if [[ $CHECK_FORMAT ]]; then
|
|
echo "Checking your code using clang-format..."
|
|
diff="$(./clangify.sh --diff --cf-version)"
|
|
ok=$?
|
|
case $ok in
|
|
1)
|
|
cat <<EOM
|
|
***********************************************************
|
|
*** ***
|
|
*** Your code does not comply with our styleguide. ***
|
|
*** ***
|
|
*** Please correct it or run the "clangify.sh" script. ***
|
|
*** Then commit and push those changes to this branch. ***
|
|
*** Check our CONTRIBUTING.md file for more details. ***
|
|
*** ***
|
|
*** Thank you ♥ ***
|
|
*** ***
|
|
***********************************************************
|
|
|
|
Used clang-format version:
|
|
${diff%%
|
|
*}
|
|
|
|
The following changes should be made:
|
|
${diff#*
|
|
}
|
|
|
|
Exiting...
|
|
EOM
|
|
exit 2
|
|
;;
|
|
0)
|
|
echo "Thank you for complying with our code standards."
|
|
;;
|
|
*)
|
|
echo "Something went wrong in our formatting checks: clangify returned $err" >&2
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
set -e
|
|
|
|
# Setup
|
|
./servatrice/check_schema_version.sh
|
|
mkdir -p build
|
|
cd build
|
|
|
|
# Add cmake flags
|
|
if [[ $MAKE_SERVER ]]; then
|
|
flags+=" -DWITH_SERVER=1"
|
|
fi
|
|
if [[ $MAKE_TEST ]]; then
|
|
flags+=" -DTEST=1"
|
|
BUILDTYPE="Debug" # test requires buildtype Debug
|
|
fi
|
|
if [[ $BUILDTYPE ]]; then
|
|
flags+=" -DCMAKE_BUILD_TYPE=$BUILDTYPE"
|
|
fi
|
|
|
|
# Add qt install location when using brew
|
|
if [[ $(uname) == "Darwin" ]]; then
|
|
PATH="/usr/local/opt/ccache/bin:$PATH"
|
|
flags+=" -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5/"
|
|
fi
|
|
|
|
# Compile
|
|
cmake --version
|
|
cmake .. $flags
|
|
make -j2
|
|
|
|
if [[ $MAKE_TEST ]]; then
|
|
make test
|
|
fi
|
|
|
|
if [[ $MAKE_INSTALL ]]; then
|
|
make install
|
|
fi
|
|
|
|
if [[ $MAKE_PACKAGE ]]; then
|
|
make package
|
|
if [[ $PACKAGE_NAME ]]; then
|
|
found=$(find . -maxdepth 1 -type f -name "Cockatrice-*.*" -print -quit)
|
|
path=${found%/*}
|
|
file=${found##*/}
|
|
if [[ $file != *.* ]]; then
|
|
echo "could not find package" >&2
|
|
exit 1
|
|
fi
|
|
mv "$path/$file" "$path/${file%%.*}-$PACKAGE_NAME.${file#*.}"
|
|
fi
|
|
fi
|