--- 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 static:BOOST_PYTHON_STATIC_LIB BOOST_PYTHON_SOURCE + [ cond $(python2) : -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 ] : /python//python_for_extensions ] + [ cond [ python.configured ] : /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 @@ config-warning on:BOOST_DEBUG_PYTHON - [ cond $(is-py3) : $(py3-version) ] -@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).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 ] : /python//python_for_extensions ] - [ unless [ python.numpy ] : no ] - $(numpy-include) - boost_python - on:BOOST_DEBUG_PYTHON - [ cond $(is-py3) : $(py3-version) ] - - -@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag - @$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag - - : # default build - shared - : # usage requirements - on: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) ;