libtiff/build/travis-ci
Even Rouault f2a3b02040 * .travis.yml, build/travis-ci: new files from
0001-ci-Add-Travis-support-for-Linux-builds-with-Autoconf.patch by
Roger Leigh (sent to mailing list on 2017-06-08)
This patch adds support for the Travis-CI service.

* .appveyor.yml: new file from
0002-ci-Add-AppVeyor-support.patch by Roger Leigh (sent to mailing
list on 2017-06-08)
This patch adds a .appveyor.yml file to the top-level.  This allows
one to opt in to having a branch built on Windows with Cygwin,
MinGW and MSVC automatically when a branch is pushed to GitHub,
GitLab, BitBucket or any other supported git hosting service.

* CMakeLists.txt, test/CMakeLists.txt, test/TiffTestCommon.cmake: apply
patch 0001-cmake-Improve-Cygwin-and-MingGW-test-support.patch from Roger
Leigh (sent to mailing list on 2017-06-08)
This patch makes the CMake build system support running the tests
with MinGW or Cygwin.
2017-06-08 20:46:10 +00:00

91 lines
2.4 KiB
Bash

#!/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