128 lines
2.4 KiB
Bash
Executable file
128 lines
2.4 KiB
Bash
Executable file
#!/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 [[ $# != 0 && $1 != -* ]]; then
|
|
PACKAGE_NAME="$1"
|
|
shift
|
|
if [[ $# != 0 && $1 != -* ]]; then
|
|
PACKAGE_TYPE="$1"
|
|
shift
|
|
fi
|
|
fi
|
|
;;
|
|
'--server')
|
|
MAKE_SERVER=1
|
|
shift
|
|
;;
|
|
'--test')
|
|
MAKE_TEST=1
|
|
shift
|
|
;;
|
|
'--debug')
|
|
BUILDTYPE="Debug"
|
|
shift
|
|
;;
|
|
'--release')
|
|
BUILDTYPE="Release"
|
|
shift
|
|
;;
|
|
'--zip')
|
|
MAKE_ZIP=1
|
|
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
|
|
source ./.ci/travis-lint.sh
|
|
fi
|
|
|
|
set -e
|
|
|
|
# Setup
|
|
./servatrice/check_schema_version.sh
|
|
mkdir -p build
|
|
cd build
|
|
|
|
if ! [[ $CORE_AMOUNT ]]; then
|
|
CORE_AMOUNT="2" # travis machines have 2 cores
|
|
fi
|
|
|
|
# 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
|
|
if [[ $PACKAGE_TYPE ]]; then
|
|
flags+=" -DCPACK_GENERATOR=$PACKAGE_TYPE"
|
|
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 -j"$CORE_AMOUNT"
|
|
|
|
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
|
|
new_name="$path/${file%.*}-$PACKAGE_NAME."
|
|
if [[ $MAKE_ZIP ]]; then
|
|
zip "${new_name}zip" "$path/$file"
|
|
mv "$path/$file" "$path/_$file"
|
|
else
|
|
extension="${file##*.}"
|
|
mv "$path/$file" "$new_name$extension"
|
|
fi
|
|
fi
|
|
fi
|