Skip to content

Commit

Permalink
Add support for modular build structure. (#71)
Browse files Browse the repository at this point in the history
This is part of the effort to make the Boost libraries "modular" for build and consumption. See https://lists.boost.org/Archives/boost/2024/01/255704.php and https://github.com/grafikrobot/boost-b2-modular/blob/b2-modular/README.adoc for more information.

This PR depends on the following other PRs being merged to both develop and master branches of the respective repos:

- boostorg/boost#854
  • Loading branch information
grafikrobot authored Aug 24, 2024
1 parent 6c60dde commit 4775838
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 3 deletions.
36 changes: 36 additions & 0 deletions build.jam
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Copyright René Ferdinand Rivera Morell 2024
# 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 ;

constant boost_dependencies :
/boost/assert//boost_assert
/boost/config//boost_config
/boost/core//boost_core
/boost/filesystem//boost_filesystem
/boost/function//boost_function
/boost/move//boost_move
/boost/predef//boost_predef
/boost/smart_ptr//boost_smart_ptr
/boost/spirit//boost_spirit
/boost/system//boost_system
/boost/throw_exception//boost_throw_exception
/boost/type_index//boost_type_index
/boost/type_traits//boost_type_traits
/boost/winapi//boost_winapi ;

project /boost/dll
: common-requirements
<include>include
;

explicit
[ alias boost_dll : : : : <library>$(boost_dependencies) ]
[ alias all : boost_dll test ]
;

call-if : boost-library dll
;

11 changes: 8 additions & 3 deletions test/Jamfile.v2
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@

# For more information, see http://www.boost.org

require-b2 5.0.1 ;

import-search /boost/config/checks ;

# bring in rules for testing
import testing ;
import path ;

import ../../config/checks/config : requires ;
import config : requires ;

local RDYNAMIC = <target-os>freebsd:<linkflags>"-rdynamic" <target-os>solaris:<linkflags>"-Bdynamic" <target-os>aix:<linkflags>"-rdynamic"
<target-os>qnxnto,<toolset>qcc:<linkflags>"-Bdynamic" <target-os>qnxnto,<toolset>gcc:<linkflags>"-rdynamic"
Expand All @@ -20,13 +24,14 @@ local RDYNAMIC = <target-os>freebsd:<linkflags>"-rdynamic" <target-os>solaris:<l


# Static library that is not linked with any of the boost libs
lib static_plugin : ../example/tutorial4/static_plugin.cpp : <link>static <define>BOOST_SYSTEM_NO_DEPRECATED $(RDYNAMIC) ;
lib static_refcounting_plugin : ../example/tutorial8/refcounting_plugin.cpp : <link>static <define>BOOST_SYSTEM_NO_DEPRECATED <variant>release $(RDYNAMIC) ;
lib static_plugin : ../example/tutorial4/static_plugin.cpp : <link>static <define>BOOST_SYSTEM_NO_DEPRECATED $(RDYNAMIC) <library>/boost/dll//boost_dll ;
lib static_refcounting_plugin : ../example/tutorial8/refcounting_plugin.cpp : <link>static <define>BOOST_SYSTEM_NO_DEPRECATED <variant>release $(RDYNAMIC) <library>/boost/dll//boost_dll ;


project
: source-location .
: requirements
<library>/boost/dll//boost_dll
[ requires cxx11_rvalue_references ]
[ requires cxx11_static_assert ]
# linux
Expand Down

0 comments on commit 4775838

Please sign in to comment.