2
0
mirror of https://github.com/boostorg/graph.git synced 2026-02-01 08:32:11 +00:00

Merge pull request #6 from apolukhin/antoshkka/visibility-issues

Antoshkka/visibility issues
This commit is contained in:
jrmarsha
2018-09-29 10:05:34 -04:00
committed by GitHub
9 changed files with 311 additions and 71 deletions

View File

@@ -1,65 +1,243 @@
# 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)
#
# Mael Valais, 2016
# This travis file has been inspired from boostorg/geometry/circle.yml.
#
# This file is intended to make use of travis-ci, a continuous integration
# service. The purpose is to build and run the tests on the graph module
# on every push, and be able to know if those commits are "clean" or if
# they break the build.
#
# I think that we shouldn't restrict on branches: PRs must also be tested
# So for now, I disabled the "only on branches" feature
#branches:
# only:
# - master
# - develop
# - test
# Copyright 2016, 2017 Peter Dimov
# Copyright 2018 Joh Maddock
# 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)
language: cpp
compiler: gcc
sudo: false
python: "2.7"
os:
- linux
- osx
branches:
only:
- master
- develop
env:
global:
- BOOST_BRANCH=$([[ "$TRAVIS_BRANCH" = "master" ]] && echo master || echo develop)
- BOOST=boost-local # must be different from graph/boost dir name
addons:
apt:
sources: ubuntu-toolchain-r-test
packages: g++-4.8
matrix:
- BOGUS_JOB=true
before_install:
# Clone boost repository
- cd
- mkdir $BOOST && cd $BOOST
- git init .
- git remote add --no-tags -t $BOOST_BRANCH origin https://github.com/boostorg/boost.git
- git fetch --depth=1
- git checkout $BOOST_BRANCH
- git submodule update --init --merge
- git remote set-branches --add origin $BOOST_BRANCH
- git pull --recurse-submodules
- git submodule update --init
- git checkout $BOOST_BRANCH
- git submodule foreach "git reset --quiet --hard; git clean -fxd"
- git reset --hard; git clean -fxd
- git status
matrix:
# replace the content of the library with the currently tested repo
- cd && pwd && ls
- rm -rf $BOOST/libs/graph
- cd $TRAVIS_BUILD_DIR && cd ..
- mv graph $HOME/$BOOST/libs/
exclude:
- env: BOGUS_JOB=true
# build b2 and create headers
- cd && cd $BOOST
include:
- os: linux
compiler: g++-4.4
env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98,0x
addons:
apt:
packages:
- g++-4.4
sources:
- ubuntu-toolchain-r-test
# Fails in Boost.Range dependency:
#- os: linux
# compiler: g++-4.6
# env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x
# addons:
# apt:
# packages:
# - g++-4.6
# sources:
# - ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
addons:
apt:
packages:
- g++-4.7
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11
addons:
apt:
packages:
- g++-4.8
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
addons:
apt:
packages:
- g++-4.9
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14
addons:
apt:
packages:
- g++-5
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- g++-6
sources:
- ubuntu-toolchain-r-test
- os: linux
dist: trusty
compiler: g++-7
env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17
addons:
apt:
packages:
- g++-7
sources:
- ubuntu-toolchain-r-test
- os: linux
dist: trusty
compiler: g++-8
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11,14,17
addons:
apt:
packages:
- g++-8
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11
addons:
apt:
packages:
- clang-3.5
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.5
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11
addons:
apt:
packages:
- clang-3.6
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.6
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11
addons:
apt:
packages:
- clang-3.7
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.7
# Fails to compile std lib headers (toolset issue):
#- os: linux
# env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z
# addons:
# apt:
# packages:
# - clang-3.8
# sources:
# - ubuntu-toolchain-r-test
# - llvm-toolchain-precise-3.8
#
#- os: linux
# env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z
# addons:
# apt:
# packages:
# - clang-3.9
# sources:
# - ubuntu-toolchain-r-test
# - llvm-toolchain-precise-3.9
- os: linux
compiler: clang++-4.0
env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-4.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-4.0
- os: linux
compiler: clang++-5.0
env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-5.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-5.0
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode8.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode8.2
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode8.1
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode8.0
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode7.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode6.4
install:
- cd ..
- git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
- cd boost-root
- git submodule update --init tools/build
- git submodule update --init libs/config
- git submodule update --init tools/boostdep
- cp -r $TRAVIS_BUILD_DIR/* libs/graph
- python tools/boostdep/depinst/depinst.py graph
- ./bootstrap.sh
- ./b2 headers
# This part is meant for unit tests
script:
- cd $HOME/$BOOST/libs/graph/test
- ../../../b2 toolset=gcc-4.8 cxxflags=-std=c++11
- |-
echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
- IFS=','
- for CXXLOCAL in $CXXSTD; do (cd libs/config/test && ../../../b2 config_info_travis_install toolset=$TOOLSET cxxstd=$CXXLOCAL && ./config_info_travis && rm ./config_info_travis) done
- unset IFS
- ./b2 -j3 libs/graph/test toolset=$TOOLSET cxxstd=$CXXSTD
notifications:
email:
on_success: always

62
appveyor.yml Normal file
View File

@@ -0,0 +1,62 @@
# Copyright 2016 Peter Dimov
# 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:
- master
- develop
platform:
- x64
environment:
matrix:
- ARGS: --toolset=msvc-9.0 address-model=32
- ARGS: --toolset=msvc-10.0 address-model=32
- ARGS: --toolset=msvc-11.0 address-model=32
- ARGS: --toolset=msvc-12.0 address-model=32
- ARGS: --toolset=msvc-14.0 address-model=32
- ARGS: --toolset=msvc-12.0 address-model=64
- ARGS: --toolset=msvc-14.0 address-model=64
- ARGS: --toolset=msvc-14.0 address-model=64 cxxflags=-std:c++latest
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=64
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=32
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=64 cxxflags=-std:c++latest
- ARGS: --toolset=gcc address-model=64
PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
- ARGS: --toolset=gcc address-model=64 cxxflags=-std=gnu++1z
PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
- ARGS: --toolset=gcc address-model=32
PATH: C:\mingw-w64\i686-5.3.0-posix-dwarf-rt_v4-rev0\mingw32\bin;%PATH%
- ARGS: --toolset=gcc address-model=32 linkflags=-Wl,-allow-multiple-definition
PATH: C:\MinGW\bin;%PATH%
install:
- cd ..
- git clone -b %APPVEYOR_REPO_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
- cd boost-root
- git submodule update --init tools/build
- git submodule update --init libs/config
- xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\graph
- git submodule update --init tools/boostdep
- python tools/boostdep/depinst/depinst.py graph
- bootstrap
- b2 headers
build: off
test_script:
- cd libs\config\test
- ..\..\..\b2 config_info_travis_install %ARGS%
- config_info_travis
- cd ..\..\graph\test
- ..\..\..\b2 -j3 --hash %ARGS%

View File

@@ -32,7 +32,7 @@ namespace boost {
*/
template <typename Vertex>
struct bipartite_visitor_error: std::exception
struct BOOST_SYMBOL_VISIBLE bipartite_visitor_error: std::exception
{
std::pair <Vertex, Vertex> witnesses;

View File

@@ -21,7 +21,7 @@
namespace boost { namespace graph {
class dimacs_exception : public std::exception {};
class BOOST_SYMBOL_VISIBLE dimacs_exception : public std::exception {};
class dimacs_basic_reader {
public:

View File

@@ -15,36 +15,36 @@
namespace boost {
struct bad_graph : public std::invalid_argument {
struct BOOST_SYMBOL_VISIBLE bad_graph : public std::invalid_argument {
bad_graph(const std::string& what_arg)
: std::invalid_argument(what_arg) { }
};
struct not_a_dag : public bad_graph {
struct BOOST_SYMBOL_VISIBLE not_a_dag : public bad_graph {
not_a_dag()
: bad_graph("The graph must be a DAG.")
{ }
};
struct negative_edge : public bad_graph {
struct BOOST_SYMBOL_VISIBLE negative_edge : public bad_graph {
negative_edge()
: bad_graph("The graph may not contain an edge with negative weight.")
{ }
};
struct negative_cycle : public bad_graph {
struct BOOST_SYMBOL_VISIBLE negative_cycle : public bad_graph {
negative_cycle()
: bad_graph("The graph may not contain negative cycles.")
{ }
};
struct not_connected : public bad_graph {
struct BOOST_SYMBOL_VISIBLE not_connected : public bad_graph {
not_connected()
: bad_graph("The graph must be connected.")
{ }
};
struct not_complete : public bad_graph {
struct BOOST_SYMBOL_VISIBLE not_complete : public bad_graph {
not_complete()
: bad_graph("The graph must be complete.")
{ }

View File

@@ -34,7 +34,7 @@ namespace boost
/////////////////////////////////////////////////////////////////////////////
// Graph reader exceptions
/////////////////////////////////////////////////////////////////////////////
struct parse_error: public graph_exception
struct BOOST_SYMBOL_VISIBLE parse_error: public graph_exception
{
parse_error(const std::string& err) {error = err; statement = "parse error: " + error;}
virtual ~parse_error() throw() {}

View File

@@ -616,12 +616,12 @@ namespace boost {
/////////////////////////////////////////////////////////////////////////////
// Graph reader exceptions
/////////////////////////////////////////////////////////////////////////////
struct graph_exception : public std::exception {
struct BOOST_SYMBOL_VISIBLE graph_exception : public std::exception {
virtual ~graph_exception() throw() {}
virtual const char* what() const throw() = 0;
};
struct bad_parallel_edge : public graph_exception {
struct BOOST_SYMBOL_VISIBLE bad_parallel_edge : public graph_exception {
std::string from;
std::string to;
mutable std::string statement;
@@ -639,7 +639,7 @@ struct bad_parallel_edge : public graph_exception {
}
};
struct directed_graph_error : public graph_exception {
struct BOOST_SYMBOL_VISIBLE directed_graph_error : public graph_exception {
virtual ~directed_graph_error() throw() {}
virtual const char* what() const throw() {
return
@@ -648,7 +648,7 @@ struct directed_graph_error : public graph_exception {
}
};
struct undirected_graph_error : public graph_exception {
struct BOOST_SYMBOL_VISIBLE undirected_graph_error : public graph_exception {
virtual ~undirected_graph_error() throw() {}
virtual const char* what() const throw() {
return
@@ -657,7 +657,7 @@ struct undirected_graph_error : public graph_exception {
}
};
struct bad_graphviz_syntax: public graph_exception {
struct BOOST_SYMBOL_VISIBLE bad_graphviz_syntax: public graph_exception {
std::string errmsg;
bad_graphviz_syntax(const std::string& errmsg)
: errmsg(errmsg) {}

View File

@@ -19,7 +19,7 @@
namespace boost {
struct loop_erased_random_walk_stuck : public std::exception {
struct BOOST_SYMBOL_VISIBLE loop_erased_random_walk_stuck : public std::exception {
virtual ~loop_erased_random_walk_stuck() throw() {}
inline virtual const char* what() const throw() {
return "Loop-erased random walk found a vertex with no out-edges";

View File

@@ -26,8 +26,8 @@
namespace boost { namespace graph {
class metis_exception : public std::exception {};
class metis_input_exception : public metis_exception {};
class BOOST_SYMBOL_VISIBLE metis_exception : public std::exception {};
class BOOST_SYMBOL_VISIBLE metis_input_exception : public metis_exception {};
class metis_reader
{