2
0
mirror of https://github.com/boostorg/mpi.git synced 2026-01-19 04:22:10 +00:00
Files
mpi/build/Jamfile.v2
2025-11-25 13:56:14 +03:00

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 ;
}