fiber/build/Jamfile.v2

149 lines
3.7 KiB
Plaintext

# Boost.Fiber Library Build Jamfile
# Copyright Oliver Kowalke 2013.
# 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 feature ;
import modules ;
import testing ;
import toolset ;
import ../../config/checks/config : requires ;
feature.feature numa : on : optional propagated composite ;
feature.compose <numa>on : <define>BOOST_USE_NUMA ;
project boost/fiber
: requirements
<library>/boost/context//boost_context
<library>/boost/filesystem//boost_filesystem
<target-os>solaris:<linkflags>"-llgrp"
<target-os>windows:<define>_WIN32_WINNT=0x0601
<toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack
<toolset>gcc,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
<toolset>clang,<segmented-stacks>on:<cxxflags>-fsplit-stack
<toolset>clang,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
<link>shared:<define>BOOST_FIBERS_DYN_LINK=1
<define>BOOST_FIBERS_SOURCE
<threading>multi
: usage-requirements
<link>shared:<define>BOOST_FIBERS_DYN_LINK=1
<optimization>speed:<define>BOOST_DISABLE_ASSERTS
<variant>release:<define>BOOST_DISABLE_ASSERTS
: source-location ../src
;
rule numa ( properties * )
{
local result ;
if ( <numa>on in $(properties) )
{
result = <numa>on ;
}
else
{
result = <build>no ;
}
return $(result) ;
}
lib boost_fiber
: algo/algorithm.cpp
algo/round_robin.cpp
algo/shared_work.cpp
algo/work_stealing.cpp
barrier.cpp
condition_variable.cpp
context.cpp
fiber.cpp
future.cpp
mutex.cpp
properties.cpp
recursive_mutex.cpp
recursive_timed_mutex.cpp
timed_mutex.cpp
scheduler.cpp
: <link>shared:<library>../../context/build//boost_context
[ requires cxx11_auto_declarations
cxx11_constexpr
cxx11_defaulted_functions
cxx11_final
cxx11_hdr_mutex
cxx11_hdr_tuple
cxx11_lambdas
cxx11_noexcept
cxx11_nullptr
cxx11_rvalue_references
cxx11_template_aliases
cxx11_thread_local
cxx11_variadic_templates ]
;
alias numa_sources
: numa/aix/pin_thread.cpp
numa/aix/topology.cpp
: <target-os>aix
;
alias numa_sources
: numa/freebsd/pin_thread.cpp
numa/freebsd/topology.cpp
: <target-os>freebsd
;
alias numa_sources
: numa/hpux/pin_thread.cpp
numa/hpux/topology.cpp
: <target-os>hpux
;
alias numa_sources
: numa/linux/pin_thread.cpp
numa/linux/topology.cpp
: <target-os>linux
;
alias numa_sources
: numa/solaris/pin_thread.cpp
numa/solaris/topology.cpp
: <target-os>solaris
;
alias numa_sources
: numa/windows/pin_thread.cpp
numa/windows/topology.cpp
: <target-os>windows
;
alias numa_sources
: numa/pin_thread.cpp
numa/topology.cpp
;
explicit numa_sources ;
lib boost_fiber_numa
: numa_sources
numa/algo/work_stealing.cpp
:
<conditional>@numa
[ requires cxx11_auto_declarations
cxx11_constexpr
cxx11_defaulted_functions
cxx11_final
cxx11_hdr_mutex
cxx11_hdr_tuple
cxx11_lambdas
cxx11_noexcept
cxx11_nullptr
cxx11_rvalue_references
cxx11_template_aliases
cxx11_thread_local
cxx11_variadic_templates ]
;
boost-install boost_fiber boost_fiber_numa ;