aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-support/boost/boost/py3.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-support/boost/boost/py3.patch')
-rw-r--r--meta/recipes-support/boost/boost/py3.patch269
1 files changed, 0 insertions, 269 deletions
diff --git a/meta/recipes-support/boost/boost/py3.patch b/meta/recipes-support/boost/boost/py3.patch
deleted file mode 100644
index 2b1ff1865e..0000000000
--- a/meta/recipes-support/boost/boost/py3.patch
+++ /dev/null
@@ -1,269 +0,0 @@
-Backport fixes from upstream (as of boost super-module commit 0d52b9) to improve
-the building of the Boost Python module with Python 3.
-
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/build/Jamfile b/build/Jamfile
-index 313fdab..f14dc11 100644
---- a/libs/python/build/Jamfile
-+++ b/libs/python/build/Jamfile
-@@ -6,6 +6,7 @@ import os ;
- import indirect ;
- import modules ;
- import feature ;
-+import property ;
-
- import python ;
-
-@@ -30,21 +31,8 @@ else
- ;
- }
-
--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 ] ;
-+py2-version = [ py-version 2 ] ;
-+py3-version = [ py-version 3 ] ;
-
- project boost/python
- : source-location ../src
-@@ -52,11 +40,17 @@ project boost/python
-
- 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 ; } }
-
--rule lib_boost_python ( is-py3 ? )
--{
-+lib_boost_python(2) = boost_python ;
-+lib_boost_python(3) = boost_python3 ;
-
-- lib [ cond $(is-py3) : boost_python3 : boost_python ]
-+lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ;
-+lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ;
-+
-+rule lib_boost_python ( version )
-+{
-+ lib $(lib_boost_python($(version)))
- : # sources
- numeric.cpp
- list.cpp
-@@ -112,11 +106,13 @@ rule lib_boost_python ( is-py3 ? )
- <dependency>config-warning
-
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- [ cond $(is-py3) : <python>$(py3-version) ]
-+ <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
-@@ -125,51 +121,68 @@ rule lib_boost_python ( is-py3 ? )
- ;
- }
-
--rule lib_boost_numpy ( is-py3 ? )
-+lib_boost_numpy(2) = boost_numpy ;
-+lib_boost_numpy(3) = boost_numpy3 ;
-+
-+lib_boost_numpy($(py2-version)) = $(lib_boost_python(2)) ;
-+lib_boost_numpy($(py3-version)) = $(lib_boost_python(3)) ;
-+
-+rule lib_boost_numpy ( version )
- {
- numpy-include = [ python.numpy-include ] ;
-- lib [ cond $(is-py3) : boost_numpy3 : boost_numpy ]
-+ lib $(lib_boost_numpy($(version)))
- : # sources
- numpy/dtype.cpp
- numpy/matrix.cpp
- numpy/ndarray.cpp
-- numpy/numpy.cpp
-- numpy/scalars.cpp
-- numpy/ufunc.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>boost_python
-+ <include>$(numpy-include)
-+ <library>$(lib_boost_python($(version)))
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- [ cond $(is-py3) : <python>$(py3-version) ]
-+ <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
-+ <link>static:<define>BOOST_NUMPY_STATIC_LIB
- <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 ;
-+libraries = ;
-
--if $(py3-version)
-+for local N in 2 3
- {
-- lib_boost_python yes ;
-- lib_boost_numpy yes ;
-- libraries += $(libraries3) ;
-+ 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))) ;
-+ }
- }
-
- boost-install $(libraries) ;
-diff --git a/src/tools/python.jam b/src/tools/python.jam
-index cc13385..bf300b8 100644
---- a/tools/build/src/tools/python.jam
-+++ b/tools/build/src/tools/python.jam
-@@ -34,6 +34,7 @@ import path ;
- import feature ;
- import set ;
- import builtin ;
-+import property-set ;
-
-
- # Make this module a project.
-@@ -60,6 +61,10 @@ lib rt ;
- # installed in the development system's default paths.
- feature.feature pythonpath : : free optional path ;
-
-+# The best configured version of Python 2 and 3.
-+py2-version = ;
-+py3-version = ;
-+
- # Initializes the Python toolset. Note that all parameters are optional.
- #
- # - version -- the version of Python to use. Should be in Major.Minor format,
-@@ -861,6 +866,11 @@ local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? :
- if ! $(version) in [ feature.values python ]
- {
- feature.extend python : $(version) ;
-+ py$(major-minor[1])-version ?= $(version) ;
-+ if $(py$(major-minor[1])-version) < $(version)
-+ {
-+ py$(major-minor[1])-version = $(version) ;
-+ }
- }
- target-requirements += <python>$(version:E=default) ;
- }
-@@ -916,6 +926,9 @@ local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? :
- }
- }
-
-+ # In case we added duplicate requirements from what the user specified.
-+ target-requirements = [ sequence.unique $(target-requirements) ] ;
-+
- # Global, but conditional, requirements to give access to the interpreter
- # for general utilities, like other toolsets, that run Python scripts.
- toolset.add-requirements
-@@ -934,19 +947,6 @@ local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? :
- toolset.add-requirements <target-os>$(target-os):<python>$(version:E=default) ;
- }
-
-- # We also set a default requirement that assigns the first python configured
-- # for a particular target OS as the default. This makes it so that we can
-- # select a python interpreter with only knowledge of the target OS. And hence
-- # can configure different Pythons based on the target OS only.
-- local toolset-requirements = [ toolset.requirements ] ;
-- local toolset-target-os-requirements
-- = [ property.evaluate-conditionals-in-context
-- [ $(toolset-requirements).raw ] : <target-os>$(target-os) ] ;
-- if ! <python> in $(toolset-target-os-requirements:G)
-- {
-- toolset.add-requirements <target-os>$(target-os):<python>$(version:E=default) ;
-- }
--
- # Register the right suffix for extensions.
- register-extension-suffix $(extension-suffix) : $(target-requirements) ;
-
-@@ -1038,6 +1038,22 @@ local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? :
- : $(usage-requirements)
- ;
- }
-+
-+}
-+
-+# Conditional rule specification that will prevent building of a target
-+# if there is no matching python configuration available with the given
-+# required properties.
-+rule require-py ( properties * )
-+{
-+ local py-ext-target = [ $(.project).find python_for_extensions ] ;
-+ local property-set = [ property-set.create $(properties) ] ;
-+ property-set = [ $(property-set).expand ] ;
-+ local py-ext-alternative = [ $(py-ext-target).select-alternatives $(property-set) ] ;
-+ if ! $(py-ext-alternative)
-+ {
-+ return <build>no ;
-+ }
- }
-
-
-@@ -1298,5 +1314,11 @@ rule numpy-test ( name : sources * : requirements * )
- : $(name) ] ;
- }
-
-+rule py-version ( n )
-+{
-+ return $(py$(n)-version) ;
-+}
-+
- IMPORT $(__name__) : bpl-test : : bpl-test ;
- IMPORT $(__name__) : numpy-test : : numpy-test ;
-+IMPORT $(__name__) : py-version : : py-version ;