diff options
Diffstat (limited to 'meta/recipes-support/boost/boost/py3.patch')
-rw-r--r-- | meta/recipes-support/boost/boost/py3.patch | 269 |
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 ; |