Only include capabilities.hpp to test whether native atomic int32
is supported.
Also added a dependency on Boost.Atomic, which may be needed in
modular builds.
* Make the library modular usable.
* Switch to library requirements instead of source. As source puts extra source in install targets.
* Clean up build dependencies.
* Remove external build references and avoid custom project loading.
* Use relative paths to declare config sub-projects.
* Add missing NO_LIB usage requirements.
* Add missing library ref.
* Add missing import-search for cconfig/predef checks.
* Add requires-b2 check to top-level build file.
* Update dependencies.
* Bump B2 require to 5.2
* Update copyright dates.
* Move inter-lib dependencies to a project variable and into the build targets.
* Remove custom symbolic project names for config subprojects. And use project root relative targets.
* Move private deps to the build project.
* Put back default boost locale link as locale build is now fixed.
* Set default address-model and architecture to avoid extra/custom detection logic. Put back missing check and config rules.
* Adjust doc build to avoid boost-root references.
* Fix ref to predef.jam location.
* Have B2 build use same deps as CML for per-target private/public.
* Add log dep to log_setup, as it's needed on some platforms.
* Add boost_log_with_support target to mirror CML.
* Fix platform specific winapi dependency spec.
Boost.Log supports compilers that do not qualify as C++11 compilers
for Boost.Regex, even if they are compiling in C++11 mode. In that
case, we still need to link with Boost.Regex v4 prebuilt library.
For more recent compilers, Boost.Regex v5 is used, and that is
a header-only library. This commit removes linking with Boost.Regex
when this is detected at configure time.
Note that only Boost.Build is updated. CMake doesn't need to be
updated since even header-only libraries need to be listed as
dependencies.
Closes https://github.com/boostorg/log/pull/219.
The compiler is able to optimize away most of the instructions that we test,
which results in checking only the compiler support for intrinsics, and not
the assembler capability to translate SSSE3 and AVX2 instructions from assembler
into the actual binary code. This commit forces the compiler to actually emit
instructions in the assembler, which then tests binutils capability to translate
those into binary code.
Boost.Build offers better compatibility with different compilers, some of
which use different flags for changing the default visibility. This also
slightly simplifies Boost.Log Jamfile.
The auto-detection was removed in 1.62, which resulted in UDP socket-based implementation being always used. The new auto-detection verifies the presence of syslog.h and all required components it provides.
Fixes ticket #12600.
Boost.ASIO should not use compiler-based TLS unless it is allowed by the user of Boost.Log, otherwise the Boost.Log config option has no practical effect.
As a result, it becomes more probable that Boost.ASIO will be compiled with different config macros in Boost.Log and user's code. As a partial solution use
hidden visibility when building Boost.Log shared libs and ensure it uses its local copy of Boost.ASIO. Added a config test to detect support for visibility
command line option.
Also adjusted project names of other config tests to avoid possible name clashes with other libraries and Boost.Build infrastructure.
MSVC warning 4003 is now silenced on all compiler versions as apparently not only MSVC 8 is affected.