Coder Social home page Coder Social logo

bcp's Introduction

BCP Tool Build Status

The bcp utility is a tool for extracting subsets of Boost, it's useful for Boost authors who want to distribute their library separately from Boost, and for Boost users who want to distribute a subset of Boost with their application.

bcp can also report on which parts of Boost your code is dependent on, and what licences are used by those dependencies.

The full documentation is available on boost.org.

Master Develop
Travis Build Status Build Status

Support, bugs and feature requests

Bugs and feature requests can be reported through the Gitub issue tracker (see open issues and closed issues).

You can submit your changes through a pull request.

bcp's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

bcp's Issues

bcp --namespace breaks path to import boost_install in Jamroot

When using bcp.exe to create a boost subset with a new namespace, building the subset is broken because in the Jamfile the import for boost_install has had the "boost_" portion renamed to the new namespace.

Build\boost>.\dist\bin\bcp.exe --namespace=myboost --namespace-alias regex log headers predef config build boost_install ..\foo
Build\boost>cd ..\foo
Build\foo>.\bootstrap.bat
Build\foo>.\b2 toolset=msvc-14.1 --with-regex --with-log
boost-install.jam: No such file or directory
Jamroot:307: in boost-install
ERROR: rule "boost-install.boost-install" unknown in module "Jamfile<Build\foo>".
libs\atomic\build\Jamfile.v2:38: in modules.load

Deprecated features have been removed from boost::filesystem.

bcp uses a couple of features that have been removed from boost::filesystem in the 1.85.0 release of boost.
See https://www.boost.org/doc/libs/1_85_0/libs/filesystem/doc/deprecated.html
As a result bcp can't be built anymore using the latest version.
It looks like most of the issues are functions that had their name changed, or definitions that moved to a different header.

Edit: I just noticed that you already have a pull request to fix it, so you can disregard this post.

Extracting Boost Python does not copy an obscurely included header

Hi,

I'm not sure if this is a bug or not, as it's quite obscure.

Example using Boost 1.79.0: https://gist.github.com/foundry-markf/89e0d9893ecf6614821e4d55188be158

In short, extracting and building Boost Python using bcp, results in an error failing to find a header:

In file included from libs/python/src/object/inheritance.cpp:7:
In file included from ./boost/graph/breadth_first_search.hpp:26:
./boost/graph/two_bit_color_map.hpp:106:10: fatal error: 'boost/graph/detail/empty_header.hpp' file not found
#include BOOST_GRAPH_MPI_INCLUDE(<boost/graph/distributed/two_bit_color_map.hpp>)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./boost/graph/detail/mpi_include.hpp:13:36: note: expanded from macro 'BOOST_GRAPH_MPI_INCLUDE'
#define BOOST_GRAPH_MPI_INCLUDE(x) <boost/graph/detail/empty_header.hpp>
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

This header is rather obscurely included, from its definition

#if defined BOOST_GRAPH_USE_MPI
#define BOOST_GRAPH_MPI_INCLUDE(x) x
#else
#define BOOST_GRAPH_MPI_INCLUDE(x) <boost/graph/detail/empty_header.hpp>
#endif

and use

#include BOOST_GRAPH_MPI_INCLUDE(< boost / graph / distributed / two_bit_color_map.hpp >)

so I'm not surprised at the error.

The question here is should bcp cope with this?

I've included in the gist, a workaround, by specifying the missing header on the module list, so this is not a blocker for me.

Thanks.

Namespaced boost does not build

Using this script:


tar -xjf boost_1_71_0.tar.bz2
cd boost_1_71_0
./bootstrap.sh 
./b2 tools/bcp/
mkdir nsboost
./dist/bin/bcp --namespace=nsboost boost libs tools status LICENSE_1_0.txt b2 bjam boost-build.jam boostcpp.jam ./nsboost
cd nsboost
./bootstrap.sh
./b2 

I get this:

.
gcc.compile.c++ bin.v2/libs/python/build/gcc-7/release/python-2.7/threading-multi/visibility-hidden/object/inheritance.o
In file included from ./boost/unordered/detail/set.hpp:6:0,
                 from ./boost/unordered/unordered_set.hpp:20,
                 from ./boost/unordered_set.hpp:17,
                 from ./boost/graph/adjacency_list.hpp:21,
                 from libs/python/src/object/inheritance.cpp:11:
