summaryrefslogtreecommitdiff
path: root/infrastructure/travis-build.sh
blob: 74b58a3d8d0be8cf169d75b9d3ac314f37ebeefd (plain)
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
#!/bin/sh

set -e
set -x

if [ "$TRAVIS_OS_NAME" = "osx" ]; then
	brew update
	# Travis appears to have Boost and OpenSSL installed already:
	# brew install boost ccache openssl
	ls /usr/local /usr/local/opt /usr/local/opt/openssl
	brew install ccache
fi

ccache -s

if [ "$BUILD" = 'cmake' ]; then
	if [ -z "$TEST_TARGET" ]; then
		echo "TEST_TARGET must be set to 'release' or 'debug' for CMake builds"
		exit 2
	fi

	if [ "$TRAVIS_OS_NAME" = "osx" ]; then
		EXTRA_ARGS="-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DBOOST_ROOT=/usr/local/opt/boost"
	fi

	cd `dirname $0`
	mkdir -p cmake/build
	cd cmake/build
	cmake --version
	cmake -DCMAKE_BUILD_TYPE:STRING=$TEST_TARGET $EXTRA_ARGS "$@" ..
	make

	[ "$TEST" = "n" ] || ctest -C $TEST_TARGET -V
else
	if [ "$TRAVIS_OS_NAME" = "osx" ]; then
		EXTRA_ARGS="--with-ssl-lib=/usr/local/opt/openssl/lib --with-ssl-headers=/usr/local/opt/openssl/include --with-boost=/usr/local/opt/boost"
	fi

	cd `dirname $0`/..
	./bootstrap
	./configure CC="ccache $CC" CXX="ccache $CXX" $EXTRA_ARGS "$@"
	grep CXX config.status
	make V=1 $EXTRA_MAKE_ARGS

	[ "$TEST" = "n" ] || ./runtest.pl ALL $TEST_TARGET

	if [ "$TEST_TARGET" = "release" ]; then
		make
		make parcels
	fi
fi

ccache -s