language: c os: - linux - osx addons: apt: packages: # packages list: https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise - iptables-dev - libevent-dev - libnfnetlink-dev - libmnl-dev - libnftnl-dev - uuid-dev - libcap-dev - cmake - doxygen - graphviz # https://docs.travis-ci.com/user/reference/xenial/ dist: xenial env: - 'PROJECT=minissdpd' - 'PROJECT=miniupnpc' - 'PROJECT=miniupnpc-async' - 'PROJECT=miniupnpc-libevent' - 'PROJECT=miniupnpd' jobs: exclude: - os: osx env: PROJECT=miniupnpd - os: osx compiler: gcc include: - os: linux dist: trusty env: PROJECT=miniupnpc compiler: i586-mingw32msvc-gcc addons: apt: packages: - mingw32 before_install: true after_success: true before_script: "i586-mingw32msvc-gcc -v 2>&1 | grep -q -x 'Target: i586-mingw32msvc'" script: make -C miniupnpc -f Makefile.mingw CC=i586-mingw32msvc-gcc DLLWRAP=i586-mingw32msvc-dllwrap WINDRES=i586-mingw32msvc-windres AR=i586-mingw32msvc-ar - os: linux env: PROJECT=miniupnpc compiler: i686-w64-mingw32-gcc addons: apt: packages: - gcc-mingw-w64-i686 before_install: true after_success: true script: make -C miniupnpc -f Makefile.mingw CC=i686-w64-mingw32-gcc DLLWRAP=i686-w64-mingw32-dllwrap WINDRES=i686-w64-mingw32-windres AR=i686-w64-mingw32-ar - os: linux env: PROJECT=miniupnpc compiler: x86_64-w64-mingw32-gcc addons: apt: packages: - gcc-mingw-w64-x86-64 before_install: true after_success: true script: make -C miniupnpc -f Makefile.mingw CC=x86_64-w64-mingw32-gcc DLLWRAP=x86_64-w64-mingw32-dllwrap WINDRES=x86_64-w64-mingw32-windres AR=x86_64-w64-mingw32-ar compiler: - gcc - clang before_install: - 'if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$CC" == "gcc" ] ; then CC=gcc-4.9; fi' - 'if [ "$TRAVIS_OS_NAME" != "osx" ] || [ "$PROJECT" != "miniupnpc" ] ; then export CFLAGS="-fsanitize=address -O1 -g -fno-omit-frame-pointer" ; export LDFLAGS="-fsanitize=address -g" ; fi' script: - 'cd $TRAVIS_BUILD_DIR && cd $PROJECT' - 'if [ "$PROJECT" = "miniupnpd" ] ; then mkdir build && cd build && ../configure --ipv6 --igd2 ; fi' - 'make -j3' - 'make check' - 'if [ "$PROJECT" = "miniupnpd" ] ; then make dox ; cd .. ; fi' - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$PROJECT" = "miniupnpd" ]; then mkdir build-nft && cd build-nft && ../configure --ipv6 --igd2 --firewall=nftables ; fi - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$PROJECT" = "miniupnpd" ]; then make -j3 && make check ; fi - if [ "$PROJECT" = "miniupnpc" ]; then INSTALLPREFIX="$HOME/_pythonmodule" make pythonmodule; fi - if [ -f "CMakeLists.txt" ] ; then mkdir cmake-build && cd cmake-build && cmake .. && make ; fi after_success: - 'INSTALLPREFIX="$HOME/$PROJECT" make install'