You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
273 lines
9.0 KiB
273 lines
9.0 KiB
--- a/boostcpp.jam
|
|
+++ b/boostcpp.jam
|
|
@@ -104,7 +104,7 @@
|
|
python-id = [ option.get "python-buildid" ] ;
|
|
if $(python-id)
|
|
{
|
|
- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
|
|
+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
|
|
}
|
|
|
|
|
|
--- a/libs/mpi/build/Jamfile.v2
|
|
+++ b/libs/mpi/build/Jamfile.v2
|
|
@@ -58,81 +58,50 @@
|
|
|
|
if [ python.configured ]
|
|
{
|
|
- py2-version = [ py-version 2 ] ;
|
|
- py3-version = [ py-version 3 ] ;
|
|
-
|
|
- # These library names are synchronized with those defined by Boost.Python, see libs/python/build/Jamfile.
|
|
- lib_boost_python(2) = boost_python ;
|
|
- lib_boost_python(3) = boost_python3 ;
|
|
-
|
|
- lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ;
|
|
- lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ;
|
|
-
|
|
- lib_boost_mpi_python(2) = boost_mpi_python ;
|
|
- lib_boost_mpi_python(3) = boost_mpi_python3 ;
|
|
-
|
|
- lib_boost_mpi_python($(py2-version)) = $(lib_boost_mpi_python(2)) ;
|
|
- lib_boost_mpi_python($(py3-version)) = $(lib_boost_mpi_python(3)) ;
|
|
-
|
|
- for local N in 2 3
|
|
- {
|
|
- if $(py$(N)-version)
|
|
- {
|
|
- lib $(lib_boost_mpi_python($(py$(N)-version)))
|
|
- : # Sources
|
|
- python/serialize.cpp
|
|
- : # Requirements
|
|
- <library>boost_mpi
|
|
- <library>/mpi//mpi [ mpi.extra-requirements ]
|
|
- <library>/boost/python//$(lib_boost_python($(py$(N)-version)))
|
|
- <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
|
|
- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
|
- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
|
|
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
|
- <python>$(py$(N)-version)
|
|
- : # Default build
|
|
- <link>shared
|
|
- : # Usage requirements
|
|
- <library>/mpi//mpi [ mpi.extra-requirements ]
|
|
- ;
|
|
-
|
|
- 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//$(lib_boost_python($(py$(N)-version)))
|
|
- <library>$(lib_boost_mpi_python($(py$(N)-version)))
|
|
- <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
|
|
- <python>$(py$(N)-version)
|
|
- ;
|
|
-
|
|
- libraries += $(lib_boost_mpi_python($(py$(N)-version))) ;
|
|
- }
|
|
- else
|
|
- {
|
|
- alias $(lib_boost_mpi_python($(N))) ;
|
|
- }
|
|
- }
|
|
+ lib boost_mpi_python
|
|
+ : # Sources
|
|
+ python/serialize.cpp
|
|
+ : # Requirements
|
|
+ <library>boost_mpi
|
|
+ <library>/mpi//mpi [ mpi.extra-requirements ]
|
|
+ <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
|
|
+ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
|
+ <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
|
|
+ : # Default build
|
|
+ <link>shared
|
|
+ : # Usage requirements
|
|
+ <library>/mpi//mpi [ mpi.extra-requirements ]
|
|
+ ;
|
|
+ libraries += boost_mpi_python ;
|
|
+
|
|
+ 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
|
|
+ ;
|
|
}
|
|
}
|
|
else if ! ( --without-mpi in [ modules.peek : ARGV ] )
|
|
--- a/libs/python/build/Jamfile
|
|
+++ b/libs/python/build/Jamfile
|
|
@@ -31,26 +31,23 @@
|
|
;
|
|
}
|
|
|
|
-py2-version = [ py-version 2 ] ;
|
|
-py3-version = [ py-version 3 ] ;
|
|
-
|
|
project boost/python
|
|
: source-location ../src
|
|
;
|
|
|
|
rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
|
|
rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
|
|
-local rule eq ( a : b ) { if $(a) = $(b) { return 1 ; } }
|
|
-
|
|
-lib_boost_python(2) = boost_python ;
|
|
-lib_boost_python(3) = boost_python3 ;
|
|
-
|
|
-lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ;
|
|
-lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ;
|
|
|
|
-rule lib_boost_python ( version )
|
|
+rule lib_boost_python
|
|
{
|
|
- lib $(lib_boost_python($(version)))
|
|
+ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
|
|
+ local python2 ;
|
|
+ if $(python_major_version) = 2
|
|
+ {
|
|
+ python2 = true ;
|
|
+ }
|
|
+
|
|
+ lib boost_python
|
|
: # sources
|
|
list.cpp
|
|
long.cpp
|
|
@@ -96,7 +93,8 @@
|
|
# python_for_extensions is a target defined by Boost.Build to
|
|
# provide the Python include paths, and on Windows, the Python
|
|
# import library, as usage requirements.
|
|
- [ cond [ python.configured ] : <library>/python//python_for_extensions ]
|
|
+ [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
|
|
+ [ cond [ python.configured ] : <library>/python//python ]
|
|
|
|
# we prevent building when there is no python available
|
|
# as it's not possible anyway, and to cause dependents to
|
|
@@ -105,13 +103,10 @@
|
|
<dependency>config-warning
|
|
|
|
<python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
|
- <python>$(version)
|
|
|
|
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
|
<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
|
|
|
|
- <conditional>@python.require-py
|
|
-
|
|
: # default build
|
|
<link>shared
|
|
: # usage requirements
|
|
@@ -120,68 +115,8 @@
|
|
;
|
|
}
|
|
|
|
-lib_boost_numpy(2) = boost_numpy ;
|
|
-lib_boost_numpy(3) = boost_numpy3 ;
|
|
-
|
|
-lib_boost_numpy($(py2-version)) = $(lib_boost_numpy(2)) ;
|
|
-lib_boost_numpy($(py3-version)) = $(lib_boost_numpy(3)) ;
|
|
-
|
|
-rule lib_boost_numpy ( version )
|
|
-{
|
|
- numpy-include = [ python.numpy-include ] ;
|
|
- lib $(lib_boost_numpy($(version)))
|
|
- : # sources
|
|
- numpy/dtype.cpp
|
|
- numpy/matrix.cpp
|
|
- numpy/ndarray.cpp
|
|
- numpy/numpy.cpp
|
|
- numpy/scalars.cpp
|
|
- numpy/ufunc.cpp
|
|
- : # requirements
|
|
- <link>static:<define>BOOST_NUMPY_STATIC_LIB
|
|
- <define>BOOST_NUMPY_SOURCE
|
|
- [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
|
|
- [ unless [ python.numpy ] : <build>no ]
|
|
- <include>$(numpy-include)
|
|
- <library>$(lib_boost_python($(version)))
|
|
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
|
- <python>$(version)
|
|
+libraries = boost_python ;
|
|
|
|
- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
|
- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
|
|
-
|
|
- <conditional>@python.require-py
|
|
-
|
|
- : # default build
|
|
- <link>shared
|
|
- : # usage requirements
|
|
- <link>static:<define>BOOST_NUMPY_STATIC_LIB
|
|
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
|
- ;
|
|
-}
|
|
-
|
|
-libraries = ;
|
|
-
|
|
-for local N in 2 3
|
|
-{
|
|
- if $(py$(N)-version)
|
|
- {
|
|
- lib_boost_python $(py$(N)-version) ;
|
|
- libraries += $(lib_boost_python($(py$(N)-version))) ;
|
|
- }
|
|
- else
|
|
- {
|
|
- alias $(lib_boost_python($(N))) ;
|
|
- }
|
|
- if $(py$(N)-version) && [ python.numpy ]
|
|
- {
|
|
- lib_boost_numpy $(py$(N)-version) ;
|
|
- libraries += $(lib_boost_numpy($(py$(N)-version))) ;
|
|
- }
|
|
- else
|
|
- {
|
|
- alias $(lib_boost_numpy($(N))) ;
|
|
- }
|
|
-}
|
|
+lib_boost_python ;
|
|
|
|
boost-install $(libraries) ;
|