summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorerouault <erouault>2017-06-09 11:04:33 +0000
committererouault <erouault>2017-06-09 11:04:33 +0000
commit2cdbdbc208e4ea291b41720f6f8e825c372fc2c0 (patch)
tree197e011b7d4d307fe31f41a2507b6401440eb128
parentebb710fa79da5969824cbeba0d9e133ef5bd24f9 (diff)
downloadlibtiff-2cdbdbc208e4ea291b41720f6f8e825c372fc2c0.tar.gz
Re-add build/travis-ci with execution bit
-rw-r--r--build/travis-ci90
1 files changed, 90 insertions, 0 deletions
diff --git a/build/travis-ci b/build/travis-ci
new file mode 100644
index 00000000..c34791a1
--- /dev/null
+++ b/build/travis-ci
@@ -0,0 +1,90 @@
+#!/bin/sh
+# This script is used for testing the build, primarily for use
+# with travis, but may be used by hand as well.
+
+set -e
+set -x
+
+# Test autoconf build
+autoconf_build()
+{
+ mkdir autoconf-build
+ cd autoconf-build
+ ../configure --prefix=$(readlink -f ../autoconf-install)
+ make
+ make install
+ make check
+}
+
+# Install needed tools
+cmake_deps()
+{
+ mkdir -p download
+ mkdir -p tools
+
+ cmake_file="cmake-3.8.2-Linux-x86_64.tar.gz"
+ cmake_url="https://cmake.org/files/v3.8/${cmake_file}"
+ cmake_hash="574673d3f37b0be6a0813b894a8bce9c4af08c13f1ec25c030a69f42e0e4b349e0192385ef20c8a9271055b7c3b24c5b20fb5009762131a3fba3d17576e641f1"
+
+ ninja_file="ninja-linux.zip"
+ ninja_url="https://github.com/ninja-build/ninja/releases/download/v1.7.2/${ninja_file}"
+ ninja_hash="2dddc52750c5e6f841acd0d978b894c9a6562f12ddb4ba9e5118a213f54265f065682ffe1bc7bc2ac6146760145d17800a4b7373791cd1fbbaf0836faf050e19"
+
+ (
+ cd download
+ if [ ! -f "$cmake_file" ] || [ "$(sha512sum "$cmake_file")" != "$cmake_hash $cmake_file" ]; then
+ wget "$cmake_url"
+ if [ "$(sha512sum "$cmake_file")" != "$cmake_hash $cmake_file" ]; then
+ echo "Error: cmake download hash mismatch" >&2
+ exit 1
+ fi
+ fi
+ tar xf "$cmake_file"
+ cp -a ${cmake_file%.tar.gz}/* ../tools
+
+ if [ "$1" = "Ninja" ]; then
+ if [ ! -f "$ninja_file" ] || [ "$(sha512sum "$ninja_file")" != "$ninja_hash $ninja_file" ]; then
+ wget "$ninja_url"
+ if [ "$(sha512sum "$ninja_file")" != "$ninja_hash $ninja_file" ]; then
+ echo "Error: ninja download hash mismatch" >&2
+ exit 1
+ fi
+ fi
+ unzip "$ninja_file"
+ mv ninja ../tools/bin
+ fi
+ )
+}
+
+# Test autoconf build
+cmake_build()
+{
+ PATH="$(pwd)/tools/bin:$PATH"
+ mkdir cmake-build
+ cd cmake-build
+ cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" -DCMAKE_INSTALL_PREFIX=../autoconf-install ..
+ cmake --build .
+ cmake --build . --target install
+ ctest -V
+}
+
+build=$1
+shift
+
+case $build in
+ autoconf)
+ echo "Testing Autoconf build"
+ autoconf_build "$@"
+ ;;
+ cmake)
+ echo "Testing CMake build"
+ cmake_deps "$@"
+ cmake_build "$@"
+ ;;
+ *)
+ echo "Invalid argument: \"$arg\"" >&2
+ exit 1
+ ;;
+esac
+
+exit 0