./boost/unordered/detail/implementation.hpp:1606:52: error: ‘boost’ has not been declared
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 1, boost)
                                                    ^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
     ^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1606:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 1, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1606:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 1, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                               ^
./boost/unordered/detail/implementation.hpp:1606:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 1, boost)
         ^
./boost/unordered/detail/implementation.hpp:1607:52: error: ‘boost’ has not been declared
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 2, boost)
                                                    ^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
     ^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1607:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 2, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1607:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 2, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                               ^
./boost/unordered/detail/implementation.hpp:1607:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 2, boost)
         ^
./boost/unordered/detail/implementation.hpp:1608:52: error: ‘boost’ has not been declared
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 3, boost)
                                                    ^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
     ^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1608:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 3, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1608:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 3, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                               ^
./boost/unordered/detail/implementation.hpp:1608:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 3, boost)
         ^
./boost/unordered/detail/implementation.hpp:1609:52: error: ‘boost’ has not been declared
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 4, boost)
                                                    ^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
     ^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1609:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 4, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1609:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 4, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                               ^
./boost/unordered/detail/implementation.hpp:1609:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 4, boost)
         ^
./boost/unordered/detail/implementation.hpp:1610:52: error: ‘boost’ has not been declared
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 5, boost)
                                                    ^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
     ^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1610:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 5, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1610:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 5, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                               ^
./boost/unordered/detail/implementation.hpp:1610:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 5, boost)
         ^
./boost/unordered/detail/implementation.hpp:1611:52: error: ‘boost’ has not been declared
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 6, boost)
                                                    ^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
     ^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1611:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 6, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1611:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 6, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                               ^
./boost/unordered/detail/implementation.hpp:1611:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 6, boost)
         ^
./boost/unordered/detail/implementation.hpp:1612:52: error: ‘boost’ has not been declared
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 7, boost)
                                                    ^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
     ^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1612:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 7, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1612:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 7, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                               ^
./boost/unordered/detail/implementation.hpp:1612:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 7, boost)
         ^
./boost/unordered/detail/implementation.hpp:1613:52: error: ‘boost’ has not been declared
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 8, boost)
                                                    ^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
     ^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1613:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 8, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1613:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 8, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                               ^
./boost/unordered/detail/implementation.hpp:1613:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 8, boost)
         ^
./boost/unordered/detail/implementation.hpp:1614:52: error: ‘boost’ has not been declared
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 9, boost)
                                                    ^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
     ^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1614:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 9, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1614:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 9, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                               ^
./boost/unordered/detail/implementation.hpp:1614:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 9, boost)
         ^
./boost/unordered/detail/implementation.hpp:1615:53: error: ‘boost’ has not been declared
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 10, boost)
                                                     ^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
     ^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1615:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 10, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                        ^
./boost/unordered/detail/implementation.hpp:1615:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 10, boost)
         ^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
     namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)               \
                                                               ^
./boost/unordered/detail/implementation.hpp:1615:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
         BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 10, boost)
         ^

    "g++"   -fvisibility-inlines-hidden -fPIC -m64 -pthread -O3 -finline-functions -Wno-inline -Wall -fvisibility=hidden  -DBOOST_ALL_NO_LIB=1 -DBOOST_PYTHON_SOURCE -DNDEBUG  -I"." -I"/usr/include/python2.7" -c -o "bin.v2/libs/python/build/gcc-7/release/python-2.7/threading-multi/visibility-hidden/object/inheritance.o" "libs/python/src/object/inheritance.cpp"

...failed gcc.compile.c++ bin.v2/libs/python/build/gcc-7/release/python-2.7/threading-multi/visibility-hidden/object/inheritance.o...
...failed updating 1 target...

It appears that the boost inside the BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE macro should be nsboost.

bcp in 1.81.0 no longer seems to copy boostrap.sh, etc.

In previous releases (specifically 1.79.0 and before) I could do:

bcp build core system stacktrace /tmp/test 

