2020-02-24 06:28:24 -05:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
set -ex
|
|
|
|
|
|
|
|
# Parse arguments.
|
|
|
|
while [[ $# -gt 1 ]]
|
|
|
|
do
|
|
|
|
key="$1"
|
|
|
|
case $key in
|
|
|
|
-s|--server-name)
|
|
|
|
SERVERNAME="$2"
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
-t|--target)
|
|
|
|
TARGET="$2"
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
-c|--compiler)
|
|
|
|
CCOMP="$2"
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
-cxx|--cxx-compiler)
|
|
|
|
CXXCOMP="$2"
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
-m|--compile-mode)
|
|
|
|
COMPILEMODE="-DCMAKE_BUILD_TYPE=$2"
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
-n|--build-number)
|
|
|
|
BUILDID="$2"
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
-p|--toolchain-file)
|
|
|
|
TOOLCHAINFILE="-DCMAKE_TOOLCHAIN_FILE=$2"
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
-b|--branch)
|
|
|
|
BRANCH="$2"
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
-32|--force-32)
|
|
|
|
FORCE32="-DFORCE_32=$2"
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
|
|
|
git submodule update --init
|
|
|
|
|
|
|
|
# Set up build information.
|
|
|
|
export CUBERITE_BUILD_SERIES_NAME="$SERVERNAME $TARGET $COMPILEMODE ($BRANCH)"
|
|
|
|
export CUBERITE_BUILD_ID="$BUILDID"
|
|
|
|
export CUBERITE_BUILD_DATETIME="`date`"
|
|
|
|
|
2020-04-01 15:48:45 -04:00
|
|
|
if [ -x "$(command -v ccache)" ]
|
2020-04-01 15:47:25 -04:00
|
|
|
then
|
|
|
|
export CCACHE_CPP2=true
|
|
|
|
CACHE_ARGS="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
|
|
|
|
fi
|
2020-02-24 06:28:24 -05:00
|
|
|
|
|
|
|
# Build
|
2020-04-01 15:12:09 -04:00
|
|
|
CXX=$CXXCOMP CC=$CCOMP cmake . -DNO_NATIVE_OPTIMIZATION=1 -DBUILD_TOOLS=1 ${CACHE_ARGS} ${TOOLCHAINFILE} ${COMPILEMODE} ${FORCE32}
|
2020-02-24 06:28:24 -05:00
|
|
|
make -j 2
|
|
|
|
|
|
|
|
|
|
|
|
# Package Server
|
|
|
|
echo Cuberite "$CUBERITE_BUILD_SERIES_NAME-$CUBERITE_BUILD_ID\n$BUILD_URL" > Server/buildinfo.txt
|
|
|
|
|
|
|
|
# h: dereference (archive file/folder instead of symlink)
|
|
|
|
# z: gzip (compress)
|
|
|
|
# c: create
|
|
|
|
# v: verbose
|
|
|
|
# T: files-from (list of server files accepted for release archives)
|
|
|
|
# f: file (output file location)
|
|
|
|
pushd Server
|
|
|
|
tar -hzcv -T Install/UnixExecutables.list -f ../Cuberite.tar.gz
|
|
|
|
popd
|
|
|
|
sha1sum Cuberite.tar.gz > Cuberite.tar.gz.sha1
|
|
|
|
|
|
|
|
# Package ProtoProxy
|
|
|
|
pushd Tools/ProtoProxy
|
|
|
|
sha1sum ProtoProxy > ProtoProxy.sha1
|
|
|
|
popd
|