miniupnp/.travis.yml

105 lines
2.9 KiB
YAML

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 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 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 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'