language: cpp os: - linux - osx env: - variant=test_debug lang=cpp11 sim=1 - variant=test_debug lang=cpp98 sim=0 - variant=test_release lang=cpp11 sim=0 - variant=test_barebones lang=cpp11 sim=0 git: submodules: false branches: only: - master - RC_1_0 # container-based builds sudo: false cache: directories: - $HOME/.ccache # sources list: https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json, # packages list: https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise addons: apt: sources: - boost-latest - ubuntu-toolchain-r-test packages: - libboost1.55-all-dev - libboost1.55-tools-dev - python2.7-dev - g++-4.8 before_install: - git submodule update --init --recursive - if [ $TRAVIS_OS_NAME == "osx" ]; then brew update > /dev/null && brew install --quiet ccache boost-build boost-python; fi # disable simulations on OSX for now. It hangs on travis - if [ $TRAVIS_OS_NAME == "osx" ]; then export toolset="darwin-${lang}"; export sim="0"; fi - if [ $TRAVIS_OS_NAME == "osx" ]; then export target="osx-tests"; fi - if [ $TRAVIS_OS_NAME == "linux" ]; then export toolset="gcc-${lang}"; fi - 'echo "using toolset: " ${toolset}' install: - 'echo "using gcc : cpp11 : ccache g++-4.8 : -std=c11 -std=c++11 ;" > ~/user-config.jam' - 'echo "using gcc : cpp98 : ccache g++-4.8 : -std=c99 -std=c++98 ;" >> ~/user-config.jam' # osx builds need to disable the deprecated warning because of the openssl # shipping with the system having marked all functions as deprecated. Since # we're building with -Werror, we can't have those warnings - 'echo "using darwin : cpp11 : ccache clang++ : -std=c11 -std=c++11 -Wno-deprecated-declarations ;" >> ~/user-config.jam' - 'echo "using darwin : cpp98 : ccache clang++ : -std=c99 -std=c++98 -Wno-deprecated-declarations ;" >> ~/user-config.jam' - 'echo "using python : 2.7 ;" >> ~/user-config.jam' - ccache -V && ccache --show-stats && ccache --zero-stats script: - cd test - bjam --hash -j3 warnings-as-errors=on variant=$variant -l900 $toolset $target - cd ../examples - bjam --hash -j3 warnings-as-errors=on variant=$variant $toolset link=shared - cd .. # build libtorrent separately and install it in a temporary (well known) dir # we have to do this because on linux the name of the python module is the same # as the main library, so we can't stage them to the same directory - bjam --hash -j3 warnings-as-errors=on link=shared variant=$variant $toolset install location=./lib - cd bindings/python # here we specify the temporary lib dir as a path to look for the main library - bjam --hash -j3 warnings-as-errors=on variant=$variant $toolset stage_module libtorrent-link=shared install-type=LIB dll-path=../../lib - LD_LIBRARY_PATH=../../lib DYLD_LIBRARY_PATH=../../lib python test.py - if [ $sim = "1" ]; then cd ../../simulation; bjam --hash -j2 crypto=built-in $toolset; fi - ccache --show-stats