2
0
mirror of https://github.com/boostorg/log.git synced 2026-01-19 16:32:09 +00:00
Files
log/build/log-platform-config.jam
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

64 lines
2.2 KiB
Plaintext

# log-platform-config.jam
#
# Copyright 2017 Andrey Semashev
#
# Distributed under 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)
import configure ;
import project ;
import path ;
import property ;
import feature ;
rule set-platform-defines ( properties * )
{
local result ;
if <target-os>windows in $(properties)
{
# Disable warnings about using 'insecure' standard C functions.
# These affect MSVC C/C++ library headers, which are used by various compilers. Define them universally on Windows to avoid
# duplicating them for every compiler in every jamfile.
result += <define>_SCL_SECURE_NO_WARNINGS ;
result += <define>_SCL_SECURE_NO_DEPRECATE ;
result += <define>_CRT_SECURE_NO_WARNINGS ;
result += <define>_CRT_SECURE_NO_DEPRECATE ;
}
if ( <target-os>windows in $(properties) ) || ( <target-os>cygwin in $(properties) )
{
result += <define>NOMINMAX ;
result += <define>WIN32_LEAN_AND_MEAN ;
result += <define>SECURITY_WIN32 ;
if <target-os>cygwin in $(properties)
{
result += <define>__USE_W32_SOCKETS ;
result += <define>_XOPEN_SOURCE=600 ;
}
}
else if <target-os>solaris in $(properties)
{
# Solaris headers are broken and cannot be included in C++03 when _XOPEN_SOURCE=600. At the same time, they cannot be included with _XOPEN_SOURCE=500 in C++11 and later.
# This is because the system headers check the C language version and error out if the version does not match. We have to test if we can request _XOPEN_SOURCE=600.
if [ configure.builds /boost/log/config/xopen-source-600//xopen_source_600 : $(properties) : xopen-source-600-supported ]
{
result += <define>_XOPEN_SOURCE=600 ;
}
else
{
result += <define>_XOPEN_SOURCE=500 ;
}
result += <define>__EXTENSIONS__ ;
}
else if ( <target-os>linux in $(properties) ) || ( <target-os>hpux in $(properties) )
{
result += <define>_XOPEN_SOURCE=600 ;
}
return $(result) ;
}