Index: boost/thread/detail/config.hpp =================================================================== --- boost/thread/detail/config.hpp (revision 80450) +++ boost/thread/detail/config.hpp (working copy) @@ -43,13 +43,8 @@ #endif #endif -// Uses Boost.System by default if not stated the opposite defining BOOST_THREAD_DONT_USE_SYSTEM -#if ! defined BOOST_THREAD_DONT_USE_SYSTEM && ! defined BOOST_THREAD_USES_SYSTEM -#define BOOST_THREAD_USES_SYSTEM -#endif - -// Uses Boost.Chrono by default if not stated the opposite defining BOOST_THREAD_DONT_USE_CHRONO or BOOST_THREAD_DONT_USE_SYSTEM -#if ! defined BOOST_THREAD_DONT_USE_CHRONO && ! defined BOOST_THREAD_DONT_USE_SYSTEM && ! defined BOOST_THREAD_USES_CHRONO +// Uses Boost.Chrono by default if not stated the opposite defining BOOST_THREAD_DONT_USE_CHRONO +#if ! defined BOOST_THREAD_DONT_USE_CHRONO && ! defined BOOST_THREAD_USES_CHRONO #define BOOST_THREAD_USES_CHRONO #endif Index: libs/thread/doc/overview.qbk =================================================================== --- libs/thread/doc/overview.qbk (revision 80450) +++ libs/thread/doc/overview.qbk (working copy) @@ -42,6 +42,27 @@ The source code compiled when building the library defines a macros BOOST_THREAD_SOURCE that is used to import or export it. The user must not define this macro in any case. +Boost.Thread depends on some non header-only libraries. + +* Boost.System: This dependency is mandatory and you will need to link with the library. + +* Boost.Chrono: This dependency is optional (see below how to configure) and you will need to link with the library if you use some of the time related interfaces. + +* Boost.DateTime: This dependency is mandatory, but even if Boost.DateTime is a non header-only library Boost.Thread uses only parts that are header-only, so in principle you should not need to link with the library. + +It seems that there are some IDE (as e.g. Visual Studio) that deduce the libraries that a program needs to link to inspecting the sources. Such IDE could force to link to Boost.DateTime and/or Boost.Chrono. + +As the single mandatory dependency is to Boost.System, the following + + bjam toolset=msvc-11.0 --build-type=complete --with-thread + +will install only boost_thread and boost_system. + +Users of such IDE should force the Boost.Chrono and Boost.DateTime build using + + bjam toolset=msvc-11.0 --build-type=complete --with-thread --with-chrono --with-date_time + + The following section describes all the macros used to configure Boost.Thread. [include configuration.qbk] Index: libs/thread/doc/configuration.qbk =================================================================== --- libs/thread/doc/configuration.qbk (revision 80450) +++ libs/thread/doc/configuration.qbk (working copy) @@ -8,20 +8,14 @@ [section:configuration Configuration] -[section:system Boost.System] -Boost.Thread uses by default Boost.System to define the exceptions. For backward compatibility and also for compilers that don't work well with Boost.System the user can define `BOOST_THREAD_DONT_USE_SYSTEM `. - -`BOOST_THREAD_USES_SYSTEM` is defined when Boost.Thread uses Boost.Move. - -[endsect] - [section:chrono Boost.Chrono] -Boost.Thread uses by default Boost.Chrono for the time related functions. For backward compatibility and also for compilers that don't work well with Boost.Chrono the user can define `BOOST_THREAD_DONT_USE_CHRONO`. If `BOOST_THREAD_DONT_USE_SYSTEM` is defined then `BOOST_THREAD_DONT_USE_CHRONO` is defined implicitly. +Boost.Thread uses by default Boost.Chrono for the time related functions. For backward compatibility and also for compilers that don't work well with Boost.Chrono the user can define `BOOST_THREAD_DONT_USE_CHRONO`. `BOOST_THREAD_USES_CHRONO` is defined when Boost.Thread uses Boost.Chrono. + [endsect] [section:move Boost.Move] @@ -29,7 +23,7 @@ Boost.Thread uses by default an internal move semantic implementation. Since version 3.0.0 you can use the move emulation emulation provided by Boost.Move. When `BOOST_THREAD_VERSION==2` define `BOOST_THREAD_USES_MOVE ` if you want to use Boost.Move interface. -When `BOOST_THREAD_VERSION==3` define `BOOST_THREAD_DONT_USE_MOVE ` if you want to use boost::unique_future. +When `BOOST_THREAD_VERSION==3` define `BOOST_THREAD_DONT_USE_MOVE ` if you don't want to use Boost.Move interface. [endsect]