139 lines
4.1 KiB
Diff
139 lines
4.1 KiB
Diff
|
--- 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/python/build/Jamfile
|
||
|
+++ b/libs/python/build/Jamfile
|
||
|
@@ -30,22 +30,6 @@
|
||
|
;
|
||
|
}
|
||
|
|
||
|
-rule find-py3-version
|
||
|
-{
|
||
|
- local versions = [ feature.values python ] ;
|
||
|
- local py3ver ;
|
||
|
- for local v in $(versions)
|
||
|
- {
|
||
|
- if $(v) >= 3.0
|
||
|
- {
|
||
|
- py3ver = $(v) ;
|
||
|
- }
|
||
|
- }
|
||
|
- return $(py3ver) ;
|
||
|
-}
|
||
|
-
|
||
|
-py3-version = [ find-py3-version ] ;
|
||
|
-
|
||
|
project boost/python
|
||
|
: source-location ../src
|
||
|
;
|
||
|
@@ -53,10 +37,16 @@
|
||
|
rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
|
||
|
rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
|
||
|
|
||
|
-rule lib_boost_python ( is-py3 ? )
|
||
|
+rule lib_boost_python
|
||
|
{
|
||
|
+ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
|
||
|
+ local python2 ;
|
||
|
+ if $(python_major_version) = 2
|
||
|
+ {
|
||
|
+ python2 = true ;
|
||
|
+ }
|
||
|
|
||
|
- lib [ cond $(is-py3) : boost_python3 : boost_python ]
|
||
|
+ lib boost_python
|
||
|
: # sources
|
||
|
numeric.cpp
|
||
|
list.cpp
|
||
|
@@ -90,20 +80,9 @@
|
||
|
: # requirements
|
||
|
<link>static:<define>BOOST_PYTHON_STATIC_LIB
|
||
|
<define>BOOST_PYTHON_SOURCE
|
||
|
+ [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
|
||
|
|
||
|
- # On Windows, all code using Python has to link to the Python
|
||
|
- # import library.
|
||
|
- #
|
||
|
- # On *nix we never link libboost_python to libpython. When
|
||
|
- # extending Python, all Python symbols are provided by the
|
||
|
- # Python interpreter executable. When embedding Python, the
|
||
|
- # client executable is expected to explicitly link to
|
||
|
- # /python//python (the target representing libpython) itself.
|
||
|
- #
|
||
|
- # 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 [ 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
|
||
|
@@ -112,7 +91,6 @@
|
||
|
<dependency>config-warning
|
||
|
|
||
|
<python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||
|
- [ cond $(is-py3) : <python>$(py3-version) ]
|
||
|
|
||
|
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
||
|
<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
|
||
|
@@ -125,51 +103,8 @@
|
||
|
;
|
||
|
}
|
||
|
|
||
|
-rule lib_boost_numpy ( is-py3 ? )
|
||
|
-{
|
||
|
- numpy-include = [ python.numpy-include ] ;
|
||
|
- lib [ cond $(is-py3) : boost_numpy3 : boost_numpy ]
|
||
|
- : # sources
|
||
|
- numpy/dtype.cpp
|
||
|
- numpy/matrix.cpp
|
||
|
- numpy/ndarray.cpp
|
||
|
- numpy/numpy.cpp
|
||
|
- numpy/scalars.cpp
|
||
|
- numpy/ufunc.cpp
|
||
|
- : # requirements
|
||
|
- [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
|
||
|
- [ unless [ python.numpy ] : <build>no ]
|
||
|
- <include>$(numpy-include)
|
||
|
- <library>boost_python
|
||
|
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||
|
- [ cond $(is-py3) : <python>$(py3-version) ]
|
||
|
-
|
||
|
- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
||
|
- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
|
||
|
-
|
||
|
- : # default build
|
||
|
- <link>shared
|
||
|
- : # usage requirements
|
||
|
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||
|
- ;
|
||
|
-}
|
||
|
-
|
||
|
libraries = boost_python ;
|
||
|
-libraries3 = boost_python3 ;
|
||
|
-if [ python.numpy ]
|
||
|
-{
|
||
|
- libraries += boost_numpy ;
|
||
|
- libraries3 += boost_numpy3 ;
|
||
|
-}
|
||
|
|
||
|
lib_boost_python ;
|
||
|
-lib_boost_numpy ;
|
||
|
-
|
||
|
-if $(py3-version)
|
||
|
-{
|
||
|
- lib_boost_python yes ;
|
||
|
- lib_boost_numpy yes ;
|
||
|
- libraries += $(libraries3) ;
|
||
|
-}
|
||
|
|
||
|
boost-install $(libraries) ;
|