Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- travis with valgrind, cppcheck, ubsan, codecov, covscan (future) - appveyor with MSVC 2010 through 2017, cygwin 32/64, mingw 32/64 - README, LICENSE, etc.
- Loading branch information
Showing
15 changed files
with
539 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
fixes: | ||
- home/travis/build/*/boost-root/boost/::include/boost/ | ||
- home/travis/build/*/boost-root/libs/*/src/::src/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,173 @@ | ||
# Copyright 2016 Peter Dimov | ||
# Copyright 2017, 2018 James E. King III | ||
# Distributed under the Boost Software License, Version 1.0. | ||
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) | ||
|
||
# | ||
# Generic Travis CI build script for boostorg repositories | ||
# | ||
# Instructions for customizing this script for your library: | ||
# | ||
# 1. Copy the ci/ directory from the same source into your project: | ||
# ci/build.sh runs the build | ||
# ci/codecov.sh is used to run a profiling build and upload results to codecov.io | ||
# ci/coverity.sh is used to run a coverity build and upload results to coverity scan | ||
# 2. Customize the compilers and language levels you want. Default is C++03. | ||
# 3. Update the global B2 environment settings to your liking. | ||
# 4. If you have more than include/, src/, and test/ directories then | ||
# add them to the depinst.py line as "--include tools" for tools/ (you | ||
# can put multiple --include on the command line). | ||
# 5. If you want to enable Coverity Scan, you need to provide the environment | ||
# variables COVERITY_SCAN_TOKEN and COVERITY_SCAN_NOTIFICATION_EMAIL in | ||
# your github settings. | ||
# 6. Enable pull request builds in your boostorg/<library> account. | ||
# 7. Change the default C++ version in ci/*.sh (search for CXXSTD) | ||
# | ||
# That's it - the scripts will do everything else for you. | ||
|
||
sudo: false | ||
dist: trusty | ||
language: cpp | ||
|
||
env: | ||
global: | ||
# see: http://www.boost.org/build/doc/html/bbv2/overview/invocation.html#bbv2.overview.invocation.properties | ||
# to use the default for a given environment, comment it out; recommend you build debug and release however.. | ||
# - B2_ADDRESS_MODEL=address-model=64,32 | ||
# - B2_LINK=link=shared,static | ||
# - B2_THREADING=threading=multi,single | ||
- B2_VARIANT=variant=release,debug | ||
|
||
install: | ||
- export SLUG=`basename $TRAVIS_BUILD_DIR` | ||
- export SELF=numeric/`basename $TRAVIS_BUILD_DIR` | ||
- cd .. | ||
- git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root | ||
- cd boost-root | ||
- git submodule update -q --init tools/boostdep | ||
- git submodule update -q --init tools/build | ||
- git submodule update -q --init tools/inspect | ||
- cp -r $TRAVIS_BUILD_DIR/* libs/$SELF | ||
- export BOOST_ROOT="`pwd`" | ||
- export PATH="`pwd`":$PATH | ||
- python tools/boostdep/depinst/depinst.py --include examples $SELF | ||
- ./bootstrap.sh | ||
- ./b2 headers | ||
|
||
addons: | ||
apt: | ||
packages: | ||
- binutils-gold | ||
- gdb | ||
- libc6-dbg | ||
|
||
branches: | ||
only: | ||
- develop | ||
- master | ||
|
||
script: | ||
- cd libs/$SELF | ||
- ci/build.sh | ||
|
||
jobs: | ||
include: | ||
#################### Jobs to run on every pull request #################### | ||
- os: linux | ||
env: | ||
- COMMENT="C++03" | ||
- TOOLSET=gcc,gcc-7,clang | ||
addons: | ||
apt: | ||
packages: | ||
- g++-7 | ||
sources: | ||
- ubuntu-toolchain-r-test | ||
- os: linux | ||
env: | ||
- COMMENT="C++11" | ||
- TOOLSET=gcc,gcc-7,clang | ||
- CXXSTD=11 | ||
addons: | ||
apt: | ||
packages: | ||
- g++-7 | ||
sources: | ||
- ubuntu-toolchain-r-test | ||
- os: linux | ||
env: | ||
- COMMENT=valgrind | ||
- TOOLSET=clang | ||
- B2_VARIANT=variant=debug | ||
- TESTFLAGS=testing.launcher=valgrind | ||
addons: | ||
apt: | ||
packages: | ||
- clang-5.0 | ||
- libstdc++-7-dev | ||
- valgrind | ||
sources: | ||
- llvm-toolchain-trusty-5.0 | ||
- ubuntu-toolchain-r-test | ||
|
||
- os: linux | ||
env: | ||
- COMMENT=cppcheck | ||
script: | ||
- libs/$SELF/ci/cppcheck.sh | ||
|
||
- os: linux | ||
env: | ||
- COMMENT=UBSAN | ||
- B2_VARIANT=variant=debug | ||
- TOOLSET=gcc-7 | ||
- CXXFLAGS="cxxflags=-fno-omit-frame-pointer cxxflags=-fsanitize=undefined cxxflags=-fno-sanitize-recover=undefined" | ||
- LINKFLAGS="linkflags=-fsanitize=undefined linkflags=-fno-sanitize-recover=undefined linkflags=-fuse-ld=gold" | ||
- UBSAN_OPTIONS=print_stacktrace=1 | ||
addons: | ||
apt: | ||
packages: | ||
- g++-7 | ||
sources: | ||
- ubuntu-toolchain-r-test | ||
|
||
- os: linux | ||
env: | ||
- COMMENT=CodeCov | ||
- TOOLSET=gcc-7 | ||
addons: | ||
apt: | ||
packages: | ||
- gcc-7 | ||
- g++-7 | ||
sources: | ||
- ubuntu-toolchain-r-test | ||
script: | ||
- pushd /tmp && git clone https://github.com/linux-test-project/lcov.git && cd lcov && sudo make install && which lcov && lcov --version && popd | ||
- cd libs/$SELF | ||
- ci/codecov.sh | ||
|
||
# osx was disabled because it is very slow to start (can delay builds by 30 minutes) | ||
# - os: osx | ||
# osx_image: xcode9 | ||
# env: | ||
# - TOOLSET=clang | ||
# - CXXSTD=03,11 | ||
|
||
#################### Jobs to run on pushes to master, develop ################### | ||
|
||
# Coverity Scan | ||
- os: linux | ||
if: (branch IN (develop, master)) AND (type IN (cron, push)) | ||
env: | ||
- COMMENT="Coverity Scan" | ||
- TOOLSET=gcc | ||
script: | ||
- echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca- | ||
- cd libs/$SELF | ||
- ci/coverity.sh | ||
|
||
notifications: | ||
email: | ||
false | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Boost.Interval Library Jamfile | ||
# | ||
# Copyright (c) 2018 James E. King III | ||
# | ||
# Use, modification, and distribution are subject to the | ||
# Boost Software License, Version 1.0. (See accompanying file | ||
# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
|
||
# please order by name to ease maintenance | ||
build-project examples ; | ||
build-project test ; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
Boost Software License - Version 1.0 - August 17th, 2003 | ||
|
||
Permission is hereby granted, free of charge, to any person or organization | ||
obtaining a copy of the software and accompanying documentation covered by | ||
this license (the "Software") to use, reproduce, display, distribute, | ||
execute, and transmit the Software, and to prepare derivative works of the | ||
Software, and to permit third-parties to whom the Software is furnished to | ||
do so, all subject to the following: | ||
|
||
The copyright notices in the Software and this entire statement, including | ||
the above license grant, this restriction and the following disclaimer, | ||
must be included in all copies of the Software, in whole or in part, and | ||
all derivative works of the Software, unless such copies or derivative | ||
works are solely in the form of machine-executable object code generated by | ||
a source language processor. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
DEALINGS IN THE SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
Interval, part of the collection of [Boost C++ Libraries](http://github.com/boostorg), is intended to help manipulating mathematical intervals. | ||
|
||
### License | ||
|
||
Distributed under the [Boost Software License, Version 1.0](http://www.boost.org/LICENSE_1_0.txt). | ||
|
||
### Properties | ||
|
||
* C++03 | ||
* Header-only | ||
|
||
### Build Status | ||
|
||
Branch | Travis | Appveyor | Coverity Scan | codecov.io | Deps | Docs | Tests | | ||
:-------------: | ------ | -------- | ------------- | ---------- | ---- | ---- | ----- | | ||
[`master`](https://github.com/boostorg/interval/tree/master) | [![Build Status](https://travis-ci.org/boostorg/interval.svg?branch=master)](https://travis-ci.org/boostorg/interval) | [![Build status](https://ci.appveyor.com/api/projects/status/tkcumf8nu6tb697d/branch/master?svg=true)](https://ci.appveyor.com/project/jeking3/interval-bhjc4/branch/master) | [![Coverity Scan Build Status](https://scan.coverity.com/projects/14007/badge.svg)](https://scan.coverity.com/projects/boostorg-interval) | [![codecov](https://codecov.io/gh/boostorg/interval/branch/master/graph/badge.svg)](https://codecov.io/gh/boostorg/interval/branch/master) | [![Deps](https://img.shields.io/badge/deps-master-brightgreen.svg)](https://pdimov.github.io/boostdep-report/master/interval.html) | [![Documentation](https://img.shields.io/badge/docs-master-brightgreen.svg)](http://www.boost.org/doc/libs/master/doc/html/interval.html) | [![Enter the Matrix](https://img.shields.io/badge/matrix-master-brightgreen.svg)](http://www.boost.org/development/tests/master/developer/interval.html) | ||
[`develop`](https://github.com/boostorg/interval/tree/develop) | [![Build Status](https://travis-ci.org/boostorg/interval.svg?branch=develop)](https://travis-ci.org/boostorg/interval) | [![Build status](https://ci.appveyor.com/api/projects/status/tkcumf8nu6tb697d/branch/develop?svg=true)](https://ci.appveyor.com/project/jeking3/interval-bhjc4/branch/develop) | [![Coverity Scan Build Status](https://scan.coverity.com/projects/14007/badge.svg)](https://scan.coverity.com/projects/boostorg-interval) | [![codecov](https://codecov.io/gh/boostorg/interval/branch/develop/graph/badge.svg)](https://codecov.io/gh/boostorg/interval/branch/develop) | [![Deps](https://img.shields.io/badge/deps-develop-brightgreen.svg)](https://pdimov.github.io/boostdep-report/develop/interval.html) | [![Documentation](https://img.shields.io/badge/docs-develop-brightgreen.svg)](http://www.boost.org/doc/libs/develop/doc/html/interval.html) | [![Enter the Matrix](https://img.shields.io/badge/matrix-develop-brightgreen.svg)](http://www.boost.org/development/tests/develop/developer/interval.html) | ||
|
||
### Directories | ||
|
||
| Name | Purpose | | ||
| ----------- | ------------------------------ | | ||
| `ci` | continuous integration scripts | | ||
| `doc` | documentation | | ||
| `examples` | use case examples | | ||
| `include` | headers | | ||
| `test` | unit tests | | ||
|
||
### More inintervalion | ||
|
||
* [Ask questions](http://stackoverflow.com/questions/ask?tags=c%2B%2B,boost,boost-interval): Be sure to read the documentation first as Boost.Format, like any other string intervalting library, has its own rules. | ||
* [Report bugs](https://github.com/boostorg/interval/issues): Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well. | ||
* [Submit Pull Requests](https://github.com/boostorg/interval/pulls) against the **develop** branch. Note that by submitting patches you agree to license your modifications under the [Boost Software License, Version 1.0](http://www.boost.org/LICENSE_1_0.txt). Be sure to include tests proving your changes work properly. | ||
* Discussions about the library are held on the [Boost developers mailing list](http://www.boost.org/community/groups.html#main). Be sure to read the [discussion policy](http://www.boost.org/community/policy.html) before posting and add the `[interval]` tag at the beginning of the subject line. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
# Copyright 2016, 2017 Peter Dimov | ||
# Copyright (C) 2017, 2018 James E. King III | ||
# Distributed under the Boost Software License, Version 1.0. | ||
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) | ||
|
||
version: 1.0.{build}-{branch} | ||
|
||
shallow_clone: true | ||
|
||
branches: | ||
only: | ||
- develop | ||
- master | ||
|
||
matrix: | ||
allow_failures: | ||
- MAYFAIL: true | ||
|
||
environment: | ||
global: | ||
# see: http://www.boost.org/build/doc/html/bbv2/overview/invocation.html#bbv2.overview.invocation.properties | ||
# to use the default for a given environment, comment it out; recommend you build debug and release however.. | ||
# on Windows it is important to exercise all the possibilities, especially shared vs static | ||
# B2_ADDRESS_MODEL: address-model=64,32 | ||
# B2_LINK: link=shared,static | ||
# B2_THREADING: threading=multi,single | ||
B2_VARIANT: variant=release,debug | ||
CXXSTD: 03 | ||
|
||
matrix: | ||
- FLAVOR: Visual Studio 2017 | ||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 | ||
TOOLSET: msvc-14.1 | ||
B2_ADDRESS_MODEL: address-model=64,32 | ||
- FLAVOR: Visual Studio 2015 | ||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 | ||
TOOLSET: msvc-14.0 | ||
B2_ADDRESS_MODEL: address-model=64,32 | ||
- FLAVOR: Visual Studio 2010, 2012, 2013 | ||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 | ||
TOOLSET: msvc-10.0,msvc-11.0,msvc-12.0 | ||
- FLAVOR: cygwin (32-bit) | ||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 | ||
ADDPATH: C:\cygwin\bin; | ||
B2_ADDRESS_MODEL: address-model=32 | ||
TOOLSET: gcc | ||
- FLAVOR: cygwin (64-bit) | ||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 | ||
ADDPATH: C:\cygwin64\bin; | ||
B2_ADDRESS_MODEL: address-model=64 | ||
TOOLSET: gcc | ||
- FLAVOR: mingw32 | ||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 | ||
ARCH: i686 | ||
B2_ADDRESS_MODEL: address-model=32 | ||
SCRIPT: ci\mingw.bat | ||
- FLAVOR: mingw64 | ||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 | ||
ARCH: x86_64 | ||
B2_ADDRESS_MODEL: address-model=64 | ||
SCRIPT: ci\mingw.bat | ||
|
||
install: | ||
- set SELF=numeric\%APPVEYOR_PROJECT_SLUG% | ||
- cd .. | ||
- git clone -b %APPVEYOR_REPO_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root | ||
- cd boost-root | ||
- git submodule update -q --init tools/boostdep | ||
- git submodule update -q --init tools/build | ||
- git submodule update -q --init tools/inspect | ||
- xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\%SELF% | ||
- python tools/boostdep/depinst/depinst.py --include examples %SELF% | ||
- cmd /c bootstrap | ||
- b2 headers | ||
|
||
build: off | ||
|
||
test_script: | ||
- set SELF=numeric\%APPVEYOR_PROJECT_SLUG% | ||
- PATH=%ADDPATH%%PATH% | ||
- IF DEFINED SCRIPT (call libs\%SELF%\%SCRIPT%) ELSE (b2 libs/%SELF% toolset=%TOOLSET% cxxstd=%CXXSTD% %CXXFLAGS% %DEFINES% %B2_ADDRESS_MODEL% %B2_LINK% %B2_THREADING% %B2_VARIANT% -j3) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
#! /bin/bash | ||
# | ||
# Copyright 2017 James E. King III | ||
# Distributed under the Boost Software License, Version 1.0. | ||
# (See accompanying file LICENSE_1_0.txt or copy at | ||
# http://www.boost.org/LICENSE_1_0.txt) | ||
# | ||
# Bash script to run in travis to perform a bjam build | ||
# cwd should be $BOOST_ROOT/libs/$SELF before running | ||
# | ||
|
||
set -ex | ||
|
||
# default language level: c++03 | ||
if [[ -z "$CXXSTD" ]]; then | ||
CXXSTD=03 | ||
fi | ||
|
||
$BOOST_ROOT/b2 . toolset=$TOOLSET cxxstd=$CXXSTD $CXXFLAGS $DEFINES $LINKFLAGS $TESTFLAGS $B2_ADDRESS_MODEL $B2_LINK $B2_THREADING $B2_VARIANT -j3 $* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
#! /bin/bash | ||
# | ||
# Copyright 2017, 2018 James E. King III | ||
# Distributed under the Boost Software License, Version 1.0. | ||
# (See accompanying file LICENSE_1_0.txt or copy at | ||
# http://www.boost.org/LICENSE_1_0.txt) | ||
# | ||
# Bash script to run in travis to perform codecov.io integration | ||
# | ||
|
||
### | ||
### NOTE: Make sure you grab .codecov.yml | ||
### | ||
|
||
# assumes cwd is the top level directory of the boost project | ||
# assumes an environment variable $SELF is the boost project name | ||
|
||
set -ex | ||
|
||
B2_VARIANT=debug | ||
ci/build.sh cxxflags=-fprofile-arcs cxxflags=-ftest-coverage linkflags=-fprofile-arcs linkflags=-ftest-coverage | ||
|
||
# switch back to the original source code directory | ||
cd $TRAVIS_BUILD_DIR | ||
|
||
# get the version of lcov | ||
lcov --version | ||
|
||
# coverage files are in ../../b2 from this location | ||
lcov --gcov-tool=gcov-7 --rc lcov_branch_coverage=1 --base-directory "$BOOST_ROOT/libs/$SELF" --directory "$BOOST_ROOT" --capture --output-file all.info | ||
|
||
# all.info contains all the coverage info for all projects - limit to ours | ||
lcov --gcov-tool=gcov-7 --rc lcov_branch_coverage=1 --extract all.info "*/boost/$SELF/*" "*/libs/$SELF/src/*" --output-file coverage.info | ||
|
||
# dump a summary on the console - helps us identify problems in pathing | ||
lcov --gcov-tool=gcov-7 --rc lcov_branch_coverage=1 --list coverage.info | ||
|
||
# | ||
# upload to codecov.io | ||
# | ||
curl -s https://codecov.io/bash > .codecov | ||
chmod +x .codecov | ||
./.codecov -f coverage.info -X gcov -x "gcov-7" |
Oops, something went wrong.