summaryrefslogtreecommitdiff
path: root/infrastructure/travis-build.sh
blob: 9ee3569edc93d16aa2e4aabead3dc029a15bfbcb (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
54
55
56
57
58
59
60
61
62
#!/bin/sh

set -e
set -x

if [ "$TRAVIS_OS_NAME" = "osx" ]; then
	# No need to "brew update" first: https://docs.travis-ci.com/user/reference/osx/#Homebrew
	# 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 /usr/local/opt/openssl@1.1

	# Use OSX builds to test OpenSSL 1.1 compatibility as well:
	brew install ccache openssl@1.1
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@1.1
			-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@1.1/lib
			--with-ssl-headers=/usr/local/opt/openssl@1.1/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