2
0
mirror of https://github.com/boostorg/log.git synced 2026-01-19 04:22:09 +00:00

24 Commits

Author SHA1 Message Date
Andrey Semashev
6db171e348 Specify relative path to log-platform-config in config checks.
This allows to use the config checks from locations other than the
library project.
2025-06-19 02:29:02 +03:00
Andrey Semashev
1cb564b688 Added dependency on Boost.Regex in regex-header-only test.
This may be needed in modular builds.
2025-05-31 16:23:39 +03:00
Andrey Semashev
1c956799d5 Made configure check for native atomic int32 more lightweight.
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.
2025-05-31 16:05:06 +03:00
René Ferdinand Rivera Morell
2530a4e03a Add support for modular build structure. (#233)
* 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.
2025-05-26 00:48:16 +03:00
Andrey Semashev
4db6450fe8 Conditionally link with Boost.Regex library, if it's in C++03 mode.
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.
2023-09-25 20:14:34 +03:00
Andrey Semashev
dd164ac8d0 Changed SSSE3/AVX2 checks to be linkable into an executable. 2021-10-29 04:14:58 +03:00
Andrey Semashev
b4399c0407 Moved SSSE3/AVX2 compiler flag deduction to a common submodule.
Also, use gcc-style command line arguments by default as most compilers
tend to support them.

Marked config obj targets explicit.
2020-09-08 02:50:08 +03:00
Andrey Semashev
48d2319d7b Added gcc-like SSSE3/AVX2 flags for qcc.
Presumably, qcc is based on gcc, so it should accept the same flags.
2020-09-07 01:11:37 +03:00
Andrey Semashev
3e6fee4751 Counter compiler optimizations when checking for SSSE3 and AVX2.
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.
2019-01-08 00:56:24 +03:00
Andrey Semashev
d3f3776024 Removed compiler visibility check in favor of the visibility feature in BBv2.
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.
2018-08-25 02:02:07 +03:00
Andrey Semashev
a73ed3ef38 Updated library build scripts to unify system macros configuration for different platforms. In particular, this should improve compatibility with Solaris. It also avoids duplicating system macros in different places. 2017-06-30 23:42:45 +03:00
Andrey Semashev
299603ff02 Fixed auto-detection of native syslog API.
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.
2016-11-10 19:46:52 +03:00
Andrey Semashev
caa81d4c25 Added a check for natively supported 32-bit atomic ops. If not supported, exclude IPC facilities from build. 2016-09-15 15:37:19 +03:00
Andrey Semashev
e5d5c66683 Changed the AVX2 flag for Intel compilers to -xCORE-AVX2. This flag is said to be supported since Intel Compiler 13 and is supposed to be better than -march=core-avx2 since it does not set the target architecture, which may be set by the user. 2016-04-14 19:32:03 +03:00
Andrey Semashev
24c70e7f29 Cleaned up the Jamfile and added a config macro for disabling IPC queues. Removed -march compiler flags where possible as they may override the user's choice. Removed the log-api feature as it no longer makes sense (the library is configured by enabling/disabling the particular sinks). Some renaming and cleanup. 2016-04-14 19:32:03 +03:00
Andrey Semashev
9fb7b75415 Implemented interprocess queue creation and opening. 2016-04-14 19:32:03 +03:00
Andrey Semashev
54759c6890 Added a workaround for MSVC not failing the check for visibility support. 2015-03-25 01:39:20 +03:00
Andrey Semashev
18df30ed33 Followup for the previous commit. 2015-03-25 00:48:52 +03:00
Andrey Semashev
89474f4a80 Define ASIO config macros before using it. Use hidden visibility by default.
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.
2015-03-25 00:32:36 +03:00
Andrey Semashev
5bb604ee39 Updated copyright dates. 2015-01-25 17:32:33 +03:00
Andrey Semashev
da1f448fd5 Corrected compiler switches to enable AVX2 and SSSE3 for Intel Compiler. Disabled some bogus warnings as well. 2014-06-21 22:12:17 +04:00
Andrey Semashev
a21d096e4a Updated copyright notes to 2014. 2014-01-19 18:46:09 +04:00
Andrey Semashev
34e7b55f48 To resolve problems with some testers that have non-numeric toolset versions compiler checks for SSSE3/AVX2 support have been reworked. The checks now use configure framework instead of relying on compiler version checks.
[SVN r84291]
2013-05-15 19:09:30 +00:00
Andrey Semashev
ab97ab66d9 Added a check for availability of Message Compiler (mc) on Windows. This should simplify building the library on MinGW, Cygwin and MSVC Express and fix MinGW tests.
[SVN r84186]
2013-05-07 23:03:54 +00:00