summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCosmin Truta <ctruta@gmail.com>2019-04-22 23:00:58 -0400
committerCosmin Truta <ctruta@gmail.com>2019-04-22 23:00:58 -0400
commitcdbb8ec7aaf7baa8316f1c641c3e56e889625212 (patch)
treed4873927031df4e1d8c113df3b764581de160d34
parent72fa126446460347a504f3d9b90f24aed1365595 (diff)
downloadlibpng-cdbb8ec7aaf7baa8316f1c641c3e56e889625212.tar.gz
Add support for Travis CI
-rw-r--r--.travis.yml23
-rwxr-xr-xscripts/travis.sh37
2 files changed, 60 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 000000000..2a931b6c2
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,23 @@
+language: c
+
+compiler:
+ - clang
+
+env:
+ - USE_CMAKE=1 DISABLE_TESTS=1
+ - USE_CMAKE=1 ENABLE_SANITIZERS="address,undefined" EXTRA_ARGS="-DPNG_HARDWARE_OPTIMIZATIONS=ON"
+ - USE_CMAKE=1 ENABLE_SANITIZERS="address,undefined" EXTRA_ARGS="-DPNG_HARDWARE_OPTIMIZATIONS=OFF"
+ - USE_CONFIGURE=1 DISABLE_TESTS=1
+ - USE_CONFIGURE=1 EXTRA_ARGS="--enable-hardware-optimizations"
+ - USE_CONFIGURE=1 EXTRA_ARGS="--disable-hardware-optimizations"
+ - USE_LEGACY_MAKEFILES=1 DISABLE_TESTS=1
+ - USE_LEGACY_MAKEFILES=1 ENABLE_SANITIZERS="address,undefined"
+
+os:
+ - linux
+ - osx
+
+script:
+ - bash ./scripts/travis.sh
+
+sudo: false
diff --git a/scripts/travis.sh b/scripts/travis.sh
new file mode 100755
index 000000000..7d59b24dc
--- /dev/null
+++ b/scripts/travis.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+set -e
+
+if [[ $ENABLE_SANITIZERS ]]; then
+ LOCAL_CMAKE_EXTRA_ARGS="-DCMAKE_C_FLAGS=-fsanitize=$ENABLE_SANITIZERS"
+ LOCAL_MAKE_EXTRA_ARGS="CFLAGS=-fsanitize=$ENABLE_SANITIZERS LDFLAGS=-fsanitize=$ENABLE_SANITIZERS"
+fi
+
+if [[ $USE_CMAKE ]]; then
+ echo "$0: using cmake + make:" $LOCAL_CMAKE_EXTRA_ARGS $EXTRA_ARGS
+ mkdir build-cmake
+ cd build-cmake
+ cmake $LOCAL_CMAKE_EXTRA_ARGS $EXTRA_ARGS ..
+ make
+ [[ $DISABLE_TESTS ]] || make test
+ make clean
+fi
+
+if [[ $USE_CONFIGURE ]]; then
+ mkdir build-configure
+ cd build-configure
+ echo "$0: using configure + make:" $LOCAL_MAKE_EXTRA_ARGS $EXTRA_ARGS
+ ../configure $LOCAL_MAKE_EXTRA_ARGS $EXTRA_ARGS
+ make
+ [[ $DISABLE_TESTS ]] || make test
+ make clean
+ make distclean
+fi
+
+if [[ $USE_LEGACY_MAKEFILES ]]; then
+ echo "$0: using scripts/makefile.$CC:" $LOCAL_MAKE_EXTRA_ARGS $EXTRA_ARGS
+ make -f scripts/makefile.$CC $LOCAL_MAKE_EXTRA_ARGS $EXTRA_ARGS
+ [[ $DISABLE_TESTS ]] || make -f scripts/makefile.$CC $LOCAL_MAKE_EXTRA_ARGS $EXTRA_ARGS test
+ make -f scripts/makefile.$CC $LOCAL_MAKE_EXTRA_ARGS $EXTRA_ARGS clean
+ # TODO: use scripts/makefile.std, etc.
+fi