summaryrefslogtreecommitdiffstats
path: root/jenkinsbuild.sh
blob: 3949ae3868baf69052fe5ef97da91b91f8918403 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/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`"

if [ -x "$(command -v ccache)" ]
then
	export CCACHE_CPP2=true
	CACHE_ARGS="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
fi

# Build
CXX=$CXXCOMP CC=$CCOMP cmake . -DNO_NATIVE_OPTIMIZATION=1 ${CACHE_ARGS} ${TOOLCHAINFILE} ${COMPILEMODE} ${FORCE32}
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 --exclude .git -f ../Cuberite.tar.gz
popd
sha1sum Cuberite.tar.gz > Cuberite.tar.gz.sha1

# Package ProtoProxy
# This tool is very out of date, uncomment when it's being worked on again
# pushd Tools/ProtoProxy
# sha1sum ProtoProxy > ProtoProxy.sha1
# popd