mirror of
https://github.com/boostorg/mpi.git
synced 2026-01-19 04:22:10 +00:00
153 lines
4.6 KiB
Plaintext
153 lines
4.6 KiB
Plaintext
# Copyright (C) 2005, 2006 The Trustees of Indiana University.
|
|
# Copyright (C) 2005 Douglas Gregor <doug.gregor -at- gmail.com>
|
|
# Copyright (c) 2018 Stefan Seefeld
|
|
|
|
# Use, modification and distribution is subject to 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)
|
|
|
|
# Authors: Douglas Gregor
|
|
# Andrew Lumsdaine
|
|
|
|
import mpi ;
|
|
import indirect ;
|
|
import python ;
|
|
import option ;
|
|
import regex ;
|
|
|
|
rule tag ( name : type ? : property-set )
|
|
{
|
|
if python-tag in [ RULENAMES $(__name__) ]
|
|
{
|
|
return [ $(__name__).python-tag $(name) : $(type) : $(property-set) ] ;
|
|
}
|
|
}
|
|
|
|
constant boost_dependencies_private :
|
|
/boost/utility//boost_utility
|
|
;
|
|
|
|
if [ mpi.configured ]
|
|
{
|
|
|
|
project
|
|
: source-location ../src
|
|
: common-requirements <library>$(boost_dependencies)
|
|
: requirements <library>$(boost_dependencies_private)
|
|
;
|
|
|
|
lib boost_mpi
|
|
:
|
|
broadcast.cpp
|
|
cartesian_communicator.cpp
|
|
communicator.cpp
|
|
computation_tree.cpp
|
|
content_oarchive.cpp
|
|
environment.cpp
|
|
error_string.cpp
|
|
exception.cpp
|
|
graph_communicator.cpp
|
|
group.cpp
|
|
intercommunicator.cpp
|
|
mpi_datatype_cache.cpp
|
|
mpi_datatype_oarchive.cpp
|
|
offsets.cpp
|
|
packed_iarchive.cpp
|
|
packed_oarchive.cpp
|
|
packed_skeleton_iarchive.cpp
|
|
packed_skeleton_oarchive.cpp
|
|
point_to_point.cpp
|
|
request.cpp
|
|
status.cpp
|
|
text_skeleton_oarchive.cpp
|
|
timer.cpp
|
|
: # Requirements
|
|
<library>/boost/serialization//boost_serialization
|
|
<library>/mpi//mpi [ mpi.extra-requirements ]
|
|
<define>BOOST_MPI_SOURCE=1
|
|
<link>shared:<define>BOOST_MPI_DYN_LINK=1
|
|
<local-visibility>global
|
|
: # Default build
|
|
<link>shared
|
|
: # Usage requirements
|
|
<library>/boost/serialization//boost_serialization
|
|
<library>/mpi//mpi [ mpi.extra-requirements ]
|
|
<define>BOOST_MPI_NO_LIB=1
|
|
;
|
|
|
|
if [ python.configured ]
|
|
{
|
|
lib boost_mpi_python
|
|
: # Sources
|
|
python/serialize.cpp
|
|
: # Requirements
|
|
<library>boost_mpi
|
|
<library>/mpi//mpi [ mpi.extra-requirements ]
|
|
<library>/python//python_for_extensions
|
|
<library>/boost/python//boost_python
|
|
<link>shared:<define>BOOST_MPI_DYN_LINK=1
|
|
<link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
|
|
<link>shared:<define>BOOST_PYTHON_DYN_LINK=1
|
|
<define>BOOST_MPI_PYTHON_SOURCE=1
|
|
<python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
|
-<tag>@%boostcpp.tag
|
|
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
|
<tag>@tag
|
|
<conditional>@python.require-py
|
|
<local-visibility>global
|
|
|
|
: # Default build
|
|
<link>shared
|
|
: # Usage requirements
|
|
<library>/mpi//mpi [ mpi.extra-requirements ]
|
|
<library>/python//python
|
|
<define>BOOST_MPI_PYTHON_NO_LIB=1
|
|
;
|
|
|
|
python-extension mpi
|
|
: # Sources
|
|
python/collectives.cpp
|
|
python/py_communicator.cpp
|
|
python/datatypes.cpp
|
|
python/documentation.cpp
|
|
python/py_environment.cpp
|
|
python/py_nonblocking.cpp
|
|
python/py_exception.cpp
|
|
python/module.cpp
|
|
python/py_request.cpp
|
|
python/skeleton_and_content.cpp
|
|
python/status.cpp
|
|
python/py_timer.cpp
|
|
: # Requirements
|
|
<library>/boost/python//boost_python
|
|
<library>boost_mpi_python
|
|
<library>boost_mpi
|
|
<library>/mpi//mpi [ mpi.extra-requirements ]
|
|
<link>shared:<define>BOOST_MPI_DYN_LINK=1
|
|
<link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
|
|
<link>shared:<define>BOOST_PYTHON_DYN_LINK=1
|
|
<link>shared <runtime-link>shared
|
|
<python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
|
;
|
|
}
|
|
else
|
|
{
|
|
alias boost_mpi_python ;
|
|
alias mpi ;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ! ( --without-mpi in [ modules.peek : ARGV ] )
|
|
{
|
|
message boost_mpi
|
|
: "warning: skipping optional Message Passing Interface (MPI) library."
|
|
: "note: to enable MPI support, add \"using mpi ;\" to user-config.jam."
|
|
: "note: to suppress this message, pass \"--without-mpi\" to b2."
|
|
: "note: otherwise, you can safely ignore this message."
|
|
;
|
|
}
|
|
alias boost_mpi_python : boost_mpi ;
|
|
alias mpi : boost_mpi ;
|
|
}
|