2
0
mirror of https://github.com/boostorg/sync.git synced 2026-01-19 04:42:12 +00:00

Added support for modular b2.

This adds explicit specification of all library dependencies, which is
necessary for modular b2 builds and also for tracking usage requirements
from the dependencies.

This also introduces a new boost_sync_with_support target, which
provides a dependency on the main Boost.Sync library, as well as any
additional dependencies that are needed for support headers.
This commit is contained in:
Andrey Semashev
2025-08-27 18:03:19 +03:00
parent 135d2d1246
commit f26e448703
3 changed files with 56 additions and 5 deletions

18
build.jam Normal file
View File

@@ -0,0 +1,18 @@
# Copyright Andrey Semashev 2025
# 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)
require-b2 5.2 ;
project /boost/sync ;
explicit
[ alias boost_sync : build//boost_sync ]
[ alias boost_sync_with_support : build//boost_sync_with_support ]
[ alias all : boost_sync boost_sync_with_support test ]
;
call-if : boost-library sync
: install boost_sync
;

View File

@@ -1,7 +1,7 @@
# Copyright 2006-2007 Roland Schwarz.
# Copyright 2007 Anthony Williams
# Copyright 2011-2012 Vicente J.Botet Escriba.
# Copyright 2013 Andrey Semashev
# Copyright 2013-2025 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)
@@ -30,7 +30,33 @@ import indirect ;
import path ;
import configure ;
project boost/sync
constant boost_sync_public_deps :
<library>/boost/assert//boost_assert
<library>/boost/atomic//boost_atomic
<library>/boost/config//boost_config
<library>/boost/core//boost_core
<library>/boost/move//boost_move
<library>/boost/mpl//boost_mpl
<library>/boost/preprocessor//boost_preprocessor
<library>/boost/static_assert//boost_static_assert
<library>/boost/system//boost_system
<library>/boost/throw_exception//boost_throw_exception
<target-os>windows:<library>/boost/winapi//boost_winapi
;
constant boost_sync_private_deps :
<library>/boost/intrusive//boost_intrusive
;
constant boost_sync_support_public_deps :
<library>/boost/sync//boost_sync
<library>/boost/chrono//boost_chrono
<library>/boost/date_time//boost_date_time
<library>/boost/ratio//boost_ratio
<library>/boost/static_assert//boost_static_assert
;
project
: source-location ../src
: requirements
<threading>multi
@@ -171,10 +197,17 @@ lib boost_sync
sync_platform_sources
:
<conditional>@requirements
$(boost_sync_private_deps)
$(boost_sync_public_deps)
:
:
<conditional>@usage-requirements
$(boost_sync_public_deps)
;
boost-install boost_sync ;
alias boost_sync_with_support
: requirements
$(boost_sync_support_public_deps)
: usage-requirements
$(boost_sync_support_public_deps)
;

View File

@@ -11,7 +11,7 @@ project
: requirements
<threading>multi
<hardcode-dll-paths>true
<library>/boost/sync//boost_sync
<library>/boost/sync//boost_sync_with_support
<library>/boost/thread//boost_thread
<library>/boost/date_time//boost_date_time
;