and /tmp/test includes bootstrap.sh, boost-build.jam, and so on. All the infrastructure needed so I can just run bootstrap.sh and then b2 to build the necessary libraries. But in 1.81.0 it does not. (I've no idea why: it looks like bcp itself is identical in the two versions.)

how to change the include dir synchronously?

// before bcp (normally use)
#include <boost/foo/bar.hpp>

boost::foo::bar bar;
// after bcp (ideally use)
#include <toast/foo/bar.hpp>

toast::foo::bar bar;
  • but now i can only use #include <boost/foo/bar.hpp> with toast::foo::bar bar instead

bcp crashes with stack overflow on ubuntu16.04

Using https://github.com/conan-community/conan-boost with boost:namespace = boost_ns and boost:namespace_alias = True will fail with Boost 1.70 on ubuntu 16.04 with a core dump.

...
INFO: tracking source dependencies of library log due to presence of "class light_rw_mutex
{" in file "boost/log/detail/light_rw_mutex.hpp"
INFO: tracking source dependencies of library random due to presence of "class random_device : private noncopyable
{" in file "boost/random/random_device.hpp"
CAUTION: don't know how to trace depenencies through macro: "BOOST_SPIRIT_HEADER" in file: libs/spirit/repository/test/test_headers/test.cpp
CAUTION: don't know how to trace depenencies through macro: "BOOST_SPIRIT_HEADER" in file: libs/spirit/repository/test/test_headers/test.cpp
CAUTION: don't know how to trace depenencies through macro: "BOOST_SPIRIT_HEADER" in file: libs/spirit/test/test_headers/test.cpp
CAUTION: don't know how to trace depenencies through macro: "BOOST_SPIRIT_HEADER" in file: libs/spirit/test/test_headers/test.cpp
Segmentation fault (core dumped)

The stack trace looks like this and goes on with the same two function calls

#0  0x00007fbbf6ae2bbc in _int_malloc (av=av@entry=0x7fbbf6e25b20 <main_arena>, bytes=bytes@entry=64) at malloc.c:3353
#1  0x00007fbbf6ae5184 in __GI___libc_malloc (bytes=64) at malloc.c:2913
#2  0x00007fbbf70cee78 in operator new(unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x000000000041b931 in std::_Rb_tree<boost::filesystem::path, boost::filesystem::path, std::_Identity<boost::filesystem::path>, path_less, std::allocator<boost::filesystem::path> >::_M_insert_unique(boost::filesystem::path const&) ()
#4  0x000000000041542f in bcp_implementation::add_file(boost::filesystem::path const&) ()
#5  0x0000000000419dc6 in bcp_implementation::add_path(boost::filesystem::path const&) ()

The bcp command-line

bcp --namespace=boost_ns --namespace-alias --boost=boost_1_70_0 compatibility uuid array tti lockfree utility units archive signals2 preprocessor move program_options system config static_assert bind algorithm ratio crc regex property_tree process property_map yap ptr_container exception safe_numerics intrusive pool function_types timer coroutine icl boost-build.jam fusion lexical_cast build contract flyweight scope_exit typeof endian variant multi_index msm tuple mpi callable_traits statechart local_function numeric hof vmd fiber chrono polygon detail outcome core accumulators graph histogram coroutine2 multiprecision type_erasure poly_collection bimap context python geometry asio boost_install compute mp11 xpressive disjoint_sets spirit graph_parallel foreach logic test atomic type_traits date_time pending thread iostreams iterator qvm circular_buffer locale function log beast optional functional integer container concept assert dynamic_bitset unordered range io conversion type_index serialization any dll predef align concept_check assign phoenix stacktrace format convert hana parameter metaparse mpl proto heap multi_array lambda parameter_python math random filesystem rational sort boostcpp.jam headers gil container_hash throw_exception interprocess tokenizer winapi smart_ptr wave custom-boost

It worked fine with Boost 1.69. It also works with 1.70 on CentOS 7, ubuntu 18.04, ubuntu 19.04 and Kali 2019.2.

I am using the default compiler on a x86_64 machine.

namespace alias breaks Jamroot

Using bcp with namespace alias breaks the Jamroot in at least two locations:

  • import tools/boost_install/boost-install wrongly renamed
  • boost-lib rule changes cause DYN_LINK define to be named wrong, breaking dynamic library exports

Example in the documentation doesn't work (in 1.70.0

I tried

bcp regex config build /tmp/dest

(I don't care about the namespace things and I'm aware they may not work anyway.)

Trying to build in /tmp/dest caused an error with boost-install missing, so I added boost_install. Then log and predef. Then there's an error I can't seem to fix:

error: Unable to find file or target named
error:     '/boost/headers'
error: referred to from project at
error:     'libs/atomic/build'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.