2015-06-05 02:15:57 +02:00
|
|
|
language: cpp
|
2020-02-16 10:44:33 +01:00
|
|
|
dist: bionic
|
2015-06-05 02:15:57 +02:00
|
|
|
|
2016-06-19 08:32:12 +02:00
|
|
|
matrix:
|
2016-12-31 20:03:03 +01:00
|
|
|
fast_finish: true
|
2016-06-19 08:32:12 +02:00
|
|
|
include:
|
2017-11-28 23:20:49 +01:00
|
|
|
- if: repo = arvidn/libtorrent
|
2019-05-12 02:28:48 +02:00
|
|
|
env: variant=release sonar_scan=1 toolset=gcc check_headers=1
|
2020-02-16 10:44:33 +01:00
|
|
|
- env: variant=test_debug crypto=openssl docs=1 tests=1 examples=1 tools=1 toolset=darwin
|
2019-11-20 11:13:58 +01:00
|
|
|
os: osx
|
|
|
|
osx_image: xcode11.2
|
2020-02-16 10:44:33 +01:00
|
|
|
- env: variant=test_debug crypto=openssl python=1 toolset=darwin ios=1
|
2019-11-20 11:13:58 +01:00
|
|
|
os: osx
|
|
|
|
osx_image: xcode11.2
|
2018-07-17 15:01:01 +02:00
|
|
|
- env: variant=debug toolset=gcc lint=1 pylint=1 clang_tidy=1
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
packages:
|
|
|
|
- python3-pip
|
2020-02-16 10:44:33 +01:00
|
|
|
- libboost-all-dev
|
|
|
|
- libboost-tools-dev
|
2019-04-06 19:02:31 +02:00
|
|
|
- env: variant=test_debug tests=1 toolset=gcc-sanitizer fuzzers=1
|
2017-07-14 08:42:56 +02:00
|
|
|
- env: variant=test_debug sim=1 crypto=openssl toolset=gcc-sanitizer
|
2017-02-04 23:24:29 +01:00
|
|
|
- env: variant=test_release coverage=1 tests=1 toolset=gcc-coverage python=1
|
2018-03-27 07:40:30 +02:00
|
|
|
- env: autotools=1 toolset=gcc
|
|
|
|
- env: cmake=1 toolset=gcc
|
2017-08-14 00:49:49 +02:00
|
|
|
- env: arch=arm toolset=gcc-arm
|
2015-06-20 16:40:47 +02:00
|
|
|
|
2017-02-19 15:56:30 +01:00
|
|
|
notifications:
|
|
|
|
email: false
|
|
|
|
|
2015-08-19 21:38:41 +02:00
|
|
|
git:
|
|
|
|
submodules: false
|
2016-06-30 03:17:38 +02:00
|
|
|
depth: 1
|
2015-08-19 21:38:41 +02:00
|
|
|
|
2015-09-07 02:45:08 +02:00
|
|
|
branches:
|
|
|
|
only:
|
|
|
|
- master
|
2019-01-13 14:49:08 +01:00
|
|
|
- RC_1_2
|
2016-01-20 02:54:34 +01:00
|
|
|
- RC_1_1
|
2015-09-07 02:45:08 +02:00
|
|
|
|
2015-07-07 09:09:06 +02:00
|
|
|
cache:
|
|
|
|
directories:
|
|
|
|
- $HOME/.ccache
|
2015-06-05 02:15:57 +02:00
|
|
|
|
2015-07-07 09:09:06 +02:00
|
|
|
# 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:
|
|
|
|
packages:
|
2020-02-16 10:44:33 +01:00
|
|
|
- libboost-all-dev
|
|
|
|
- libboost-tools-dev
|
|
|
|
- python3.7-dev
|
2016-05-21 22:23:15 +02:00
|
|
|
- g++-5
|
2019-01-07 01:12:55 +01:00
|
|
|
- ninja-build
|
2015-06-05 03:58:02 +02:00
|
|
|
|
2015-08-08 05:17:33 +02:00
|
|
|
before_install:
|
2016-04-27 00:09:11 +02:00
|
|
|
|
2017-09-13 08:55:26 +02:00
|
|
|
- 'if [[ "$TRAVIS_PULL_REQUEST" != "false" || "$TRAVIS_BRANCH" != "master" ]]; then
|
2017-09-09 20:14:19 +02:00
|
|
|
export sonar_scan=0;
|
|
|
|
fi'
|
|
|
|
|
2015-11-06 06:38:42 +01:00
|
|
|
- git submodule update --init --recursive
|
2016-07-05 14:40:09 +02:00
|
|
|
- 'if [[ $crypto == "" ]]; then export crypto=built-in; fi'
|
2019-05-12 02:28:48 +02:00
|
|
|
- 'if [[ $TRAVIS_OS_NAME == "osx" && ( "$tests" == "1" || "$sim" == 1 || "$examples" == "1" || "$tools" == "1" || "$python" == "1" || "$check_headers" == "1" ) ]]; then
|
2017-03-17 14:50:14 +01:00
|
|
|
travis_retry brew update > /dev/null && brew install ccache boost-build;
|
2017-02-04 23:24:29 +01:00
|
|
|
fi'
|
2019-03-11 12:56:42 +01:00
|
|
|
- 'if [[ $TRAVIS_OS_NAME == "osx" && "$python" == "1" ]]; then
|
2020-02-16 10:44:33 +01:00
|
|
|
brew unlink python@2;
|
|
|
|
travis_retry brew install boost-python3 python;
|
|
|
|
fi'
|
|
|
|
- 'if [[ "$python" == "1" ]]; then
|
|
|
|
which python3;
|
|
|
|
python3 --version;
|
2019-03-11 12:56:42 +01:00
|
|
|
fi'
|
2019-09-07 13:51:08 +02:00
|
|
|
- 'if [[ $TRAVIS_OS_NAME != "osx" ]]; then
|
|
|
|
export B2=bjam;
|
2020-03-27 00:46:41 +01:00
|
|
|
export PIP=pip;
|
2019-09-07 13:51:08 +02:00
|
|
|
else
|
|
|
|
export B2=b2;
|
2020-03-27 00:46:41 +01:00
|
|
|
export PIP=pip3;
|
2019-11-20 11:13:58 +01:00
|
|
|
sysctl hw.ncpu;
|
2019-09-07 13:51:08 +02:00
|
|
|
fi'
|
2017-12-31 15:20:15 +01:00
|
|
|
# we have to use python from brew rather than the system provided python
|
|
|
|
# because of OSX System Integrity Protection, which prevents injecting
|
|
|
|
# user-libraries (i.e. python modules) into system binaries (i.e. /usr/bin/python)
|
2016-06-19 08:32:12 +02:00
|
|
|
- 'if [ "$docs" = "1" ]; then
|
2020-03-27 00:46:41 +01:00
|
|
|
${PIP} install docutils;
|
|
|
|
${PIP} install Pygments;
|
2017-06-21 06:50:14 +02:00
|
|
|
travis_retry brew install graphviz hunspell;
|
2016-02-16 20:39:06 +01:00
|
|
|
fi'
|
2015-09-06 23:29:01 +02:00
|
|
|
|
2016-06-19 08:32:12 +02:00
|
|
|
- if [ "$coverage" == "1" ]; then
|
2020-03-27 00:46:41 +01:00
|
|
|
${PIP} install --user codecov;
|
2015-12-16 03:07:26 +01:00
|
|
|
fi
|
2016-10-08 18:29:46 +02:00
|
|
|
- 'echo "toolset: " ${toolset}'
|
|
|
|
- 'echo "variant: " ${variant}'
|
2016-10-09 23:00:20 +02:00
|
|
|
# disable leak checking for now. it reports some suspicious reports against some
|
|
|
|
# tests
|
|
|
|
- export ASAN_OPTIONS=detect_leaks=0;
|
2018-01-23 10:55:21 +01:00
|
|
|
- ulimit -a
|
2015-08-08 05:17:33 +02:00
|
|
|
|
2015-07-07 09:09:06 +02:00
|
|
|
install:
|
2016-05-21 22:23:15 +02:00
|
|
|
- touch ~/user-config.jam
|
2016-06-27 07:00:44 +02:00
|
|
|
- 'if [[ $toolset == "gcc" ]]; then
|
|
|
|
g++-5 --version;
|
|
|
|
echo "using gcc : : ccache g++-5 : <cxxflags>-std=c++11 ;" >> ~/user-config.jam;
|
2016-05-21 22:23:15 +02:00
|
|
|
fi'
|
2016-10-10 02:09:44 +02:00
|
|
|
- 'if [[ $toolset == "gcc-sanitizer" ]]; then
|
2016-10-26 02:48:49 +02:00
|
|
|
echo "using gcc : sanitizer : ccache g++-5 :
|
|
|
|
<cxxflags>-std=c++11
|
|
|
|
<compileflags>-fstack-protector-all
|
|
|
|
<compileflags>-fstack-check
|
|
|
|
<compileflags>-fsanitize=address,undefined
|
|
|
|
<compileflags>-fno-sanitize-recover=address,undefined
|
|
|
|
<linkflags>-fsanitize=address,undefined
|
|
|
|
<linkflags>-fno-sanitize-recover=address,undefined
|
|
|
|
<linkflags>-fuse-ld=gold ;" >> ~/user-config.jam;
|
2016-10-08 20:17:51 +02:00
|
|
|
fi'
|
2016-06-27 07:00:44 +02:00
|
|
|
- 'if [[ $toolset == "gcc-coverage" ]]; then
|
|
|
|
echo "using gcc : coverage : ccache g++-5 --coverage : <cxxflags>-std=c++11 <linkflags>--coverage ;" >> ~/user-config.jam;
|
|
|
|
fi'
|
2016-06-30 17:37:55 +02:00
|
|
|
- 'if [[ $toolset == "gcc-arm" ]]; then
|
2017-11-05 18:14:26 +01:00
|
|
|
echo "using gcc : arm : ccache armv8l-linux-gnueabihf-g++ :
|
|
|
|
<cxxflags>-std=c++11
|
|
|
|
<cxxflags>-fsigned-char
|
|
|
|
<cxxflags>-march=armv8-a+crc
|
|
|
|
<cxxflags>-mfpu=crypto-neon-fp-armv8
|
|
|
|
<cxxflags>-DTORRENT_FORCE_ARM_CRC32
|
|
|
|
<linkflags>-lm
|
|
|
|
<linkflags>-static-libstdc++
|
|
|
|
<linkflags>-static-libgcc ;" >> ~/user-config.jam;
|
2016-06-27 07:00:44 +02:00
|
|
|
fi;'
|
2018-07-17 15:01:01 +02:00
|
|
|
- 'if [ $clang_tidy == "1" ]; then
|
2019-01-07 01:12:55 +01:00
|
|
|
echo "using clang_tidy : : clang-tidy "-checks=-clang-analyzer-core.*" : <cxxflags>-std=c++11 <cxxflags>-I/usr/local/clang-7.0.0/include/c++/v1 <cxxflags>-stdlib=libc++ <linkflags>-stdlib=libc++ ;" >> ~/user-config.jam;
|
2018-07-17 15:01:01 +02:00
|
|
|
fi'
|
2017-09-23 19:46:29 +02:00
|
|
|
- 'echo "using darwin : : ccache clang++ : <cxxflags>-std=c++11 ;" >> ~/user-config.jam'
|
2018-01-15 11:53:20 +01:00
|
|
|
- 'echo "using darwin : ios_sim : ccache clang++ : <cflags>-std=c11 <cxxflags>-std=c++11 <compileflags>-Wno-deprecated-declarations
|
|
|
|
<compileflags>\"-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk\"
|
|
|
|
<compileflags>-mios-simulator-version-min=7
|
|
|
|
<compileflags>-fobjc-abi-version=2
|
|
|
|
<linkflags>\"-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk\"
|
|
|
|
<linkflags>-mios-simulator-version-min=7
|
2018-01-19 23:07:08 +01:00
|
|
|
<linkflags>-fobjc-abi-version=2 ;" >>~/user-config.jam'
|
2018-01-15 11:53:20 +01:00
|
|
|
- 'echo "using darwin : ios : ccache clang++ : <cflags>-std=c11 <cxxflags>-std=c++11 <compileflags>-Wno-deprecated-declarations
|
|
|
|
<compileflags>\"-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk\"
|
|
|
|
<compileflags>-mios-version-min=7
|
|
|
|
<compileflags>\"-arch armv7\"
|
|
|
|
<compileflags>-fobjc-abi-version=2
|
|
|
|
<linkflags>\"-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk\"
|
|
|
|
<linkflags>-mios-version-min=7
|
|
|
|
<linkflags>\"-arch armv7\"
|
2018-01-19 23:07:08 +01:00
|
|
|
<linkflags>-fobjc-abi-version=2 ;" >>~/user-config.jam'
|
2020-02-16 10:44:33 +01:00
|
|
|
- 'echo "using python : : $(which python3) : /usr/local/Frameworks/Python.framework/Headers : : <target-os>darwin ;" >> ~/user-config.jam'
|
|
|
|
- 'echo "using python : : $(which python3) : : : <target-os>linux ;" >> ~/user-config.jam'
|
2018-04-04 19:48:26 +02:00
|
|
|
- if [ "$docs" == "1" ]; then rst2html.py --version; fi
|
2016-10-09 20:51:24 +02:00
|
|
|
- 'if [ "$lint" == "1" ]; then curl "https://raw.githubusercontent.com/google/styleguide/71ec7f1e524969c19ce33cfc72e8e023f2b98ee2/cpplint/cpplint.py" >~/cpplint.py; fi'
|
2018-06-12 11:43:13 +02:00
|
|
|
- 'if [ "$pylint" == "1" ]; then
|
|
|
|
sudo pip3 install flake8;
|
2020-02-16 10:44:33 +01:00
|
|
|
flake8 --version;
|
2018-06-12 11:43:13 +02:00
|
|
|
python3 -m flake8 --version;
|
|
|
|
fi'
|
2017-09-08 11:16:31 +02:00
|
|
|
- 'if [ $sonar_scan == "1" ]; then
|
2019-10-30 19:18:41 +01:00
|
|
|
wget --quiet https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip;
|
|
|
|
wget --quiet https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip;
|
|
|
|
unzip sonar-scanner-cli-4.2.0.1873-linux.zip;
|
2017-09-08 11:16:31 +02:00
|
|
|
unzip build-wrapper-linux-x86.zip;
|
2019-10-30 19:18:41 +01:00
|
|
|
export PATH=$PWD/sonar-scanner-4.2.0.1873-linux/bin:$PWD/build-wrapper-linux-x86:$PATH;
|
2017-09-08 11:16:31 +02:00
|
|
|
fi'
|
|
|
|
|
2017-02-04 23:24:29 +01:00
|
|
|
- ccache -V
|
|
|
|
- ccache --show-stats
|
|
|
|
- ccache --zero-stats
|
2015-06-05 02:15:57 +02:00
|
|
|
|
2016-10-09 15:27:29 +02:00
|
|
|
- 'if [[ "$arch" == "arm" ]]; then
|
2016-06-26 18:01:42 +02:00
|
|
|
cd test;
|
2016-09-02 22:42:55 +02:00
|
|
|
wget -O gcc-linaro.tar.xz https://releases.linaro.org/components/toolchain/binaries/5.3-2016.05/armv8l-linux-gnueabihf/gcc-linaro-5.3.1-2016.05-x86_64_armv8l-linux-gnueabihf.tar.xz;
|
|
|
|
tar xf gcc-linaro.tar.xz;
|
|
|
|
export PATH=${PWD}/gcc-linaro-5.3.1-2016.05-x86_64_armv8l-linux-gnueabihf/bin:${PATH};
|
2016-06-30 17:37:55 +02:00
|
|
|
armv8l-linux-gnueabihf-g++ --version;
|
2019-01-07 01:12:55 +01:00
|
|
|
wget -O boost.zip http://pilotfiber.dl.sourceforge.net/project/boost/boost/1.58.0/boost_1_58_0.zip;
|
2016-06-26 18:01:42 +02:00
|
|
|
unzip -qq boost.zip;
|
2019-01-07 01:12:55 +01:00
|
|
|
export BOOST_ROOT=$PWD/boost_1_58_0;
|
2017-11-05 18:14:26 +01:00
|
|
|
travis_retry sudo apt-get install -y qemu-user-static;
|
|
|
|
wget -O ubuntu-base.tar.gz http://cdimage.ubuntu.com/ubuntu-base/releases/14.04/release/ubuntu-base-14.04.5-base-armhf.tar.gz;
|
|
|
|
sudo mkdir rootfs;
|
|
|
|
sudo tar xf ubuntu-base.tar.gz -C rootfs;
|
2016-06-30 17:37:55 +02:00
|
|
|
sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/;
|
2016-06-26 18:01:42 +02:00
|
|
|
sudo chroot rootfs mount -t proc none /proc;
|
|
|
|
cd ..;
|
|
|
|
fi'
|
2015-12-16 03:07:26 +01:00
|
|
|
|
2018-07-17 15:01:01 +02:00
|
|
|
- if [[ "$cmake" == "1" ]]; then
|
|
|
|
which cmake;
|
|
|
|
cmake --version;
|
|
|
|
fi
|
2017-12-31 15:20:15 +01:00
|
|
|
|
2016-06-26 18:01:42 +02:00
|
|
|
script:
|
2016-04-29 19:28:28 +02:00
|
|
|
|
|
|
|
- cd docs
|
2016-06-19 08:32:12 +02:00
|
|
|
- 'if [ "$docs" == "1" ]; then
|
2018-08-19 23:35:06 +02:00
|
|
|
make spell-check html RST2HTML=rst2html.py AAFIGURE=echo;
|
2016-04-27 00:09:11 +02:00
|
|
|
fi'
|
2016-04-29 19:28:28 +02:00
|
|
|
- cd ..
|
2016-04-27 00:09:11 +02:00
|
|
|
|
2016-10-09 20:51:24 +02:00
|
|
|
- 'if [ "$lint" == "1" ]; then
|
2016-10-22 17:47:24 +02:00
|
|
|
python ~/cpplint.py --extensions=cpp --headers=hpp --filter=-,+runtime/explicit,+whitespace/end_of_line --linelength=90 test/*.{cpp,hpp} src/*.cpp include/libtorrent/*.hpp include/libtorrent/kademlia/*.hpp src/kademlia/*.cpp include/libtorrent/aux_/*.hpp include/libtorrent/extensions/*.hpp simulation/*.{cpp,hpp} tools/*.{cpp,hpp} examples/*.{cpp,hpp};
|
2016-10-09 20:51:24 +02:00
|
|
|
fi'
|
2018-06-12 11:43:13 +02:00
|
|
|
- 'if [ "$pylint" == "1" ]; then
|
|
|
|
flake8 --max-line-length=120;
|
|
|
|
python3 -m flake8 --max-line-length=120;
|
|
|
|
fi'
|
2017-09-08 11:16:31 +02:00
|
|
|
- 'if [ "$sonar_scan" == "1" ]; then
|
2019-11-20 11:13:58 +01:00
|
|
|
build-wrapper-linux-x86-64 --out-dir bw-output ${B2} -a -j2 optimization=off crypto=$crypto deprecated-functions=off $toolset variant=$variant -l300 &&
|
2017-09-08 11:16:31 +02:00
|
|
|
sonar-scanner -D sonar.login=$SONAR_TOKEN;
|
|
|
|
fi'
|
2018-07-17 15:01:01 +02:00
|
|
|
- 'if [[ $clang_tidy == "1" ]]; then
|
|
|
|
which clang-tidy;
|
|
|
|
clang-tidy --version;
|
2019-11-20 11:13:58 +01:00
|
|
|
${B2} -a -j2 clang_tidy;
|
2018-07-17 15:01:01 +02:00
|
|
|
fi'
|
2017-09-08 11:16:31 +02:00
|
|
|
|
2019-09-15 15:18:30 +02:00
|
|
|
# the common boost-build command line arguments. It's important they are all
|
|
|
|
# the same, in order for builds to be reused between invocations
|
|
|
|
- export B2_ARGS="crypto=$crypto debug-iterators=on picker-debugging=on asserts=on invariant-checks=full $toolset variant=$variant"
|
|
|
|
|
2019-10-15 08:25:26 +02:00
|
|
|
- 'if [[ $TRAVIS_OS_NAME == "osx" && "$crypto" == "openssl" ]]; then
|
|
|
|
export B2_ARGS="${B2_ARGS} openssl-lib=/usr/local/opt/openssl@1.1/lib openssl-include=/usr/local/opt/openssl@1.1/include" ;
|
|
|
|
fi'
|
|
|
|
|
2019-05-12 02:28:48 +02:00
|
|
|
- 'if [ "$check_headers" == "1" ]; then
|
2019-11-20 11:13:58 +01:00
|
|
|
${B2} -j2 check-headers ${B2_ARGS};
|
2019-05-12 02:28:48 +02:00
|
|
|
fi'
|
|
|
|
|
2016-04-27 00:09:11 +02:00
|
|
|
# if we are building with code coverage, report it as soon as possible
|
2016-07-02 06:41:48 +02:00
|
|
|
# libtorrent is the name of the test suite target
|
2016-04-29 19:28:28 +02:00
|
|
|
- cd test
|
2017-02-04 23:24:29 +01:00
|
|
|
- 'if [ "$tests" == "1" ]; then
|
2019-11-20 11:13:58 +01:00
|
|
|
${B2} -j2 warnings-as-errors=on warnings=all ${B2_ARGS} testing.execute=off &&
|
2019-09-15 15:18:30 +02:00
|
|
|
travis_retry ${B2} -j3 warnings-as-errors=on warnings=all ${B2_ARGS} -l300 &&
|
2019-11-20 11:13:58 +01:00
|
|
|
travis_retry ${B2} -j2 warnings-as-errors=on warnings=all ${B2_ARGS} test_natpmp enum_if -l300 &&
|
2018-11-14 14:48:05 +01:00
|
|
|
if [[ $TRAVIS_OS_NAME != "osx" ]]; then
|
2019-11-20 11:13:58 +01:00
|
|
|
travis_retry ${B2} -j2 warnings-as-errors=on warnings=all ${B2_ARGS} test_lsd -l300;
|
2018-11-14 14:48:05 +01:00
|
|
|
fi &&
|
2016-06-19 08:32:12 +02:00
|
|
|
if [ "$coverage" == "1" ]; then
|
2016-05-21 22:23:15 +02:00
|
|
|
codecov --root .. --gcov-exec gcov-5;
|
2016-04-27 00:09:11 +02:00
|
|
|
fi;
|
|
|
|
fi'
|
2015-12-16 03:07:26 +01:00
|
|
|
|
2019-04-06 19:02:31 +02:00
|
|
|
# build fuzzers with the same build configuration as the test above, to avoid
|
|
|
|
# rebuilding libtorrent itself.
|
|
|
|
- cd ../fuzzers
|
|
|
|
- 'if [ "$fuzzers" == "1" ]; then
|
2019-11-20 11:13:58 +01:00
|
|
|
${B2} -j2 warnings-as-errors=on warnings=all crypto=$crypto debug-iterators=on picker-debugging=on asserts=on invariant-checks=full $toolset variant=$variant sanitize=off fuzz=off link=shared stage;
|
2019-04-06 19:02:31 +02:00
|
|
|
fi'
|
|
|
|
|
2016-04-29 19:28:28 +02:00
|
|
|
- cd ../examples
|
2017-02-04 23:24:29 +01:00
|
|
|
- 'if [ "$examples" == "1" ]; then
|
2019-11-20 11:13:58 +01:00
|
|
|
${B2} -j2 warnings-as-errors=on warnings=all ${B2_ARGS} link=shared;
|
2016-04-29 19:28:28 +02:00
|
|
|
fi'
|
|
|
|
- cd ..
|
|
|
|
|
2016-05-31 23:48:41 +02:00
|
|
|
- cd tools
|
2017-02-04 23:24:29 +01:00
|
|
|
- 'if [ "$tools" == "1" ]; then
|
2019-11-20 11:13:58 +01:00
|
|
|
${B2} -j2 warnings-as-errors=on warnings=all ${B2_ARGS} link=shared;
|
2016-05-31 23:48:41 +02:00
|
|
|
fi'
|
|
|
|
- cd ..
|
|
|
|
|
2018-01-19 23:07:08 +01:00
|
|
|
- if [[ $ios == "1" ]]; then
|
2019-09-07 13:51:08 +02:00
|
|
|
${B2} -q darwin-ios darwin-ios_sim -j2 link=static;
|
2016-02-21 23:09:41 +01:00
|
|
|
fi
|
2018-01-19 23:07:08 +01:00
|
|
|
|
2016-10-09 23:00:20 +02:00
|
|
|
# a binary built with sanitizer does not interact well with python
|
2017-12-31 15:20:15 +01:00
|
|
|
# on OSX we need to use the brew version of python, for reasons explained above
|
2016-04-29 19:28:28 +02:00
|
|
|
- cd bindings/python
|
2017-02-04 23:24:29 +01:00
|
|
|
- 'if [[ "$python" == "1" ]]; then
|
2019-11-20 11:13:58 +01:00
|
|
|
${B2} -j2 warnings-as-errors=on warnings=all ${B2_ARGS} stage_module stage_dependencies libtorrent-link=shared boost-link=shared &&
|
2017-12-31 15:20:15 +01:00
|
|
|
if [[ $TRAVIS_OS_NAME == "osx" ]]; then
|
2020-02-16 10:44:33 +01:00
|
|
|
DYLD_LIBRARY_PATH=./dependencies python3 test.py -b;
|
2017-12-31 15:20:15 +01:00
|
|
|
else
|
2020-02-16 10:44:33 +01:00
|
|
|
LD_LIBRARY_PATH=./dependencies python3 test.py -b;
|
2017-12-31 15:20:15 +01:00
|
|
|
fi;
|
2016-04-27 00:09:11 +02:00
|
|
|
fi'
|
2016-04-29 19:28:28 +02:00
|
|
|
- cd ../..;
|
2015-12-16 03:07:26 +01:00
|
|
|
|
2016-04-27 00:09:11 +02:00
|
|
|
# simulation
|
2016-04-29 19:28:28 +02:00
|
|
|
- cd simulation
|
2017-02-04 23:24:29 +01:00
|
|
|
- 'if [[ "$sim" == "1" ]]; then
|
2019-09-07 13:51:08 +02:00
|
|
|
${B2} -j2 crypto=built-in warnings-as-errors=on warnings=all debug-iterators=on picker-debugging=on asserts=on invariant-checks=full $toolset deprecated-functions=off;
|
2016-04-27 00:09:11 +02:00
|
|
|
fi'
|
2016-04-29 19:28:28 +02:00
|
|
|
- cd ..
|
2016-04-27 00:09:11 +02:00
|
|
|
|
2018-02-04 02:03:40 +01:00
|
|
|
# minimal support for cmake build
|
2018-02-04 06:04:23 +01:00
|
|
|
- mkdir build && cd build
|
2018-02-04 02:03:40 +01:00
|
|
|
- if [[ "$cmake" == "1" ]]; then
|
|
|
|
export CXX=g++-5 &&
|
|
|
|
export CC=gcc-5 &&
|
2018-10-12 08:15:08 +02:00
|
|
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" -DCMAKE_CXX_STANDARD=11 -Dbuild_tests=ON -Dbuild_examples=ON -Dbuild_tools=ON -Dpython-bindings=ON -G Ninja .. &&
|
2019-11-20 11:13:58 +01:00
|
|
|
cmake --build . --parallel 2;
|
2018-02-04 02:03:40 +01:00
|
|
|
fi
|
|
|
|
- cd ..
|
|
|
|
|
2016-08-02 06:46:15 +02:00
|
|
|
# run through autotools and ./configure to make sure it works
|
2018-01-15 11:53:20 +01:00
|
|
|
- if [[ "$autotools" == "1" ]]; then
|
2016-07-04 23:08:16 +02:00
|
|
|
./autotool.sh &&
|
2016-08-02 06:46:15 +02:00
|
|
|
export CXX=g++-5 &&
|
2016-08-19 07:05:43 +02:00
|
|
|
export CC=gcc-5 &&
|
|
|
|
export CXXFLAGS="-Werror -Wno-deprecated-declarations" &&
|
2016-08-10 20:20:15 +02:00
|
|
|
./configure --enable-debug --enable-encryption --enable-examples --enable-tests --enable-python-binding &&
|
2016-08-02 06:46:15 +02:00
|
|
|
make -j2 check;
|
2018-01-15 11:53:20 +01:00
|
|
|
fi
|
2016-04-27 00:09:11 +02:00
|
|
|
|
2017-02-04 23:24:29 +01:00
|
|
|
- ccache --show-stats
|
2015-08-08 07:10:36 +02:00
|
|
|
|
2016-06-26 18:01:42 +02:00
|
|
|
- cd test
|
2016-10-09 15:27:29 +02:00
|
|
|
- 'if [[ "$arch" == "arm" ]];
|
2016-06-26 18:01:42 +02:00
|
|
|
then
|
2019-09-07 13:51:08 +02:00
|
|
|
${B2} arm-tests warnings-as-errors=on warnings=all crypto=$crypto variant=test_arm $toolset target-os=linux link=static testing.launcher="sudo cp -R bin rootfs/; sudo chroot rootfs";
|
2016-06-26 18:01:42 +02:00
|
|
|
fi'
|
|
|
|
- cd ..
|